HashiCorp Vault est une solution de gestion de secrets robuste. Ce guide explique comment créer un cluster Vault en haute disponibilité, configuré pour auto-unseal via AWS KMS et utilisant Consul comme backend de stockage.
Prérequis
- Trois nœuds Linux (Debian/Ubuntu ou RHEL/CentOS)
- AWS KMS key and IAM permissions
- Cluster Consul existant ou en provision
1. Installer Vault et Consul
Sur chaque nœud :
sudo apt update
sudo apt install -y vault consul
2. Configuration de Consul Backend
Éditez /etc/vault.d/storage-consul.hcl
:
storage "consul" {
address = "127.0.0.1:8500"
path = "vault/"
}
3. Configuration de l'unseal automatique (AWS KMS)
Créez /etc/vault.d/unseal-aws.hcl
:
seal "awskms" {
region = "us-east-1"
kms_key_id = "arn:aws:kms:us-east-1:123456789012:key/abcd-efgh-ijkl"
}
Assurez-vous que la VM possède un rôle IAM avec kms:Decrypt
.
4. Fichier de configuration Vault principal
/etc/vault.d/vault.hcl
:
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
api_addr = "https://vault.example.com:8200"
cluster_addr = "https://vault.example.com:8201"
ha_enabled = true
5. Démarrage et auto-unseal
Activez et lancez Vault sur chaque nœud :
sudo systemctl enable vault
sudo systemctl start vault
Le processus se déverrouille automatiquement via AWS KMS.
6. Initialisation et déverrouillage
Initialisez sur le premier nœud :
vault operator init -key-shares=5 -key-threshold=3
Les nœuds suivants se joignent automatiquement.
7. Vérification du cluster
vault status
Vous devriez voir HA Enabled true
et un seul leader.
8. Considérations de sécurité
- Restreindre accès réseau sur ports Vault
- Activer TLS en production
- Surveiller les logs via Consul/Prometheus exporter
Conclusion
Ce cluster Vault en haute disponibilité avec auto-unseal simplifie la gestion des secrets tout en garantissant sécurité et résilience.