Chaque cluster Kubernetes est livré avec un objet « Secret » intégré. Cela ressemble à la sécurité. Cela ressemble à de la sécurité. Ce n’est pas de la sécurité.

Un secret Kubernetes est, par défaut, simplement une chaîne codée en base64 stockée dans etcd — lisible par toute personne ayant accès au cluster et décodable de manière triviale avec une seule ligne : echo "c2VjcmV0" | base64 -d. À moins que vous n’ayez explicitement activé le chiffrement au repos (et la plupart des équipes ne l’ont pas fait), les mots de passe de votre base de données, les jetons d’API et les clés privées TLS se trouvent non chiffrés dans la banque de données du plan de contrôle de votre cluster. Envoyez un manifeste Kubernetes contenant un « Secret » à Git, et ces informations d’identification resteront pour toujours dans l’historique de votre référentiel.

C’est le problème pour lequel une nouvelle génération d’outils de gestion des secrets a vu le jour – et en 2026, l’écosystème a considérablement mûri. Ce guide couvre les six outils les plus importants pour gérer les secrets dans les environnements Kubernetes : ce qu’ils font, ce qu’ils ne font pas et lequel correspond au niveau de maturité de votre équipe.

Lecture connexe : Si vous êtes préoccupé par les fuites de secrets via votre pipeline CI/CD, consultez notre résumé des meilleurs outils de pipeline CI/CD. Pour une vision plus large de la sécurité des conteneurs, consultez notre guide des outils d’analyse des vulnérabilités.


Pourquoi les secrets par défaut de Kubernetes ne sont pas à la hauteur

Avant de plonger dans les outils, il convient d’être précis sur ce qui manque aux secrets de Kubernetes, car comprendre l’écart est ce qui vous permet de choisir la bonne solution.

Aucun cryptage au repos par défaut. etcd stocke les secrets Kubernetes en base64, non cryptés. L’activation du Chiffrement au repos est une étape de configuration au niveau du cluster que les fournisseurs Kubernetes gérés (EKS, GKE, AKE) gèrent différemment, et de nombreux clusters autogérés l’ignorent complètement.

Pas de rotation de secret. Il n’existe aucun mécanisme intégré permettant à un secret Kubernetes de savoir que ses informations d’identification de support ont changé. Vous faites pivoter un mot de passe de base de données en externe et vos pods continuent d’utiliser l’ancien jusqu’à ce que vous mettiez à jour manuellement le secret et redémarriez les pods concernés.

Aucun journal d’audit pour l’accès secret. La journalisation d’audit Kubernetes standard enregistre les modifications des objets secrets, mais la plupart des configurations n’enregistrent pas les lectures individuelles, ce qui signifie que vous ne pouvez pas répondre « quel service a accédé à ce jeton et quand ? »

Git est hostile de par sa conception. Le conseil standard est de « ne jamais transmettre de secrets à Git ». Mais dans un monde GitOps où tout est en tant que code comme objectif, c’est une exception pénible à maintenir.

RBAC comme instrument brutal. Kubernetes RBAC vous permet d’accorder ou de refuser l’accès aux objets secrets au niveau de l’espace de noms. Il ne peut pas exprimer “Le service A peut lire le secret X mais pas le secret Y” ou “ce secret expire dans 24 heures”.

Aucune de ces raisons n’est une raison pour abandonner Kubernetes : ce sont des raisons d’utiliser en plus des outils dédiés de gestion des secrets.


TL;DR — Comparaison des fonctionnalités

OutilChiffrement au reposSecrets dynamiquesJournaux d’auditK8 natifsMulti-CloudTarifs
Coffre HashiCorp⚠️ (par l’intermédiaire d’un agent)OSS gratuit / HCP payant
Opérateur de secrets externes✅ (via le back-end)✅ (via le back-end)✅ (via le back-end)Gratuit / OSS
Secrets scellésGratuit / OSS
Gestionnaire de secrets AWS⚠️ (via ESO/CSI)❌ (AWS uniquement)Tarification par secret
Doppler✅ (opérateur)Niveaux gratuits → payants
Infisical✅ (opérateur)OSS / cloud payant

⚠️ = nécessite des composants supplémentaires


1. HashiCorp Vault — La référence en matière de secrets d’entreprise

HashiCorp Vault est la référence par rapport à laquelle tous les autres outils de gestion des secrets sont mesurés. Il a été testé dans des environnements d’entreprise depuis près d’une décennie, et son ensemble de fonctionnalités reflète cette profondeur.

