Vault token expiration trop rapide en CI/CD

Posté par noel93 le 16/02/2025
RÉSOLU

noel93

Membre depuis le 26/12/2020

salut tout le monde ! on utilise vault pour récupérer des secrets dans nos pipelines ci/cd. le problème c'est que nos tokens vault expirent trop vite (genre 5 min) et nos jobs qui durent plus longtemps se retrouvent sans accès aux secrets. j'ai bien mis une ttl plus longue sur le role mais ça ne semble pas prendre. c'est pour un role jwt/oidc configuré avec github actions

# extrait de la config du role vault
path "auth/jwt/role/github-action-role" {
  ...
  ttl = "30m"
  max_ttl = "1h"
  ...
}

une idée de ce que je loupe ? c'est mega relou de relancer les jobs

Commentaires

oceane-lebon

Membre depuis le 21/07/2024

hello le ttl et max_ttl sur le role définissent la durée de vie *maximale* que tu peux demander. mais le token que tu obtiens a aussi sa propre durée de vie définie par l'auth method elle-même ou la policy du token. tu as checké la policy attachée au token ?

noel93

Membre depuis le 26/12/2020

ouais j'ai checké la policy elle a pas de ttl spécifique. c'est la policy de base pour ce role avec des permissions pour des chemins secrets. je comprends pas pourquoi ça override mon ttl de 30m

suzanne-fischer

Membre depuis le 29/03/2019

y'a aussi le lease duration par défaut de vault lui-même qui peut override tout ça. check le vault read sys/config/lease. et assure-toi que tes pipelines demandent bien un token avec un ttl spécifique lors de l'authentification si c'est supporté par github actions et ton auth method

oceane-lebon

Membre depuis le 21/07/2024

et ton jwt_exp_leeway est comment ? si t'as une grosse asymétrie d'horloge entre ton github runner et vault ça peut jouer sur la validité du token

aime53

Membre depuis le 06/06/2019

si c'est un token issu d'une auth method, la durée de vie finale c'est le MIN entre le ttl du role, le ttl de la policy, la ttl de l'auth method mount, et le system default lease. c'est souvent le system default lease qui surprend. regarde aussi si t'as pas des `renewable = false` quelque part sur la policy ou le role

noel93

Membre depuis le 26/12/2020

okay le sys/config/lease j'ai 30 jours pour le default lease donc pas ça. pas de `renewable = false`. je vais regarder du côté de l'auth method mount. comment je check le ttl spécifique de la mount `auth/jwt` ?

suzanne-fischer

Membre depuis le 29/03/2019

vault read sys/mounts/auth/jwt/tune ça te donnera les `default_lease_ttl` et `max_lease_ttl` pour cette mount spécifique. c souvent là qu'est le coupable quand le role ttl ne semble pas fonctionner

noel93

Membre depuis le 26/12/2020

YES ! default_lease_ttl sur la mount était à 5m. je l'ai mis à 30m et ça roule nickel maintenant. purée fallait le trouver. merci les gars c'était bien ça !

oceane-lebon

Membre depuis le 21/07/2024

top ! content que ça aide. les ttls dans vault c'est un peu un labyrinthe au début haha

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire