3 minutes
Installation de Vault sous Debian
HashiCorp Vault est un outil de gestion des secrets qui est très complet et offre un très bon niveau de sécurité.
C’est un des outils majeurs du monde Devops car il permet d’automatiser le stockage et l’appel des secrets.
Dans cet article, nous allons voir l’installation de Vault sur une Debian, en utilisant le stockage intégré pour simplifier la configuration.
Installation
Commencez par mettre à jour votre système pour vous assurer que tous les paquets installés sont à jour :
sudo apt update
sudo apt upgrade -y
Ajoutez le dépôt Hashicorp à APT et installez le package Vault :
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install -y vault
Vérifiez que l’installation a réussi :
vault -version
Vault v1.18.3 ...
Configuration
Répertoires par défaut sous Debian
L’installation a créé :
- Un répertoire de configuration :
/etc/vault.d
- Un fichier de configuration par défaut :
/etc/vault.d/vault.hcl
- Un répertoire de stockage des données :
/opt/vault
- Un certificat autosigné et sa clé privée :
/opt/vault/tls/tls.crt
et/opt/vault/tls/tls.key
Stockage intégré
Vault propose deux catégories de stockage : intégré ou externe.
Depuis la version 1.4, Vault recommande plutôt le stockage intégré (Raft). Avant cela le stockage externe était la solution préférée, notamment avec Consul.
Avec le stockage intégré, chaque noeud du cluster Vault stocke ses données en local dans le système de fichiers et les données sont distribuées entre les noeuds par un port dédié.
Une première configuration
Voici une première configuration possible pour activer l’API, l’interface Web et le cluster si le but est de mettre le vault en cluster.
Remplacez W.X.Y.Z par votre adresse IP
ui = true
api_addr = "https://W.X.Y.Z:8200"
cluster_addr = "https://W.X.Y.Z:8201"
disable_mlock = true
storage "raft" {
path = "/opt/vault/data"
}
listener "tcp" {
address = "W.X.Y.Z:8200"
tls_cert_file = "/opt/vault/tls/tls.crt"
tls_key_file = "/opt/vault/tls/tls.key"
}
listener "tcp" {
address = "W.X.Y.Z:8201"
tls_cert_file = "/opt/vault/tls/tls.crt"
tls_key_file = "/opt/vault/tls/tls.key"
}
Redémarrez Vault et vérifiez qu’il est bien actif :
sudo systemctl restart vault.service
sudo systemctl status vault.service
Pour vous faciliter la vie, vous pouvez ajouter ces variables d’environnement (la deuxième, uniquement tant que vous n’avez pas de vrai certificat signé) :
export VAULT_ADDR="https://W.X.Y.Z:8200"
export VAULT_SKIP_VERIFY="true"
export VAULT_TOKEN="hvs.wPXLqwsDmxne4kX8Q52Nb6ph"
Initialisation
A la première utilisation, vous devez générer les clés de déscellement ainsi que le jeton de l’utilisateur root.
Le certificat étant auto signé (utiliser un vrai certificat en production), cette opération sera faite sans vérification TLS.
VAULT_SKIP_VERIFY=true vault operator init
Tout ceci est à garder bien au chaud.
Désceller Vault
Vous pouvez maintenant accéder à Vault via la Web UI ou l’API.
Il faudra désceller le Vault pour y accéder en collant au moins 3 clés de déscellement :
- En Web UI, c’est demandé à la première connexion.
- En CLI :
vault operator unseal
Si vous avez un HSM à disposition, vous pouvez utiliser la fonctionnalité d’auto unseal.
Conclusion
Vous avez maintenant un Vault HashiCorp installé avec un stockage intégré.
Nous verrons dans un prochain article comment monter un cluster puis comment utiliser Vault.