Membre depuis le 26/03/2019
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.
Membre depuis le 25/03/2019
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.
Membre depuis le 22/07/2019
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.
Membre depuis le 26/03/2019
pour les secrets dynamiques c'est encore mieux. par exemple pour une db tu peux créer un rôle qui donne des creds temporaires. comme ça même si le secret est leaké il expire vite.
Membre depuis le 19/06/2019
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.
Membre depuis le 25/03/2019
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.
Membre depuis le 22/07/2019
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.
Membre depuis le 26/03/2019
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.
Membre depuis le 19/06/2019
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.
Membre depuis le 26/03/2019
pas de soucis. hésite pas si t'as des questions plus spécifiques quand tu vas mettre les mains dedans. c'est un peu de config au début mais après c'est super robuste.
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
chevalier-matthieu
Membre depuis le 19/06/2019
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 ?