Vault HashiCorp : guide complet d’installation, configuration et intégration Kubernetes
Vault centralise le stockage, l’accès et la rotation de vos secrets.
- Secrets dynamiques à durée de vie limitée (TTL).
- Contrôle d’accès granulaire avec audit complet.
- Vault Secret Operator pour l’intégration Kubernetes.
- Redémarrage auto des déploiements à chaque rotation.
- Couverture de 90% des besoins avec l’édition CE.
- Synchro automatique via VaultConnection et VaultAuth.
Qu’est-ce que Vault et à quoi sert-il ?
Vault est un coffre-fort centralisant le stockage, l’accès et la rotation de vos secrets : mots de passe, clés API, certificats. Il protège ces données par un chiffrement fort, un contrôle d’accès granulaire et un audit complet de chaque opération. Pertinent pour sécuriser des credentials de bases de données, cloud ou SSH à la demande, il excelle avec des secrets dynamiques à durée de vie limitée (TTL).
L’édition Community (CE) couvre 90% des besoins courants grâce à ses engines clés : KV, Transit, PKI, Database et SSH. En revanche, l’outil se révèle surdimensionné pour les équipes de moins de 10 personnes aux besoins simples en CI/CD. Depuis août 2023, Vault est distribué sous licence BSL 1.1 : son code est source-available mais plus open source au sens OSI, un changement qui a poussé la communauté vers des alternatives.
Intégration de Vault avec Kubernetes

