HashiCorp Vault est un outil de gestion des secrets qui permet de stocker, de gérer et de sécuriser les informations sensibles telles que les mots de passe, les clés API, les certificats, et d'autres types de secrets. Vault offre des fonctionnalités avancées pour le chiffrement, la gestion des accès, et l'audit des secrets. Il est particulièrement utile pour les équipes DevOps et de sécurité qui souhaitent centraliser et sécuriser la gestion des secrets.
Présentation de HashiCorp Vault
Qu'est-ce que HashiCorp Vault ?
HashiCorp Vault est un outil de gestion des secrets qui vous permet de :
- Stocker des secrets : Stocker des informations sensibles de manière sécurisée.
- Gérer les accès : Contrôler l'accès aux secrets avec des politiques et des rôles.
- Chiffrer les données : Chiffrer les secrets en transit et au repos.
- Auditer les accès : Suivre et auditer l'accès aux secrets.
- Automatiser la gestion des secrets : Intégrer Vault dans les pipelines CI/CD et les scripts d'automatisation.
Installation de HashiCorp Vault
Pour installer HashiCorp Vault, vous pouvez suivre les instructions spécifiques à votre système d'exploitation. Voici un exemple d'installation sur un système Linux :
Installation sur Linux
- Télécharger Vault :
wget https://releases.hashicorp.com/vault/1.9.2/vault_1.9.2_linux_amd64.zip
- Décompresser l'archive :
unzip vault_1.9.2_linux_amd64.zip
- Déplacer le binaire Vault dans un répertoire accessible :
sudo mv vault /usr/local/bin/
- Vérifier l'installation :
vault --version
Exemples de Ligne de Commande
Voici quelques exemples de commandes avancées pour utiliser HashiCorp Vault.
Démarrer Vault en Mode Développement
Pour démarrer Vault en mode développement (non sécurisé, pour les tests) :
vault server -dev
Initialiser Vault
Pour initialiser Vault et générer les clés de déverrouillage et le jeton racine :
vault operator init
Déverrouiller Vault
Pour déverrouiller Vault avec les clés de déverrouillage :
vault operator unseal
Se Connecter à Vault
Pour se connecter à Vault avec le jeton racine ou un jeton d'accès :
export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN='hvs.CAESIG5ORH3KV5555555555555555555555555555555555Gh4b'
Créer un Secret
Pour créer un secret dans Vault :
vault kv put secret/my-secret value=my-secret-value
Lire un Secret
Pour lire un secret dans Vault :
vault kv get secret/my-secret
Créer une Politique
Pour créer une politique d'accès dans Vault :
vault policy write my-policy my-policy.hcl
Le fichier my-policy.hcl
pourrait ressembler à ceci :
path "secret/my-secret" { capabilities = ["read"] }
Associer une Politique à un Jeton
Pour associer une politique à un jeton d'accès :
vault token create -policy="my-policy"
Activer un Moteur de Secrets
Pour activer un moteur de secrets (par exemple, le moteur kv
pour les clés-valeurs) :
vault secrets enable -path=secret kv
Désactiver un Moteur de Secrets
Pour désactiver un moteur de secrets :
vault secrets disable secret/
Intégrer Vault dans un Pipeline CI/CD
Pour intégrer Vault dans un pipeline CI/CD, vous pouvez ajouter une étape de récupération des secrets dans votre fichier de configuration CI/CD. Par exemple, pour GitHub Actions, vous pouvez ajouter une étape comme suit :
name: Vault Secrets Retrieval on: [push, pull_request] jobs: vault: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Vault run: | wget https://releases.hashicorp.com/vault/1.9.2/vault_1.9.2_linux_amd64.zip unzip vault_1.9.2_linux_amd64.zip sudo mv vault /usr/local/bin/ - name: Retrieve Secrets from Vault env: VAULT_ADDR: ${{ secrets.VAULT_ADDR }} VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }} run: | vault kv get -field=value secret/my-secret
Conclusion
HashiCorp Vault est un outil puissant pour la gestion des secrets, offrant des fonctionnalités avancées pour le chiffrement, la gestion des accès, et l'audit des secrets. En utilisant Vault, vous pouvez centraliser et sécuriser la gestion des secrets dans votre organisation. Ces exemples de commandes et de configurations vous donnent un bon point de départ pour commencer à utiliser HashiCorp Vault.