Contactez-nous

Sécurité des Pods et des conteneurs

Apprenez à sécuriser vos Pods et conteneurs dans Kubernetes avec Security Context, Pod Security Admission, la sécurisation des images et la gestion des secrets.

Protéger le coeur : sécuriser les charges de travail en cours d'exécution

Bienvenue dans le chapitre 17, où nous plongeons au coeur de la sécurité de l'exécution dans Kubernetes. Dans le chapitre précédent, nous avons établi les fondations en contrôlant qui peut accéder à l'API Kubernetes et quelles actions ils sont autorisés à effectuer grâce à l'authentification et à RBAC. Maintenant, nous allons nous concentrer sur la couche suivante de la défense en profondeur : la sécurisation des Pods et des conteneurs eux-mêmes pendant leur exécution.

Même avec un contrôle d'accès API robuste, une application compromise ou mal configurée s'exécutant à l'intérieur d'un Pod peut toujours présenter des risques significatifs. Elle pourrait tenter d'accéder aux ressources du noeud hôte, interférer avec d'autres Pods, ou exploiter des vulnérabilités pour élever ses privilèges. Il est donc essentiel de mettre en place des mécanismes pour restreindre les capacités des conteneurs et appliquer des politiques de sécurité au niveau des charges de travail.

Ce chapitre explore les outils et les concepts clés fournis par Kubernetes pour renforcer la sécurité de vos Pods et conteneurs, minimisant ainsi leur surface d'attaque et limitant l'impact potentiel d'une faille de sécurité.

Contrôles et politiques pour des workloads plus sûrs

Au cours de ce chapitre, nous aborderons plusieurs aspects essentiels de la sécurité des Pods et des conteneurs :

  • Nous commencerons par le Contexte de Sécurité (Security Context). Vous apprendrez comment définir des paramètres de sécurité fins au niveau du Pod ou de chaque conteneur individuel, tels que l'exécution en tant qu'utilisateur non-root, la désactivation de l'escalade de privilèges, l'utilisation de systèmes de fichiers en lecture seule, ou la configuration des capacités Linux.
  • Ensuite, nous présenterons le mécanisme moderne d'application des politiques de sécurité au niveau du cluster : Pod Security Admission (PSA). Nous verrons comment ce contrôleur d'admission intégré permet d'appliquer des standards de sécurité prédéfinis (comme `baseline` ou `restricted`) à l'échelle des Namespaces, remplaçant les anciennes PodSecurityPolicies (PSP).
  • Nous discuterons également de l'importance de la sécurisation des images conteneurs. Bien que Kubernetes n'intègre pas nativement le scan de vulnérabilités, nous aborderons les bonnes pratiques et les intégrations possibles avec des outils externes pour s'assurer que les images utilisées sont exemptes de failles connues.
  • Enfin, nous revisiterons la gestion sécurisée des Secrets, en approfondissant les aspects liés à leur stockage (chiffrement au repos dans etcd) et en évoquant les solutions externes souvent utilisées en production pour une gestion plus avancée (comme HashiCorp Vault ou des gestionnaires de secrets cloud).

En maîtrisant ces concepts, vous serez en mesure de configurer vos Pods et conteneurs pour qu'ils s'exécutent avec le moins de privilèges possible, de manière plus isolée et conformément aux politiques de sécurité de votre organisation, réduisant ainsi considérablement les risques liés à l'exécution de vos applications sur Kubernetes.