L’intégration de Vault dans un cluster Kubernetes repose sur le Vault Secret Operator, un composant qui automatise la récupération et la synchronisation des secrets. Cet opérateur surveille les objets Kubernetes et injecte les données directement depuis Vault, sans intervention manuelle. Concrètement, lorsque votre projet est déployé, deux objets sont auto-créés : une VaultConnection (qui définit l’adresse du serveur Vault) et une VaultAuth (qui gère l’authentification).
Le Vault Secret Operator : automatiser la récupération des secrets
Pour récupérer un secret, vous créez un objet VaultStaticSecret qui référence le chemin du secret dans Vault. L’opérateur se charge du reste : il lit la valeur, la stocke dans un Secret Kubernetes standard, puis la rafraîchit automatiquement selon l’intervalle défini. Mieux encore, lorsqu’un secret est mis à jour côté Vault, l’opérateur peut redémarrer automatiquement vos déploiements, daemonsets ou statefulsets pour que les pods repartent avec les nouvelles valeurs. Cette mécanique est cruciale quand on dépasse le seuil des 50 microservices : au-delà, gérer des secrets à la main devient tout simplement ingérable.
Cette approche élimine le besoin de scripts maison ou de pipelines complexes. L’opérateur agit comme un pont fiable entre Vault et votre cluster, et les exemples de mise en œuvre sont disponibles dans un dépôt GitHub dédié. Le déploiement se fait via Helm ou des manifests YAML, et la configuration initiale se résume à quelques commandes kubectl apply. Une fois en place, la rotation des secrets devient un processus transparent : vous mettez à jour la valeur dans Vault, et l’opérateur propage le changement sans que vos équipes aient à intervenir, à l’image des modèles de reranking qui affinent les candidats d’un retriever.
Guide d’installation et configuration de Vault
Installation de Vault en ligne de commande
L’installation de Vault se fait en quelques commandes, quel que soit votre système d’exploitation. La méthode recommandée par HashiCorp reste le téléchargement du binaire officiel depuis le site de l’éditeur, car il est signé et garantit l’intégrité du logiciel.
- Télécharger le binaire : récupérez l’archive zip adaptée à votre OS (Linux, macOS, Windows) sur le site officiel de HashiCorp.
- Installer via package manager : utilisez Homebrew sur macOS (
brew install vault) ou apt sur Debian/Ubuntu avec le dépôt officiel HashiCorp. - Vérifier l’installation : exécutez
vault versionpour confirmer que le binaire est correctement installé et opérationnel. - Démarrer le serveur de développement : lancez
vault server -devpour obtenir un coffre local pré-configuré avec une clé d’accès root exposée directement dans le terminal.
Configuration de l’accès et création d’un coffre
Une fois Vault démarré en mode développement, l’accès à l’interface web se fait via la tuile Vault dans la page des services externes. Pour vous authentifier dans la WebUI, cliquez sur « Sign in with OIDC provider » : cette méthode d’authentification unique évite de manipuler un token root en clair dans votre navigateur.
Après l’authentification, récupérez votre token CLI depuis le menu « Personne » de l’interface. Ce jeton vous permettra d’authentifier toutes vos commandes en ligne de commande. Pour une organisation claire, nommez vos coffres selon la convention <organisation>-<nom du projet> et créez un coffre de type clé-valeur, appelé kv-v1 dans la nomenclature HashiCorp. Ce format simple stocke des paires clé/valeur chiffrées et convient parfaitement pour débuter.
Le mode -dev ne doit servir qu’à tester. En production, la configuration passe par un fichier .hcl avec le backend de stockage (Consul, Raft, etc.) et les paramètres de déscellage. Le passage à un environnement réel implique aussi la gestion du scellement : Vault démarre scellé et refuse toute opération tant que les parts de clé maître ne sont pas réunies une clé divisée en N parts dont M sont nécessaires pour déverrouiller le coffre.
Gestion des secrets : statiques et dynamiques
| Type de secret | Exemples d’engines | Cas d’usage | Niveau d’effort |
|---|---|---|---|
| Statique | KV v2, Transit | Clés API tierces, mots de passe fixes | Faible dépôt et lecture |
| Dynamique | Database, SSH, PKI | Credentials temporaires avec TTL | Élevé configuration du moteur |
Les secrets statiques sont des valeurs déposées dans le coffre, conservées chiffrées au repos. L’engine KV v2 correspond à la plupart des besoins simples : clés API de fournisseurs tiers, identifiants d’applications internes. Cette approche reste pertinente pour des accès à longue durée de vie. Elle couvre environ 90% des besoins courants d’une équipe qui débute avec Vault.
Le vrai changement d’échelle arrive avec les secrets dynamiques. Au lieu de stocker une valeur permanente, Vault génère des credentials à la demande, avec une durée de vie limitée (TTL). L’engine Database crée un utilisateur SQL éphémère ; l’engine PKI délivre des certificats courts ; l’engine SSH produit des clés d’accès ponctuelles. Ce mécanisme élimine la rotation manuelle et réduit drastiquement le risque de fuite.
Le passage du statique au dynamique constitue le vrai gain de Vault. Une fois les engines configurés, l’application consomme un secret via une seule API, sans connaître la valeur sous-jacente. L’accès aux clés de chiffrement reste à 0 pour l’application : elle ne manipule jamais les matériaux sensibles en clair. Les politiques s’appliquent automatiquement à chaque génération de secret, ce qui rend la gestion granulaire et auditable.
Pour choisir entre statique et dynamique, posez-vous une question simple : la valeur doit-elle exister en permanence ? Si la réponse est non, préférez un engine dynamique. Vault propose environ 30 engines secrets couvrant les besoins en bases de données, infrastructure cloud et identités. Commencez par du KV v2, puis migrez progressivement vos workloads vers les engines dynamiques.
Authentification et gestion des identités
Authentification machine et humaine
La gestion des identités dans Vault repose sur une distinction fondamentale entre les machines et les humains. Pour les premiers, les méthodes d’authentification dites « cloud » permettent de lier automatiquement une instance à ses droits. Votre instance AWS, Azure ou GCP reçoit alors un token Vault temporaire basé sur son identité cloud, sans intervention manuelle.
- AppRole pour machines : deux identifiants distincts, role_id et secret_id
- ServiceAccount pod : authentification Kubernetes native par jeton
- Identité instance cloud : AWS, Azure, GCP lient l’instance à ses droits
- Userpass, OIDC, LDAP : méthodes dédiées aux humains avec SSO
Pour les humains, les méthodes varient selon le contexte. Un SSO d’entreprise via OIDC ou LDAP permet aux employés de se connecter via leur compte habituel. En local, la méthode userpass crée des utilisateurs et mots de passe directement dans Vault. Les tokens manuels restent possibles mais deviennent rapidement ingérables dès que le nombre de microservices dépasse 50.
Identity : consolider les identités et les permissions
Le système Identity de Vault résout un casse-tête courant : une même personne peut se connecter via plusieurs méthodes (OIDC, LDAP, userpass). Vault crée alors une entity unique, un alias pour chaque méthode d’authentification, et des groupes pour regrouper les permissions. Cette consolidation centralise les politiques d’accès en un seul endroit.
Concrètement, une entity associée à un groupe simplifie la gestion des politiques : plutôt que d’attribuer des droits à chaque token individuel, vous définissez des policies sur les groupes. Cela permet de revoir l’accès d’un employé en un seul clic, quelles que soient les méthodes utilisées. Le bénéfice est double : sécurité renforcée et administration simplifiée à mesure que l’infrastructure grandit.
Architecture, stockage et déscellage de Vault
L’architecture de Vault repose sur quatre composants principaux qui s’articulent autour d’une barrière de chiffrement. Le flux d’accès est simple : une méthode d’authentification délivre un token, celui-ci est confronté aux policies, puis l’utilisateur peut accéder au secret. Ce mécanisme garantit un contrôle granulaire et une traçabilité complète de chaque opération.
Au démarrage, Vault est scellé (sealed) et refuse toute opération. Pour le déverrouiller, la clé maître est divisée en N parts, et M parts sont nécessaires pour reconstituer la clé. Cette technique de partage, appelée unsealing, évite qu’une seule personne ne détienne le contrôle total du coffre. Pour les environnements exigeants, l’auto-unseal délègue cette tâche à des services comme AWS KMS, Azure Key Vault ou GCP Cloud KMS, tandis que l’édition Enterprise peut s’appuyer sur un Hardware Security Module (HSM).
Comparaison de Vault avec les alternatives : KMS, OpenBao, Infisical, Doppler
| Solution | Licence | Forces principales | Cas d’usage recommandé |
|---|---|---|---|
| Vault CE | BSL 1.1 (source-available) | 30 engines secrets, écosystème mature | Infrastructure complexe, secrets dynamiques |
| OpenBao | MPL 2.0 (OSI) | Fork de Vault, gouvernance Linux Foundation | Besoin de licence open source stricte |
| AWS Secrets Manager | Propriétaire | Rotation gérée, intégration AWS native | Secrets CI/CD simples dans AWS |
| Infisical | Open source (MIT) | Simple à déployer, interface soignée | Équipes sans expertise Vault |
| Doppler | Propriétaire SaaS | Sync multi-environnements immédiate | Startups, synchronisation config |
Le choix entre ces outils dépend surtout de votre contexte. Vault CE couvre déjà 90 % des besoins courants avec ses engines KV, Transit, PKI et Database il reste la référence pour les secrets dynamiques et l’intégration Kubernetes poussée. Si la licence vous freine, OpenBao, issu du fork de Vault en 2023 après le passage à BSL 1.1, offre une compatibilité quasi totale sous licence MPL 2.0 approuvée OSI.
Pour des besoins plus simples, ne surdimensionnez pas : AWS Secrets Manager convient aux secrets CI/CD basiques, tandis qu’Infisical et Doppler séduisent par leur rapidité de mise en place. Retenez le seuil pratique : en dessous de 50 microservices, la gestion manuelle des secrets reste envisageable ; au-delà, l’automatisation de Vault devient indispensable. Enfin, pour les équipes de moins de 10 personnes, privilégiez une alternative légère Vault y serait un outil disproportionné.
Cette gestion rigoureuse des accès et des secrets s’apparente à la précision requise dans les architectures de RAG avancé, où la pertinence des données récupérées conditionne la qualité des réponses générées.