La fonctionnalité principale de Vault réside dans les secrets dynamiques : des informations d’identification générées à la demande et qui expirent automatiquement. Au lieu de stocker un mot de passe PostgreSQL statique, Vault génère une paire nom d’utilisateur/mot de passe unique pour chaque service demandeur, valable pour une période de location configurable (par exemple, une heure). À l’expiration du bail, l’accréditation est révoquée. Cela élimine des classes entières de prolifération des informations d’identification et facilite considérablement le confinement des violations.

Pour Kubernetes, Vault Agent Injector ou Vault Secrets Operator sont les chemins d’intégration. L’injecteur fonctionne comme un webhook en mutation qui intègre automatiquement un agent Vault dans vos pods, qui s’authentifie auprès de Vault à l’aide du compte de service Kubernetes du pod et écrit des secrets sur un volume en mémoire partagé. L’opérateur Vault Secrets Operator (VSO), l’approche la plus récente, synchronise les secrets Vault avec des objets secrets Kubernetes natifs – plus familiers aux opérateurs, au détriment des secrets existant brièvement dans etcd.

Les moteurs secrets de Vault couvrent une gamme impressionnante :

  • Identifiants de base de données (PostgreSQL, MySQL, MongoDB, et plus)
  • Informations d’identification dynamiques AWS, GCP, Azure
  • Génération de certificats PKI et TLS
  • Signature du certificat SSH
  • Jetons de compte de service Kubernetes

Ce que Vault fait bien : Identifiants dynamiques, politiques d’accès précises, journal d’audit complet et écosystème de plug-ins mature. Si vous avez besoin d’une gestion des secrets de qualité avec une trace complète de qui a accédé à quoi et quand, Vault est souvent la seule option raisonnable.

À quoi faut-il faire attention : Vault présente une complexité opérationnelle. L’exécuter en mode haute disponibilité nécessite une attention particulière aux backends de stockage (Raft est désormais le choix recommandé), aux procédures de descellement et aux chemins de mise à niveau. La courbe d’apprentissage est réelle. Budget pour le temps d’ingénierie de la plateforme.

Tarif : La version open source est gratuite et couvre la plupart des besoins. HashiCorp Cloud Platform (HCP) Vault est l’offre gérée dont la tarification est basée sur les heures de cluster et les opérations secrètes. Le changement de licence BSL de 2023 a conduit au fork OpenTofu pour Terraform, mais l’équivalent du fork de Vault (OpenBao) est toujours en cours de maturation.

📚 Lecture recommandée : Hacking Kubernetes par Andrew Martin et Michael Hausenblas — excellente couverture des surfaces d’attaque de Kubernetes, y compris des scénarios d’exfiltration secrets.


2. Opérateur de secrets externes (ESO) — La couche d’intégration native K8s

External Secrets Operator adopte une position architecturale fondamentalement différente : plutôt que d’être un magasin de secrets en soi, il s’agit d’un pont entre Kubernetes et le magasin externe que vous possédez déjà. ESO synchronise les secrets d’AWS Secrets Manager, GCP Secret Manager, Azure Key Vault, HashiCorp Vault, 1Password, Doppler et une liste croissante d’autres backends dans des objets secrets Kubernetes natifs.

L’abstraction principale est la ressource personnalisée « ExternalSecret » :

apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: database-credentials
spec:
  refreshInterval: 1h
  secretStoreRef:
    name: aws-secrets-manager
    kind: ClusterSecretStore
  target:
    name: db-creds
  data:
    - secretKey: password
      remoteRef:
        key: production/db/password

ESO surveille cette ressource, récupère le secret depuis AWS Secrets Manager (ou ailleurs) et crée un secret Kubernetes standard. Votre application lit « db-creds » comme n’importe quel autre secret Kubernetes : aucune modification de code n’est requise. Lorsque refreshInterval est coché, ESO récupère et met à jour automatiquement le secret.

Pourquoi ESO est si populaire en 2026 : Il s’intègre bien avec les investissements existants. Votre organisation dispose déjà d’AWS Secrets Manager (ou Vault ou GCP Secret Manager) : ESO rend simplement ces secrets consommables dans Kubernetes sans modifier le code de votre application ou vos flux de travail de rotation de secrets existants.

ESO ou Vault Secrets Operator ? Si vous exécutez Vault, le VSO dispose d’une intégration plus étroite spécifique à Vault (secrets dynamiques Vault, Vault PKI). Si vous utilisez le magasin de secrets natif d’un fournisseur de cloud, ESO est le choix le plus simple. De nombreuses équipes exécutent les deux : ESO pour les secrets statiques stockés dans le cloud, VSO pour les informations d’identification dynamiques gérées par Vault.

Tarifs : ESO est gratuit et open source (Apache 2.0), maintenu par un projet sandbox CNCF avec un fort soutien communautaire.


3. Secrets scellés – Secrets cryptés compatibles GitOps

Sealed Secrets de Bitnami résout un problème spécifique : comment stocker les manifestes secrets Kubernetes dans Git sans stocker le texte brut réel ? La réponse est le chiffrement asymétrique.

Le contrôleur Sealed Secrets s’exécute dans votre cluster et contient une clé privée. La CLI « kubeseal » chiffre un manifeste Kubernetes Secret avec la clé publique du cluster, produisant un CRD « SealedSecret ». Ce manifeste chiffré peut être validé dans Git en toute sécurité : seule la clé privée du cluster peut le déchiffrer, et il ne peut être déchiffré que dans ce cluster spécifique (par défaut, le texte chiffré est lié à l’espace de noms + au nom).

# Encrypt a secret for Git storage
kubectl create secret generic db-creds \
  --from-literal=password=s3cr3t \
  --dry-run=client -o yaml | \
  kubeseal --format=yaml > db-creds-sealed.yaml

# This file is safe to commit
git add db-creds-sealed.yaml

Lorsque vous appliquez le « SealedSecret » au cluster, le contrôleur le déchiffre et crée l’objet « Secret » correspondant.

Ce que Sealed Secrets fait bien : Flux de travail GitOps. Si vous utilisez Argo CD ou Flux et souhaitez que chaque ressource de cluster (y compris les secrets) soit stockée de manière déclarative dans Git, Sealed Secrets correspond parfaitement à ce modèle. Il ne nécessite aucune dépendance externe au-delà du contrôleur intégré au cluster.

Ce qu’il ne fait pas : Rotation, informations d’identification dynamiques ou journalisation d’audit au-delà des événements Kubernetes standard. Sealed Secrets est une solution de stockage Git, pas une plateforme complète de gestion des secrets. Si votre mot de passe change, vous chiffrez à nouveau et validez à nouveau.

La sauvegarde de la clé privée est essentielle. Si vous perdez la clé privée du contrôleur, vous perdez la possibilité de déchiffrer vos secrets scellés. Sauvegardez le secret « sealed-secrets-key » dans un emplacement séparé et sécurisé.

Tarifs : Entièrement gratuit et open source (Apache 2.0).


4. AWS Secrets Manager avec Kubernetes

Si vos charges de travail s’exécutent principalement sur EKS (ou se connectent fortement aux services AWS), AWS Secrets Manager associé au Secrets Store CSI Driver ou à External Secrets Operator est un choix naturel. Vous conservez les secrets dans le magasin géré, chiffré et journalisé d’audit d’AWS et les transférez dans Kubernetes si nécessaire.

Le Secrets Store CSI Driver (SSCSID) est l’approche maintenue par la CNCF : les secrets sont montés directement dans les pods sous forme de fichiers via un volume CSI, jamais écrits sur etcd en tant qu’objets secrets Kubernetes. Il s’agit du chemin le plus sécurisé : les secrets existent dans la mémoire du pod, mais pas dans le magasin de secrets Kubernetes.

volumes:
  - name: secrets-store
    csi:
      driver: secrets-store.csi.k8s.io
      readOnly: true
      volumeAttributes:
        secretProviderClass: aws-secrets

Les fonctionnalités natives d’AWS Secrets Manager incluent une rotation automatique pour les services pris en charge (RDS, Redshift, DocumentDB et via Lambda pour une rotation personnalisée), un accès entre comptes et une intégration approfondie de CloudTrail pour les pistes d’audit de conformité.

Considération des coûts : AWS Secrets Manager facture par secret, par mois et par appel d’API. Pour les grandes flottes avec de nombreux petits secrets, les coûts peuvent s’additionner. Consultez notre guide d’optimisation des coûts du cloud pour connaître les stratégies de gestion des dépenses AWS liées aux secrets.

Idéal pour : Les équipes natives EKS ayant déjà investi dans l’écosystème AWS et qui souhaitent une intégration IAM étroite et une rotation des informations d’identification RDS natives.


5. Doppler — Plateforme de secrets SaaS réservée aux développeurs

Doppler adopte une approche SaaS first qui donne la priorité à l’expérience des développeurs plutôt qu’à la complexité opérationnelle. Vous définissez les secrets dans l’interface utilisateur de Doppler (ou via CLI/API), les organisez par environnement (développement, transfert, production) et l’opérateur Doppler Kubernetes les synchronise automatiquement dans les secrets Kubernetes.

L’opérateur interroge Doppler pour détecter les modifications et met à jour le secret Kubernetes correspondant, déclenchant éventuellement le redémarrage du pod lorsque les secrets changent. La configuration consiste en une seule installation de chart Helm :

helm repo add doppler https://helm.doppler.com
helm install --generate-name doppler/doppler-kubernetes-operator

Là où Doppler brille : Développement local et intégration CI/CD aux côtés de Kubernetes. La CLI Doppler remplace entièrement les fichiers d’environnement (« doppler run – your-command »), donnant les mêmes secrets dans les environnements locaux, CI et de production. Pour les pipelines CI/CD, les intégrations natives de Doppler avec GitHub Actions, CircleCI et autres éliminent le besoin de copier des secrets dans les variables d’environnement du pipeline.

Ce que Doppler ne couvre pas : Informations d’identification de base de données dynamique. Doppler est un magasin de secrets statique avec historique des versions et journalisation d’audit. Ce n’est pas un moteur de génération de secrets comme Vault.

Tarifs : Doppler propose un niveau gratuit pour les petites équipes. Les forfaits payants ajoutent des fonctionnalités de SSO, de demandes d’accès et de conformité. Consultez la page de tarification de Doppler pour connaître les niveaux actuels (modifications de prix ; vérifiez avant de budgétiser).


6. Infisical — Alternative au coffre-fort open source

Infisical est le challenger open source le plus puissant du duopole Vault/Doppler. Il fournit une interface utilisateur Web, une CLI, des SDK et un opérateur Kubernetes – déployable, auto-hébergé ou consommé en tant que service cloud.

Infisical a ajouté la prise en charge des secrets dynamiques en 2024, ciblant la génération d’informations d’identification de base de données similaire au moteur de secrets de base de données de Vault. L’opérateur Infisical Kubernetes synchronise les CRD « InfisicalSecret » avec les secrets Kubernetes natifs, avec des intervalles d’actualisation configurables.

Pour les équipes qui souhaitent une UX de niveau SaaS (tableau de bord Web, workflows de demande d’accès, journaux d’audit) mais qui ne peuvent pas utiliser de SaaS externe en raison d’exigences de conformité, Infisical auto-hébergé est convaincant. Il est nettement plus facile à utiliser que Vault et offre une expérience d’intégration plus conviviale pour les développeurs.

Tarifs : Le noyau open source est gratuit. La version hébergée dans le cloud propose un niveau gratuit et des forfaits payants pour des fonctionnalités avancées. Une licence d’entreprise auto-hébergée est disponible pour les environnements exigeants en matière de conformité.

📚 Pour une analyse plus approfondie de l’architecture de sécurité de Kubernetes : Kubernetes Security and Observability sur Amazon couvre les secrets, le RBAC, la politique réseau et la sécurité d’exécution dans un cadre cohérent.


Conseils de mise en œuvre

Commencez par le chiffrement au repos. Avant d’ajouter des outils supplémentaires, activez le chiffrement Kubernetes etcd au repos. Pour les clusters gérés, il s’agit souvent d’une seule case à cocher. Pour les clusters autogérés, suivez le guide officiel. Cela augmente immédiatement votre niveau de sécurité de base.

Adoptez le RBAC de moindre privilège pour les secrets. Vérifiez quels comptes de service disposent des autorisations « get », « list » ou « watch » sur les objets secrets. Les comptes de service par défaut dans de nombreuses chartes Helm sont surprovisionnés. Serrez le RBAC avant de passer à un magasin externe.

Planifiez tôt vos conventions de dénomination secrètes. Les secrets prolifèrent rapidement. Une hiérarchie cohérente ({env}/{service}/{credential-type}) simplifie considérablement l’automatisation, les politiques RBAC et les flux de travail de rotation dans tous les outils.

Ne sautez pas les tests de rotation secrets. Quel que soit l’outil que vous choisissez, exécutez un exercice de rotation avant d’en avoir besoin. Vérifiez que votre application récupère les nouvelles informations d’identification sans temps d’arrêt. Les secrets dynamiques avec Vault ou ESO rendent cela beaucoup plus facile que les secrets statiques mis à jour manuellement.

Surveillez l’expansion des secrets. À mesure que votre plateforme se développe, les secrets s’accumulent. Intégrez les rapports de gestion des secrets dans les tableaux de bord d’ingénierie de votre plateforme. Consultez notre Guide des outils de surveillance Kubernetes pour découvrir des outils d’observabilité capables de suivre les modèles d’accès secrets.


Quel outil pour quelle équipe ?

Petite équipe, cloud natif (AWS/GCP/Azure) : Commencez par un opérateur de secrets externes qui se connecte au magasin de secrets natif de votre fournisseur cloud. Frais généraux opérationnels minimes, intégration d’audit solide, gratuit.

Première équipe GitOps (Argo CD / Flux) : Secrets scellés pour la configuration stockée dans GitOps, combinés avec ESO pour les informations d’identification d’exécution sensibles qui ne devraient même pas être cryptées dans Git.

Entreprise avec exigences de conformité (SOC 2, PCI, HIPAA) : HashiCorp Vault : soit un cluster Raft auto-hébergé, soit un Vault HCP géré. Le journal d’audit, les informations d’identification dynamiques et le moteur de stratégie à granularité fine sont difficiles à reproduire ailleurs.

Environnement mixte axé sur l’expérience des développeurs (K8 + local + CI/CD) : Doppler pour le DX unifié dans tous les environnements, ou Infisical auto-hébergé si la résidence des données est importante.

Grande équipe de plate-forme gérant des environnements multiclusters : Opérateur de secrets externes en tant que couche d’abstraction côté K8, soutenu par Vault ou un magasin cloud natif. Centraliser la source de vérité dans un seul magasin tout en utilisant ESO comme adaptateur universel entre les clusters est un modèle qui a fait ses preuves en 2026.

Connexe : Pour les risques de sécurité introduits par les outils de codage d’IA dans vos manifestes Kubernetes et vos pipelines CI/CD, consultez notre guide sur les risques de sécurité du codage Vibe en 2026.


##FAQ

Les secrets Kubernetes sont-ils chiffrés par défaut ?

Non. Les secrets Kubernetes sont codés en base64 par défaut : codage et non chiffrement. Les données sont stockées dans etcd sans cryptage, sauf si vous activez explicitement le cryptage au repos. Vérifiez toujours la configuration de votre cluster et envisagez des outils de gestion des secrets externes pour les charges de travail de production.

Quelle est la différence entre les secrets scellés et les opérateurs de secrets externes ?

Sealed Secrets crypte les manifestes secrets pour un stockage Git sécurisé — c’est une solution GitOps. External Secrets Operator récupère les secrets en direct des magasins externes (Vault, AWS Secrets Manager, etc.) et crée des secrets Kubernetes natifs à partir d’eux. Ils résolvent différents problèmes et sont souvent utilisés ensemble.

Que sont les secrets dynamiques et pourquoi sont-ils importants ?

Les secrets dynamiques sont des informations d’identification générées à la demande avec expiration automatique, plutôt que des mots de passe statiques stockés indéfiniment. HashiCorp Vault est la principale source de secrets dynamiques pour Kubernetes. Si un identifiant dynamique est compromis, il expire selon son propre calendrier. Cela limite considérablement le rayon d’explosion des brèches par rapport aux secrets statiques de longue durée.

Dois-je utiliser Doppler ou HashiCorp Vault pour Kubernetes ?

Doppler gagne grâce à l’expérience des développeurs et à une adoption rapide. Vault gagne en matière de conformité d’entreprise : informations d’identification dynamiques, journaux d’audit granulaires et stratégie affinée. Pour les équipes de petite et moyenne taille, le Doppler constitue souvent la solution la plus rapide. Pour les environnements SOC 2, PCI DSS ou HIPAA, Vault est généralement le choix le plus défendable.

Comment puis-je empêcher les secrets de s’infiltrer dans les journaux du conteneur ?

Montez les secrets sous forme de fichiers plutôt que de variables d’environnement (les variables d’environnement peuvent être exposées via /proc et les points de terminaison de débogage). Utilisez le pilote CSI Secrets Store pour contourner complètement etcd. Recherchez les validations de secrets accidentelles dans votre pipeline CI/CD avec des outils tels que le scanner de secrets de Trivy — consultez notre guide des outils d’analyse des vulnérabilités pour les détails de configuration.

Quel est le meilleur outil de gestion des secrets pour une petite équipe Kubernetes ?

Commencez par un opérateur de secrets externes soutenu par le magasin de secrets natif de votre fournisseur de cloud. Frais généraux d’exploitation minimes, journalisation d’audit solide, gratuit. Ajoutez le niveau gratuit de Doppler si vous souhaitez également une expérience unifiée des secrets de développement/CI/production.

Comment intégrer AWS Secrets Manager à Kubernetes ?

Utilisez un opérateur de secrets externes avec un ClusterSecretStore pointant vers AWS Secrets Manager. Sur EKS, utilisez IRSA (IAM Roles for Service Accounts) pour l’authentification IAM au niveau du pod — aucune information d’identification statique n’est nécessaire. Sur les clusters non EKS, utilisez un utilisateur IAM avec secretsmanager:GetSecretValue limité à vos ARN secrets spécifiques.