Selon l’enquête annuelle de la Cloud Native Computing Foundation (CNCF) de 2023, 84 % des organisations utilisent ou envisagent d’utiliser Kubernetes dans leurs chaînes de production logicielle, contre 81 % en 2022. À l’évidence, Kubernetes s’est imposé comme le système d’exploitation de référence pour déployer les applications en production.
Avec un nombre d’utilisateurs qui ne cesse de progresser, Kubernetes voit également augmenter les volumes de données d’entreprise en jeu et la pression autour de la sécurité — ce point étant lié au caractère sensible des données et des communications des entreprises. Ainsi, 67 % des personnes interrogées dans le cadre du rapport 2024 « State of Kubernetes » de Red Hat déclarent des retards dans leurs déploiements Kubernetes pour des raisons de sécurité.
Avec la montée en puissance de l’architecture de microservices, l’infrastructure à clé publique (PKI) joue aujourd’hui un rôle primordial dans la sécurisation des communications par le biais de mécanismes de chiffrement, d’authentification et d’autorisation dans l’ensemble du pipeline DevOps.
Parmi les vulnérabilités principales que ces mécanismes de sécurité doivent traiter :
- Certificats client permettant au kubelet de s’authentifier auprès du serveur API
- Certificats serveur du kubelet pour la communication du serveur API avec les kubelets
- Certificat serveur dédié au point de terminaison du serveur API
- Certificats client pour authentifier les administrateurs du cluster auprès du serveur API
- Certificats client pour la communication du serveur API avec les kubelets
- Certificat client permettant au serveur API de communiquer avec etcd
- Certificat client/kubeconfig pour connecter le gestionnaire de contrôleurs au serveur API
- Certificat client/kubeconfig pour connecter le planificateur au serveur API
- Certificats client et serveur pour le proxy frontal
Dans cet article, nous examinerons l’importance de sécuriser les communications entre pods dans les environnements Kubernetes et comment l’implémentation de TLS permet d’ajouter une couche de protection indispensable.
Qu’est-ce qu’un pod et à quoi ça sert ?
Dans les applications conteneurisées et les plateformes d’orchestration comme Kubernetes, un « Pod » désigne un ensemble de conteneurs qui partagent un réseau ou un hôte commun, leur permet de communiquer entre eux. Les conteneurs d’un pod fonctionnent ensemble et partagent ainsi les ressources pour exécuter des tâches spécifiques.
Les plateformes d’orchestration, comme Kubernetes, sont essentielles pour gérer ces pods. Kubernetes permet aux développeurs d’automatiser le déploiement, la montée en charge et la gestion des applications conteneurisées, garantissant ainsi la fluidité et l’efficacité des workflows.
Comment les communications entre pods sont-elles sécurisées ?
La sécurisation des communications entre pods avec les protocoles de sécurité de la couche de transport (Transport Layer Security) – dits TLS et TLS mutuel (mTLS) – repose sur un chiffrement basé sur des certificats X.509. Les certificats mTLS offrent un processus d’authentification et de chiffrement mutuel qui renforce la sécurité grâce à une protection bidirectionnelle. Pour garantir la sécurité de la gestion des informations sensibles au sein d’un cluster, ces certificats sont stockés sous forme de secrets Kubernetes. La sécurité mTLS est essentielle pour renforcer les environnements conteneurisés et améliorer la stratégie de sécurité des architectures en microservices.
Pourquoi faut-il sécuriser les pods ?
En environnement conteneurisé, il est essentiel de sécuriser les pods et les communications entre pods afin de protéger les applications sensibles et de réduire les risques d’attaques malveillantes ou de fuites de données. La sécurisation des pods assure la protection de l’entreprise et dote le workflow d’améliorations et de gages de sécurité :
- Confidentialité des données — Les certificats TLS garantissent l’intégrité des données et bloquent tout accès non autorisé grâce au chiffrement. Cette communication sécurisée est particulièrement cruciale dans les environnements qui traitent des données sensibles, comme les transactions financières ou les dossiers médicaux.
- Cloisonnement et multi-location — Lorsque plusieurs pods partagent un même environnement et un cluster commun, la compromission d’un pod expose les autres pods du cluster à des risques. Grâce au mTLS, la sécurité des déploiements multi-locataires est garantie.
- Authentification — En sécurisant les pods par TLS, seuls les échanges entre entités autorisées sont permis. Le risque d’attaques malveillantes et d’accès non autorisés est ainsi réduit.
- Renforcement de la stratégie de sécurité — Si la sécurité des pods est capitale pour le développement de code sécurisé, le mTLS permet de définir une politique de sécurité qui fixe les exigences minimales pour l’ensemble des pods d’un cluster Kubernetes.
- Respect des exigences de conformité — La sécurisation des pods contribue au respect des normes de conformité et dans les secteurs fortement réglementés, cela permet de prévenir les violations de données et les interruptions de service.
- Amélioration des performances — En plus des avantages sur le plan de la sécurité, le TLS peut également offrir des gains de performance, notamment grâce à des temps de connexion (« handshake ») plus rapides, un atout précieux pour les environnements Kubernetes à fort trafic.
Qu’est-ce que mTLS et pourquoi est-ce important ?
Le mTLS, ou Mutual Transport Security Layer, est une version étendue du protocole TLS qui impose une authentification mutuelle entre le client et le serveur afin d’établir une connexion sécurisée. En garantissant que le client et le serveur sont bien les entités qu’ils prétendent être, ce processus supplémentaire renforce la sécurité des échanges. Le mTLS offre plusieurs avantages :
- Chiffrement des données — particulièrement intéressant dans les architectures de microservices pour sécuriser les communications inter-services.
- Architecture « zero trust » — chaque échange est authentifié.
- Compatibilité multi-protocoles — les cas d’utilisation ne se limitent pas aux applications web.
Grâce à ces fonctionnalités, le mTLS est largement adopté pour sécuriser les communications sensibles, qui prédominent dans les environnements cloud-native et les architectures en microservices.
Sécuriser les environnements Kubernetes grâce à l’émetteur GlobalSign pour cert-manager
L’émetteur GlobalSign pour Cert-manager permet aux développeurs de sécuriser leurs environnements Kubernetes à l’aide de certificats TLS de confiance. En s’appuyant sur les fonctionnalités des gestionnaires de certificats, l’émetteur Atlas de GlobalSign simplifie les processus de génération et de déploiement de certificats X.509. Résultat : vous bénéficiez de certificats fiables, délivrés à la demande et très rapidement pour couvrir vos besoins de sécurité dans Kubernetes.
Automatisez la sécurité dans Kubernetes grâce à Atlas, l’émetteur pour cert-manager de GlobalSign