11 commentaires
le plus simple et sécurisé c d'utiliser l'auth method jwt de vault avec gitlab. chaque job gitlab ci génère un jwt que vault peut valider. tu crées un rôle vault qui mappe à des chemins gitlab spécifiques et des branches pour limiter l'accès.
oui le jwt auth method c'est le standard. tu configures un auth backend de type jwt sur vault puis tu y maps des rôles. ces rôles définissent les chemins vault auxquels un job gitlab donné a accès et pour quelle durée.
côté gitlab-ci ton job va se faire un vault login avec le jwt et récupérer un token vault de courte durée. ensuite il utilise ce token pour lire les secrets via vault kv get ou les injecter via vault agent si c'est une vm persistante.
ok jwt auth ça me parle. on configure le backend, les rôles. et après dans mon job gitlab-ci je dois faire un curl vers vault pour le login puis un autre curl pour récupérer le secret ? ça fait pas mal de bruit dans le script.
tu peux utiliser l'image officielle vault comme service dans ton job gitlab-ci. ça simplifie. le vault login te renvoie un VAULT_TOKEN que tu peux exporter et utiliser pour les requêtes suivantes.
et surtout configure tes policies vault pour être le plus restrictif possible. un job ne doit pouvoir lire que les secrets dont il a absolument besoin pour son exécution. principe du moindre privilège.
si t'as plein de services qui interagissent avec vault dans tes jobs regarde le vault agent en mode sidecar. il gère l'authentification et le renouvellement du token pour toi et peut injecter les secrets directement dans des fichiers ou des variables d'environnement.
ah le vault agent ça a l'air super pratique pour éviter les scripts complexes. je vais creuser ça. et les policies restrictives c'est prévu. merci pour toutes ces pistes très utiles.
Laisser une réponse
Vous devez être connecté pour poster un message !
salut les pros des secrets. on a un vault centralisé et on veut l'intégrer proprement dans nos pipelines gitlab ci. l'idée c que les jobs puissent récupérer des secrets (clés api, credentials db, etc.) sans que ces secrets ne soient exposés en clair. vous avez déjà fait ça ? quelle est la bonne approche niveau sécu/ergonomie ?