7 votes

SÉCURITÉ : les conteneurs doivent-ils utiliser TLS ou peuvent-ils s'appuyer sur son sidecar ?

Je me demande comment les experts en sécurité envisagent de sécuriser le trafic des conteneurs. Prenons l'exemple d'un simple cluster K8S.

Je suppose que nous sommes tous d'accord pour dire que l'utilisation de HTTPS au lieu de HTTP dans chaque conteneur est plus sûre. Normalement, je configurerais un TLS sur Ingress, puis je routerais vers un conteneur interne où TLS serait également configuré.

Les solutions modernes de mashing installent généralement un proxy sidecar - prenons Linkerd2 comme exemple concret. Ingress va mettre à niveau tout le trafic entrant en TLS, il utilisera ensuite le TLS de Linkerd pour transférer le trafic vers le proxy sidecar. Tout ce qui est transmis jusqu'ici est TLS et sécurisé. Je me demande, maintenant qu'un trafic sécurisé a "déjà atteint" le pod, si un conteneur doit également utiliser TLS, ou s'il est suffisamment sûr de communiquer avec le sidecar sans TLS ? J'aimerais connaître l'aspect sécurité entre le conteneur et son sidecar. Un sidecar doit-il être traité comme un conteneur autonome et donc la communication avec un conteneur doit également être sécurisée par TLS ?

11voto

Jonas Points 1129

Dans les environnements où l'on souhaite un niveau élevé de sécurité pour les clusters Kubernetes, il est désormais courant d'appliquer des principes issus de l'initiative Réseau à confiance zéro . Pour la mise en réseau dans un cluster Kubernetes, cela signifie généralement :

  • Cryptage de tout le trafic réseau
  • Utiliser l'authentification pour tout le trafic réseau
  • Règles de pare-feu granulaires - appliquées pour une micro segmentation autour de chaque application.
  • Contrôle d'accès à moindre privilège à l'aide de RBAC, comptes de service, JWT et OpenPolicyAgent.

Les deux premiers points sont maintenant généralement résolus avec un produit de Service Mesh, tel que Linkerd , Istio et les fournisseurs de nuages offrent des solutions gérées comme AWS App Mesh . Ces produits appliquent le cryptage entre chaque Pod sous la forme de TLS, mais aussi l'authentification à l'aide de certificats clients et le TLS mutuel, mTLS de manière automatisée. Le Service Mesh dispose généralement d'un plan de contrôle partie qui est responsable, par exemple, de la rotation des certificats avec l'automatisation.

Le troisième point est généralement réalisé en utilisant Politiques de réseau Kubernetes pour obtenir des règles de pare-feu dynamiques mais granulaires appliquées à chaque instance d'application (Pod), même si elle peut être programmée dynamiquement sur différents nœuds du cluster. Ces règles sont généralement déclarées à un niveau supérieur en utilisant, par exemple, des étiquettes de Pod au lieu d'adresses IP codées en dur.

Je me demande, maintenant qu'un trafic sécurisé a "déjà atteint" le pod, si un conteneur doit également utiliser TLS, ou s'il est suffisamment sûr de communiquer avec le sidecar sans TLS ? J'aimerais connaître l'aspect sécurité entre le conteneur et son sidecar. Un sidecar doit-il être traité comme un conteneur autonome et donc la communication avec un conteneur doit également être sécurisée par TLS ?

Gousses sont les unités de programmation dans Kubernetes, ce sont des conteneurs étroitement couplés - toujours programmés ensemble. Les conteneurs d'un Pod partagent certaines ressources comme les espaces de noms linux, les volumes du système de fichiers et les cgroups :

Le contexte partagé d'un Pod est un ensemble d'espaces de noms Linux, de cgroups, et potentiellement d'autres facettes de l'isolation.

En outre, les conteneurs d'un Pod partagent l'identité réseau, l'adresse IP, et utilisent localhost pour communiquer au sein du Pod. J'envisagerais la confiance au sein du Pod, mais vous devriez appliquer des règles granulaires de sécurité. Politiques de réseau Kubernetes pour verrouiller, par exemple, les ports sur lesquels le Pod peut recevoir du trafic, et de quels Pods.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X