HashiCorp Vault est un outil permettant la gestion sécurisée des secrets, des tokens d'authentification et du chiffrement des données sensibles.
HashiCorp Vault est un outil open-source de gestion des secrets et de protection des données sensibles. Il permet de stocker, gérer et contrôler l'accès aux identifiants, clés API, certificats et autres secrets critiques.
Vault utilise des moteurs de secrets pour stocker et générer dynamiquement des secrets.
Vault utilise des méthodes d'authentification (Token, LDAP, AWS, GitHub) et des politiques pour contrôler l'accès aux secrets.
Vault fournit un service de chiffrement pour protéger les données sensibles sans les stocker.
Vault peut générer des secrets temporaires pour les bases de données, AWS, etc.
Toutes les interactions avec Vault sont enregistrées pour assurer la traçabilité.
wget https://releases.hashicorp.com/vault/1.12.0/vault_1.12.0_linux_amd64.zip unzip vault_1.12.0_linux_amd64.zip sudo mv vault /usr/local/bin/
docker run -d --name=vault -e 'VAULT_DEV_ROOT_TOKEN_ID=root' -p 8200:8200 vault
vault operator init
Cette commande génère des clés de récupération et un token root.
vault operator unseal
Il faut fournir au moins trois clés de récupération pour déverrouiller Vault.
export VAULT_ADDR='http://127.0.0.1:8200' vault login root
vault kv put secret/api key=1234567890abcdef
vault kv get secret/api
vault kv delete secret/api
path "secret/*" { capabilities = ["read", "list"] }
Ajoutez cette politique avec :
vault policy write read-secrets read-secrets.hcl
vault token create -policy=read-secrets
vault secrets enable database vault write database/config/mydb \ plugin_name=mysql-database-plugin \ connection_url="{{username}}:{{password}}@tcp(127.0.0.1:3306)/" \ allowed_roles="readonly"
vault read database/creds/readonly
vault secrets enable transit
vault write -f transit/keys/my-key
vault write transit/encrypt/my-key plaintext=$(echo -n "secret data" | base64)
vault write transit/decrypt/my-key ciphertext=<texte_chiffré>
storage "consul" { address = "127.0.0.1:8500" path = "vault/" }
vault server -config=/etc/vault/config.hcl
Vault peut être utilisé pour injecter des secrets dans les pods Kubernetes.
helm install vault hashicorp/vault
apiVersion: v1 kind: Secret metadata: name: vault-secret type: Opaque data: password: c2VjcmV0
Vault est un outil puissant pour gérer les secrets et sécuriser les données sensibles. Son intégration avec des outils comme Kubernetes, Consul et AWS en fait un choix idéal pour la gestion centralisée des secrets en entreprise.