vault kms auto-unseal foireux sur gcp

Posté par chevalier-david le 01/10/2025
RÉSOLU

chevalier-david

Membre depuis le 25/03/2024

Salut les experts Vault ! J'essaye de configurer l'auto-unseal de Vault avec GCP KMS mais ça veut pas. Le service Vault démarre, mais il reste sealed. J'ai pourtant suivi la doc à la lettre. J'ai une instance GCE et j'utilise le rôle par défaut de l'instance pour les perms KMS.


# vault config excerpt
storage "raft" {
  path = "/vault/data"
}

listener "tcp" {
  address = "0.0.0.0:8200"
  tls_disable = true
}

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

Et dans les logs j'ai un truc du genre `Error initializing seal: error fetching token from metadata server: StatusCode(403)`

Commentaires

matthieu-pires

Membre depuis le 18/05/2024

Hmm `StatusCode(403)` ça sent l'erreur de permissions direct. Même si tu utilises le rôle par défaut de l'instance, il faut que ce rôle ait les bonnes perms sur la clé KMS. T'as bien `cloudkms.cryptoKeyEncrypterDecrypter` sur la clé `vault-key` pour le service account de ton instance GCE?

olivie65

Membre depuis le 15/07/2024

Et le réseau? Vault a bien accès à l'API GCP KMS? Pas de firewall qui bloquerait la connexion vers `cloudkms.googleapis.com`? Ça peut être ça aussi, une bête erreur de connectivité

chevalier-david

Membre depuis le 25/03/2024

J'ai checké les perms dans IAM, le SA de l'instance a bien le rôle `Cloud KMS CryptoKey Encrypter/Decrypter` sur la clé. Et le réseau est ouvert vers internet, j'ai même fait un `curl` vers `cloudkms.googleapis.com` depuis la VM, ça passe.

matthieu-pires

Membre depuis le 18/05/2024

ok donc perms et réseau ok. la région et le keyring/key sont bien exacts dans ta config vault par rapport à ce que tu as dans gcp kms? des fois une faute de frappe ou une région différente ça peut induire en erreur

olivie65

Membre depuis le 15/07/2024

Regarde les logs d'audit dans Stackdriver pour GCP KMS. Tu devrais voir si les appels sont reçus et pourquoi ils sont refusés. Ça donne un indice précis sur ce que Vault essaye de faire et pourquoi GCP le bloque.

chevalier-david

Membre depuis le 25/03/2024

omg c'était un truc bête mais vicieux. mon `crypto_key` était bon, mais j'avais oublié le full path dans mon fichier de config vault ! il faut le chemin complet `/projects/mon-projet-gcp/locations/europe-west1/keyrings/vault-keyring/cryptokeys/vault-key`. une fois corrigé, ça unseal direct. merci pour l'aide !

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