Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

ETCD Encryption

cloud

Définition

etcd est la base de données distribuée clé-valeur qui stocke l'état de tout le cluster Kubernetes : les définitions de pods, de services, de déploiements, les ConfigMaps, et surtout les Secrets Kubernetes. Par défaut dans Kubernetes, les Secrets sont stockés dans etcd encodés en base64 mais non chiffrés. L'activation du chiffrement au repos d'etcd (Encryption at Rest) est donc critique pour la protection des données sensibles dans un cluster Kubernetes. La configuration du chiffrement etcd se fait via un fichier EncryptionConfiguration appliqué au kube-apiserver via le flag --encryption-provider-config. Ce fichier liste les ressources à chiffrer et les algorithmes utilisés. Les ressources les plus critiques à chiffrer sont les Secrets, les ConfigMaps (si des données sensibles y sont stockées), et les ServiceAccounts. Les algorithmes supportés incluent : aescbc (AES-CBC, algorithme historique), aesgcm (AES-GCM, recommandé pour les nouvelles installations, meilleur pour les grandes charges), secretbox (XSalsa20 + Poly1305, résistant aux timing attacks), et kms (délégation du chiffrement à un KMS externe comme AWS KMS, Azure Key Vault, GCP Cloud KMS - recommandé pour la production). Le provider kms v2 (Kubernetes 1.29+) utilise une clé de chiffrement d'enveloppe générée par le KMS et renouvelée automatiquement. La migration vers le chiffrement etcd sur un cluster existant nécessite : 1) activer le chiffrement via EncryptionConfiguration, 2) réécrire toutes les ressources existantes pour qu'elles soient rechiffrées (kubectl get secrets --all-namespaces -o json | kubectl replace -f -). Sans cette étape de réécriture, les ressources existantes restent non chiffrées dans etcd jusqu'à leur prochaine modification. Dans les clusters managés (EKS, AKS, GKE), le chiffrement etcd est généralement activé par défaut ou proposé comme option lors de la création du cluster. EKS chiffre etcd avec des clés AWS KMS gérées par AWS, avec possibilité d'utiliser une CMK spécifique pour la conformité.

EncryptionConfiguration avec KMS Provider

Pour la production, utilisez le KMS provider pour déléguer la gestion des clés à un KMS externe. Configuration pour AWS KMS : installez le plugin aws-encryption-provider (DaemonSet sur les nœuds control-plane), configurez EncryptionConfiguration avec provider KMS et l'endpoint du plugin Unix socket. Le plugin appelle AWS KMS pour générer et gérer la Data Encryption Key (DEK). Cette approche permet la rotation des clés sans redémarrage du cluster et bénéficie de l'HSM AWS KMS.

Vérification du chiffrement etcd

Pour vérifier que les Secrets sont bien chiffrés dans etcd : connectez-vous directement à etcd (etcdctl get /registry/secrets/default/my-secret). Si le chiffrement est actif, la valeur est illisible (préfixe k8s:enc:aescbc: ou k8s:enc:kms:). Si vous voyez les données en base64 lisible, le chiffrement n'est pas actif. Sur EKS, vérifiez l'activation du chiffrement via aws eks describe-cluster --name cluster-name --query cluster.encryptionConfig.

Protection de l'accès à etcd

Au-delà du chiffrement au repos, protégez l'accès à etcd : seul le kube-apiserver doit avoir accès au port etcd (2379/2380). Les certificats client etcd doivent être en rotation régulière. L'accès direct à etcd (sans passer par kube-apiserver et ses politiques RBAC) contourne tous les contrôles de sécurité Kubernetes. Bloquez l'accès réseau direct à etcd via des NetworkPolicies HostEndpoints (Calico) ou des Security Groups/NSG restrictifs sur les nœuds control-plane.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis