Aller au contenu
Sécurité medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

HashiCorp Vault : gérez vos secrets en toute sécurité

17 min de lecture

logo vault

HashiCorp Vault est un coffre-fort de secrets qui centralise le stockage, l’accès et la rotation de vos données sensibles. Au lieu de disperser vos mots de passe, clés API et certificats dans des fichiers de config ou des variables d’environnement, Vault les protège avec du chiffrement, un contrôle d’accès granulaire et un journal d’audit complet.

Cette page est une page pivot de décision. Elle vous aide à évaluer si Vault correspond à votre contexte, quelle édition choisir, et ce que la licence BSL implique concrètement. Les guides pratiques vous accompagnent ensuite pas à pas.

Vault est un outil puissant mais complexe. Avant de l’adopter, posez-vous la question : ai-je vraiment besoin de cette complexité ?

Vault devient pertinent quand vous avez au moins un de ces besoins :

BesoinPourquoi Vault excelle
Secrets dynamiquesCredentials base de données, cloud, SSH générés à la demande avec TTL
PKI interneAutorité de certification intégrée, certificats courts (heures/jours)
Chiffrement applicatifTransit : l’application n’a jamais accès aux clés de chiffrement
Audit fortJournal complet de qui accède à quoi, quand, pour quelle raison
Multi-équipesIsolation des secrets par équipe/environnement avec policies ACL
Rotation / révocationRévocation instantanée, rotation automatique des credentials
Intégration KubernetesAuth native via ServiceAccount, injection de secrets
Fédération d’identitéAuthentification unifiée OIDC, LDAP, cloud providers

Pour certains cas, Vault apporte plus de complexité que de valeur :

SituationAlternative plus simple
Quelques secrets d’équipeGestionnaire de mots de passe (Bitwarden, 1Password)
Secrets CI/CD simplesVariables secrètes GitLab/GitHub, AWS Secrets Manager
Équipe < 10 personnes, mono-envSOPS + Git, Infisical, Doppler
Pas de budget ops dédiéSolution managée (HCP Vault, Infisical Cloud)
Besoin ponctuel de certificatsLet’s Encrypt, Certbot

Vault n’est pas un simple coffre-fort : c’est un composant d’infrastructure avec ses propres exigences opérationnelles.

ComposantCe que vous devez gérer
InitialisationGénérer et sécuriser les clés de déverrouillage (unseal keys)
UnsealingDéverrouiller Vault après chaque redémarrage (manuel ou auto-unseal)
StockageConfigurer et maintenir le backend (Raft intégré recommandé)
Haute disponibilitéCluster 3+ nœuds pour la tolérance aux pannes
SauvegardesSnapshots réguliers du storage Raft
Rotation des clésRotation périodique de la clé de chiffrement maître
AuditConfigurer et monitorer les audit devices (fichier, syslog, socket)
MonitoringMétriques Prometheus, alertes sur les échecs d’auth, expirations
PoliciesÉcrire et maintenir les ACL pour chaque équipe/application
TLSCertificats pour l’API Vault (obligatoire en production)

Par défaut, Vault nécessite une intervention manuelle après chaque redémarrage (fournir les clés Shamir). En production, l’auto-unseal délègue cette opération à un service de confiance :

MéthodeFournisseurPrérequis
Cloud KMSAWS KMS, Azure Key Vault, GCP Cloud KMSCompte cloud configuré
TransitUn autre cluster VaultCluster Vault dédié à l’unseal
HSMPKCS#11Hardware Security Module (Enterprise)

HashiCorp propose deux éditions de Vault. Vault CE couvre 90% des besoins courants : KV, Transit, PKI, Database, SSH, toutes les auth methods, Raft storage, et auto-unseal.

Ce que vous obtenezVault CEVault Enterprise
Secrets engines (KV, Transit, PKI, Database, SSH)
Auth methods (AppRole, K8s, OIDC, LDAP, cloud)
Auto-unseal (Cloud KMS, Transit)
Namespaces (multi-tenancy)
Replication (DR, Performance)
MFA intégrée

En résumé : CE suffit pour la majorité des organisations. Enterprise se justifie pour le multi-tenant, la réplication multi-région, ou la compliance stricte. HCP Vault offre une version managée sans charge opérationnelle.

Depuis août 2023, Vault est sous Business Source License (BSL) 1.1 au lieu de MPL 2.0. C’est une licence source-available, pas open source au sens OSI.

UsageAutorisé ?
Utiliser Vault en interne✅ Oui
Déployer pour vos propres applications✅ Oui
Services de conseil autour de Vault✅ Oui
Créer une offre managée concurrente à HCP Vault❌ Non

En pratique : si vous utilisez Vault pour vos besoins internes ou en tant que consultant, vous n’êtes pas impacté. La restriction cible les offres “Vault-as-a-Service” concurrentes.

Vault repose sur quatre composants principaux qui interagissent pour sécuriser vos secrets.

Architecture Vault - Flux d'accès aux secrets

Un point souvent sous-estimé : Vault maintient un système d’identité qui consolide les différentes méthodes d’authentification.

  • Entity : représente une personne ou une application unique
  • Alias : lie une entity à une auth method (ex: alice via userpass + alice via OIDC = même entity)
  • Group : regroupe des entities pour leur appliquer des policies communes

Cela permet d’avoir une vision unifiée des accès même si vous utilisez plusieurs auth methods (userpass pour le dev, OIDC pour la prod, Kubernetes pour les pods).

Vault démarre scellé (sealed). Dans cet état, il refuse toute opération : les données sont chiffrées avec une clé maître elle-même chiffrée.

Pour devenir opérationnel, Vault doit être déverrouillé (unsealed) :

ModeFonctionnement
Shamir (défaut)La clé maître est divisée en N parts, M sont nécessaires
Auto-unsealUn service externe (KMS, Transit) détient la clé

En production, configurez l’auto-unseal pour éviter les interventions manuelles après chaque redémarrage.

Imaginez Vault comme un immeuble de bureaux sécurisé. Chaque “secrets engine” est un étage spécialisé : un étage pour les coffres-forts classiques, un autre pour la fabrication de clés temporaires, un troisième pour l’émission de badges d’accès. Vous activez uniquement les étages dont vous avez besoin.

Vault distingue deux approches fondamentalement différentes :

Les secrets statiques fonctionnent comme un coffre-fort traditionnel. Vous y déposez un secret (mot de passe, clé API), et Vault le conserve jusqu’à ce que vous le modifiiez ou le supprimiez. C’est simple, mais le secret reste le même tant que vous ne le changez pas manuellement — avec tous les problèmes que cela pose.

Les secrets dynamiques fonctionnent comme une usine à credentials. Au lieu de stocker un mot de passe PostgreSQL, vous configurez Vault pour qu’il crée un nouvel utilisateur PostgreSQL à chaque demande, avec une durée de vie limitée (1 heure, 1 jour…). Quand le temps expire, Vault supprime automatiquement l’utilisateur. Personne ne partage jamais le même credential.

EngineFamilleCe qu’il fait concrètement
KV v2StatiqueVotre coffre-fort classique : stockez n’importe quel secret avec versioning (10 dernières versions conservées)
TransitChiffrementVault chiffre/déchiffre vos données sans jamais vous donner la clé. Votre app envoie du texte clair, reçoit du chiffré.
DatabaseDynamiqueCrée un user PostgreSQL/MySQL/MongoDB à la demande, le supprime automatiquement après expiration
PKIDynamiqueFabrique des certificats TLS signés par votre CA interne, avec la durée que vous voulez (1 heure, 30 jours…)
SSHDynamiqueSigne les clés SSH ou génère des mots de passe OTP pour accéder à vos serveurs
AWS/Azure/GCPDynamiqueGénère des credentials cloud temporaires (IAM user, service account…)
CubbyholeStatiqueCoffre-fort personnel lié à votre token — personne d’autre ne peut y accéder, même les admins
Votre besoinEngine recommandéPourquoi
Stocker des clés API tiercesKV v2Secrets statiques imposés par le fournisseur
Accès base de données pour vos appsDatabasePlus de mot de passe partagé, rotation automatique
Chiffrer des données sensibles (RGPD)TransitVos développeurs n’ont jamais accès aux clés
Certificats TLS internes (mTLS)PKICertificats courts, révocation facile
Accès SSH à vos serveursSSHPlus de clés SSH qui traînent, accès audité
Credentials AWS temporairesAWSPlus de access keys permanentes dans les configs

Méthodes d’authentification : prouver son identité

Section intitulée « Méthodes d’authentification : prouver son identité »

Avant d’accéder à un secret, vous devez prouver qui vous êtes. Vault propose plusieurs méthodes selon que vous êtes un humain ou une machine.

Pour un humain, c’est simple : vous tapez un mot de passe ou vous utilisez votre SSO d’entreprise. Mais comment une application prouve-t-elle son identité ? Elle ne peut pas taper de mot de passe.

C’est là qu’interviennent les méthodes d’auth spécialisées :

  • AppRole : l’application reçoit un “role_id” (son identité) et un “secret_id” (son mot de passe jetable). Le secret_id peut être à usage unique.
  • Kubernetes : le pod utilise son ServiceAccount token. Vault vérifie auprès de l’API Kubernetes que le pod est bien celui qu’il prétend être.
  • AWS/Azure/GCP : l’instance cloud utilise son identité machine (instance metadata). Vault vérifie auprès du cloud provider.
Qui s’authentifieMéthode recommandéeComment ça marche
Développeur en localUserpassLogin/mot de passe classique, simple pour les tests
Employé en entrepriseOIDC ou LDAPSSO via Keycloak, Okta, Azure AD, ou Active Directory
Pipeline CI/CDAppRolerole_id en variable, secret_id généré à chaque run
Pod KubernetesKubernetes authServiceAccount token vérifié par Vault
Instance EC2/VM cloudAWS/Azure/GCP authL’identité machine du cloud provider
Serveur on-premiseAppRole ou TLS certsSelon votre infrastructure

Les tokens Vault fonctionnent, mais ils ont un problème : vous devez les créer et les distribuer manuellement. Si vous avez 50 microservices, ça devient ingérable. Les auth methods permettent aux applications de s’authentifier elles-mêmes et de recevoir un token automatiquement.

Policies : le principe du moindre privilège en action

Section intitulée « Policies : le principe du moindre privilège en action »

Une fois authentifié, que pouvez-vous faire ? C’est le rôle des policies. Elles définissent précisément quels secrets vous pouvez lire, modifier ou supprimer.

Pensez aux badges dans un immeuble de bureaux. Votre badge vous donne accès à certains étages et certaines salles, pas à tout le bâtiment. Les policies Vault fonctionnent pareil : elles définissent les “chemins” (paths) auxquels vous avez accès et ce que vous pouvez y faire.

# Policy pour l'équipe développement
# Accès complet aux secrets de dev
path "secret/data/dev/*" {
capabilities = ["create", "read", "update", "delete", "list"]
}
# Lecture seule sur staging (pas de modification en pré-prod)
path "secret/data/staging/*" {
capabilities = ["read", "list"]
}
# Aucun accès à la production (implicite : tout ce qui n'est pas
# explicitement autorisé est refusé)

Décryptage ligne par ligne :

  • path "secret/data/dev/*" : cette règle s’applique à tout ce qui commence par ce chemin. Le * est un wildcard.
  • capabilities : la liste des actions autorisées sur ce chemin.
  • Par défaut, tout est refusé. Une policy n’accorde que ce qui est explicitement listé.
CapabilityCe que ça permetExemple concret
readLire la valeur d’un secretRécupérer le mot de passe de la base de données
listVoir la liste des secrets (pas leur contenu)Savoir qu’il existe un secret “db-password” sans le lire
createCréer un nouveau secretAjouter une nouvelle clé API
updateModifier un secret existantChanger le mot de passe
deleteSupprimer un secretRetirer une clé API révoquée
sudoActions d’administrationModifier les policies, gérer les auth methods
denyRefuser explicitement (prioritaire sur tout)Bloquer l’accès même si une autre policy l’autorise
  1. Une policy par rôle métier : policy-dev-team, policy-ci-runner, policy-prod-readonly
  2. Moindre privilège : accordez uniquement ce qui est nécessaire
  3. Pas de wildcards sur la prod : secret/data/prod/db-* plutôt que secret/data/prod/*
  4. Testez avant de déployer : vault policy fmt vérifie la syntaxe

OpenBao est un fork de Vault créé en 2023 après le changement de licence. Maintenu par la Linux Foundation sous licence MPL 2.0, il offre une alternative 100% open source.

CritèreVault CEOpenBao
LicenceBSL 1.1MPL 2.0 (OSI)
Namespaces❌ Enterprise only✅ Inclus
Maturité10+ ans2+ ans
ÉcosystèmeLargeEn croissance

En résumé :

  • Vault si vous avez besoin de l’écosystème mature ou envisagez Enterprise
  • OpenBao si la licence OSI est requise ou si vous voulez les namespaces sans payer
ProfilSolution recommandéePourquoi
Petite équipe (< 10 dev)Infisical, Doppler, SOPSMoins de complexité opérationnelle
Startup / équipe moyenneVault CE ou OpenBaoBon rapport puissance/complexité
Plateforme interne multi-équipesVault Enterprise ou OpenBaoNamespaces, isolation
Kubernetes-firstExternal Secrets + (Vault ou OpenBao)Intégration native
PKI interne / mTLSVault CE ou OpenBaoEngine PKI complet
Chiffrement applicatifVault TransitKeys never leave Vault
Compliance stricteVault EnterpriseMFA, Sentinel, Control Groups
Open source pur requisOpenBaoLicence MPL 2.0
  1. Vault est puissant mais exigeant : évaluez si vous avez les ressources pour l’opérer
  2. Vault CE couvre 80% des besoins : KV, Transit, PKI, Database, SSH, auth methods
  3. Enterprise pour namespaces, réplication, MFA : si vous êtes une plateforme multi-tenant
  4. Licence BSL : usage interne OK, offre concurrente interdite
  5. OpenBao : alternative open source avec namespaces inclus, écosystème en croissance
  6. Auto-unseal : configurez-le en production pour éviter les interventions manuelles
  7. Identity system : permet de consolider les identités multi-auth methods

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn