Installer vault server avec docker compose et backend de stockage bucket gcp
Installer vault server avec docker compose et backend de stockage gcp bucket:
-
- Docker compose avec backend de stockage gcp bucket
- Dans cet article, une installation plus simple
Pré-requis
-
Bucket gcp avec son fichier d'acces:
- bucket gcp
- Service account qui a les droits d'accès au bucket en lecture/ ecriture
- Recuperer le fichier d'acces json du service account
-
Service Account et clés JSON :
- Créez un compte de service (Service Account) avec le rôle Storage Admin.
- Téléchargez la clé JSON pour le compte de service et placez-la sur votre machine.
-
Docker et Docker Compose :
- Installez Docker et Docker Compose sur une vm.
-
Ports ouverts :
- Assurez-vous que le port 8200 est accessible pour communiquer avec Vault.
Configuration de Vault
Créez une arborescence dédiée au déploiement :
mkdir -p /opt/vault/{config,data,logs}
cd /opt/vault
- Fichier de configuration config/vault.hcl :
- Copier la key json du service account gcp dans : valult/config/gcp-credentials.json
Utilisez un backend de stockage sécurisé, comme gcp bucket.
storage "gcs" {
bucket = "bc-vault-dev"
credentials_file = "/vault/config/gcp-credentials.json"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = "true"
}
default_lease_ttl = "168h"
max_lease_ttl = "0h"
api_addr = "http://vault:8200"
cluster_addr = "http://vault:8201"
ui = true
disable_mlock = true
- Explication :
- storage : gcp bucket garantit la persistance des données.
- listener : Assurez un accès HTTP uniquement.
- ui : Activez l'interface utilisateur.
- disable_mlock : Désactivez mlock dans les conteneurs (nécessaire avec Docker).
- Fichier Docker Compose
Créez le fichier docker-compose.yml :
######## gcp bucket ################
services:
vault:
image: hashicorp/vault:1.18
container_name: vault
restart: always
volumes:
- ./vault/data:/vault/data
- ./vault/logs:/vault/logs
- ./vault/config:/vault/config
ports:
- "8200:8200"
environment:
GOOGLE_APPLICATION_CREDENTIALS: ./vault/config/gcp-credentials.json
VAULT_API_ADDR: "http://vault:8200"
VAULT_ADDRESS: "http://vault:8200"
VAULT_ADDR: "http://vault:8200"
networks:
- vault-network
cap_add:
- IPC_LOCK
command: vault server -config=/vault/config/vault.hcl
networks:
vault-network:
driver: bridge
- Explication :
- Vault :
- Définit un backend de stockage gcp bucket.
- Mappe les volumes pour la persistance et la configuration.
- Utilise cap_add: IPC_LOCK pour empêcher les données sensibles d'être swapées.
- Réseau : Isolé dans un réseau bridge dédié.
- Vault :
- Lancer le déploiement
Démarrez les conteneurs :
docker compose up -d
docker compose ps
docker logs vault

- Initialiser et configurer Vault: docker exec -it vault vault operator init
Copiez et sauvegardez en lieu sûr les clés de déchiffrement et le root token. Vous aurez besoin à chaque redemarage.
docker exec -it vault sh
# executer ensuite
vault operator init

Unseal Key 1: X0bF1PGbDliO+Dc8vCP+t79LlQBrrfnmFyeLOWgrmjgo
Unseal Key 2: PnbDLXb6+0Bm10PNE37u9NrDzvTK/u1zTUZQwTeuP8o/
Unseal Key 3: FvaUs8hM8YSjU1hoNrlS5ZEoD0mz4v8vcQDwUwvJTbPy
Unseal Key 4: 1nlx/yH5Kec8r0KxFyQFVD1p5/26dtG1wZa+HPoldfnH
Unseal Key 5: BmV//TiSiLa7AJ5uRD8hhCoP7uvBBIHojceKa48ddCiH
Initial Root Token: hvs.4qexrbKtaVPeaojh0ICaGld7
- Activer audit logs
vault login <ROOT_TOKEN>
vault audit enable file file_path=/vault/logs/audit.log
ls -lh /vault/logs/audit.log
vault status
sleep 10
ls -lh /vault/logs/audit.log
- Acceder à l'url : http://vault_srv_ip:82000/ et renseigner 3 des Unseal key

- Après la validation de la 3ième unseal key, cette page va s'ouvrir pour l'authent avec le root key. Renseigner la root key pour acceder à l'UI de vault.

- On vois bien que le storage type est gcp

Cette authent avec token nous permet de configurer la methode d'authent. Vault supporte username & password, OIDC, LDAP, Github...
On peut par exemple activer le username & password. Depuis le menu : Access > enable new method > Username & password > enable

Une fois activer, on peut revenir sur l'authent methods pour créer un user. username: admin-vault, password: AKsKQGB1WV7588!
Il faut mettre un password fort. Une fois créé, on peut l'utiliser pour se connecter.

On peut acceder à gcp portal pour voir:

Activation de key vault
- Depuis le menu > Secrets Engins > Enable new engine


- Clic sur kv > renseigner un nom par exemple vault-with-azure-blob > clic sur Enable engine

- Clic sur new secret pour ajouter un secret


Commentaires
Aucun commentaire pour le moment.
