Publications

Secrets on Kubernetes: Vault as a Sidecar, a CSI Driver or an Operator

Eight secrets managers reviewed, one recommended, and three ways to bring it into a pod. What each mode writes, where the secret ends up, and the seven questions to settle before choosing

Résumé

Dès que l’infrastructure et la configuration des environnements passent dans le code, les secrets ont besoin d’un gestionnaire: les écrire en clair dans le dépôt n’est pas une option, et chaque promotion d’un environnement à l’autre change les secrets. Le Secret natif de Kubernetes ne suffit pas, puisque ses valeurs sont seulement encodées en base64 et, par défaut, stockées en clair dans etcd. L’article reprend une revue de huit outils, chacun avec son verdict: Ansible Vault hors sujet, Helm Secrets et EJSON insuffisants, Barbican déconseillé, Conjur trop complexe et trop coûteux, Knox et Red October trop peu éprouvés. HashiCorp Vault est recommandé.

Vault entre dans un pod de trois façons, et la différence tient à ce qui écrit le secret et à l’endroit où il atterrit. L’injecteur ajoute un Vault Agent en sidecar qui écrit dans un volume en mémoire, avec templates et renouvellement. Le driver CSI Secrets Store monte les secrets en fichiers au démarrage du pod, sans sidecar mais sans template, avec une rotation encore en alpha et, sur OpenShift, un opérateur toujours en Technology Preview. Le Vault Secrets Operator, disponible en version stable depuis juin 2023, synchronise Vault vers des Secrets Kubernetes ordinaires et peut redémarrer les workloads, au prix d’un secret de nouveau stocké dans etcd.

Avant l’outil viennent sept critères: une application qui ignore tout du gestionnaire de secrets, la sécurité (contrôle d’accès, rotation, révocation), l’adaptabilité aux machines virtuelles comme à Kubernetes, la tenue en charge, une communauté active et une documentation claire, le coût du support et de la licence (Vault est passé sous Business Source License en août 2023, OpenBao en est le fork) et le savoir-faire des équipes. La gouvernance partage les rôles: la sécurité fixe les règles, l’exploitation les applique.

Idées clés

  • Un Secret Kubernetes n’est qu’encodé en base64 et, sans chiffrement au repos configuré, stocké en clair dans etcd; dès que l’infrastructure est du code, un gestionnaire de secrets devient indispensable.
  • Sur huit outils passés en revue, sept sont écartés par au moins un critère: l’intégration, la sécurité, l’adaptabilité, la tenue en charge, la maturité ou le coût. HashiCorp Vault est recommandé, avec trois modes d’intégration à Kubernetes.
  • L’injecteur sidecar garde le secret en mémoire dans le pod, le driver CSI le monte en fichier au démarrage, l’opérateur le copie dans un Secret Kubernetes; le bon mode dépend de l’endroit où le secret doit vivre.
  • Sept critères précèdent le choix de l’outil, de l’application découplée de son gestionnaire de secrets jusqu’au savoir-faire des équipes, en passant par le coût du support et de la licence.