Vault auto-unseal avec GCP KMS des clés perdues au reboot

xjacquot 11/08/2024
RÉSOLU
xjacquot
Auteur Actif
Avatar de xjacquot
xjacquot
Auteur Actif

salut la team

j'ai un souci avec mon vault sur GKE, on a configuré l'auto-unseal via GCP KMS nickel ça marche. mais quand on reboot le cluster ou les nodes, le vault démarre sealed et il arrive pas à récupérer les clés de déchiffrement depuis KMS. il me dit qu'il trouve pas les clés alors que le service account a bien les permissions. obligé de le unseal à la main à chaque fois, relou en prod.


seal "gcpckms" {
  project     = "mon-projet-gcp"
  region      = "europe-west1"
  key_ring    = "vault-keyring"
  crypto_key  = "vault-key"
}

une idée de ce qui merde ?

11/08/2024 à 05:47

6 commentaires

julien-luc
Membre Actif Rédacteur
Avatar de julien-luc
julien-luc
Membre Actif Rédacteur

yo t'es sûr que le service account utilisé par vault sur tes nodes GKE est bien celui qui a les perms kms decrypt ? des fois c'est un autre sa par défaut qui est utilisé si t'as pas spécifié explicitement dans le pod ou le deployment

12/08/2024 à 04:33
navarro-nath
Membre Actif Secouriste
Avatar de navarro-nath
navarro-nath
Membre Actif Secouriste

regarde aussi les logs du vault au moment du reboot. est-ce qu'il y a des erreurs claires liées à KMS ou un timeout ? ptete que le réseau vers kms est pas dispo direct au démarrage du pod

13/08/2024 à 00:49
xjacquot
Auteur Actif
Avatar de xjacquot
xjacquot
Auteur Actif

j'ai vérifié les perms du sa il a bien rôle cloud kms cryptoKey Decrypter sur la clé en question. pour les logs j'ai un "failed to unseal: failed to decrypt with KMS: ... key not found". bizarrement, si je kill le pod et qu'il redémarre, ça marche. c'est juste après un reboot complet de la node ou du cluster

13/08/2024 à 20:29
julien-luc
Membre Actif Rédacteur
Avatar de julien-luc
julien-luc
Membre Actif Rédacteur

ha ok donc c pas la clé qui est pas trouvée mais ptete l'accès à la clé au moment critique. le sa est monté via workoad identity ? si oui vérifie la liaison sa k8s / sa gcp elle est ptete pas dispo super tôt au boot

14/08/2024 à 16:37
gturpin
Membre
Avatar de gturpin
gturpin
Membre

exactement. j'ai eu ça avec un init container qui essayait de faire un truc kms trop tôt. le workload identity n'était pas encore initialisé. essaie de mettre un lifecycle postStart hook avec un petit sleep ou un check avant que vault essaye de s'unseal

15/08/2024 à 12:59
xjacquot
Auteur Actif
Avatar de xjacquot
xjacquot
Auteur Actif

OMG vous avez mis le doigt dessus. c'est bien le workload identity. au redémarrage complet y'a un délai avant que ça s'initialise et vault tente l'unseal trop tôt. j'ai ajouté un init container avec un petit script qui attend que le sa gcp soit dispo avant de lancer vault. ça marche impec maintenant. thx la team !

16/08/2024 à 08:38

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