Stockage de secrets HashiCorp Vault
Semaphore UI prend en charge HashiCorp Vault comme stockage pour les secrets.

Vous pouvez renseigner les options suivantes :
- URL de HashiCorp Vault — adresse de votre serveur Vault.
- Mount — chemin de montage du moteur de secrets.
- Token — token d'authentification. Le token peut être :
-
Stocké dans la base de données.
-
Fourni via une variable d'environnement.
-
Fourni via un fichier (utile avec Vault Agent).
attentionLorsque le token provient d'un fichier, ce fichier doit se trouver dans le répertoire des secrets utilisé par Semaphore. Configurez ce répertoire avec
dirs.secretsou la variable d'environnementSEMAPHORE_SECRETS_PATH. L'ancienne option de premier niveausecrets_pathreste acceptée pour les configurations plus anciennes. Si aucune n'est définie, la valeur par défaut est/tmp/semaphore. Consultez Répertoire des secrets pour les détails sur l'ordre de priorité.Exemple de fragment de
config.json:{
"dirs": {
"secrets": "/root/path/for/secrets"
}
}
-
Le stockage peut fonctionner en mode lecture seule.
Utilisation
- Configurez la connexion à HashiCorp Vault dans les paramètres de Semaphore (URL, chemin de montage et token).
- Lors de la création ou de la modification d'une clé dans le magasin de clés, sélectionnez HashiCorp Vault comme type de stockage.
- Indiquez le chemin du secret dans Vault où l'identifiant doit être stocké.

HashiCorp Vault Agent
Au lieu de stocker directement le token Vault, vous pouvez utiliser HashiCorp Vault Agent pour gérer automatiquement la récupération et le renouvellement du token.
Vault Agent s'exécute en tant que processus sidecar aux côtés de Semaphore et écrit un token valide dans un fichier sur le disque. Semaphore lit ensuite le token depuis ce fichier.
Pour le mettre en place :
-
Configurez et lancez Vault Agent avec une méthode auto-auth appropriée (par exemple AppRole, Kubernetes, AWS IAM).
-
Configurez Vault Agent pour écrire le token dans un fichier à l'aide d'un bloc
sink, par exemple :auto_auth {
method {
type = "approle"
config = {
role_id_file_path = "/etc/vault/role-id"
secret_id_file_path = "/etc/vault/secret-id"
}
}
sink {
type = "file"
config = {
path = "/etc/vault/token"
}
}
} -
Dans Semaphore, lors de la configuration de la connexion à HashiCorp Vault, sélectionnez Fichier comme source du token et indiquez le chemin du fichier de token (par exemple
/etc/vault/token).
Cette approche évite les tokens statiques de longue durée et laisse Vault Agent gérer automatiquement l'authentification et le renouvellement du token.
Groupes de variables
HashiCorp Vault peut également servir de stockage pour les groupes de variables. Lors de la modification d'un groupe de variables, sélectionnez HashiCorp Vault comme type de stockage et indiquez le chemin du dossier dans lequel les secrets seront stockés.
