Authentification Vault via Kubernetes : Problème de rolebinding

zacharie-adam 07/02/2025
RÉSOLU
zacharie-adam
Auteur Actif
Avatar de zacharie-adam
zacharie-adam
Auteur Actif

Salut à tous ! J'essaie de configurer l'auth Vault avec Kubernetes pour que mes pods puissent récupérer des secrets. J'ai un souci au niveau du rolebinding, j'arrive pas à faire fonctionner l'authentification. Quand j'essaie de me logger via vault login -method=kubernetes role=my-app-role jwt=@token.jwt, j'ai un permission denied.

# Erreur retournée
Error authenticating: error looking up service account: permission denied

J'ai bien créé l'auth method kubernetes dans Vault, le rôle, le service account dans k8s. J'ai l'impression de rater un truc évident.

07/02/2025 à 09:34

8 commentaires

emile17
Membre Actif Rédacteur
Avatar de emile17
emile17
Membre Actif Rédacteur

hello ! tu peux nous montrer la config de ton rôle vault et comment tu as configuré l'auth method kubernetes ? le permission denied peut venir de plusieurs endroits

Modifié le 23/05/2026 à 16:20
zacharie-adam
Auteur Actif
Avatar de zacharie-adam
zacharie-adam
Auteur Actif

d'acc. voici mon rôle vault simplifié :

vault write auth/kubernetes/role/my-app-role \
    bound_service_account_names=my-app-sa \
    bound_service_account_namespaces=default \
    policies=my-app-policy \
    ttl=1h

et l'auth method est configurée comme ça :

vault write auth/kubernetes/config \
    kubernetes_host="https://kubernetes.default.svc:443" \
    token_reviewer_jwt="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \
    kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt \
    issuer="https://kubernetes.default.svc.cluster.local"
09/02/2025 à 00:37

l'issuer est souvent la source de problèmes. assure-toi que l'issuer que tu as configuré dans vault correspond exactement à celui de ton cluster k8s. tu peux le récupérer via kubectl get --raw /.well-known/openid-configuration | jq .issuer

Modifié le 23/05/2026 à 16:20
zacharie-adam
Auteur Actif
Avatar de zacharie-adam
zacharie-adam
Auteur Actif

j'ai checké l'issuer il est bon. c'est bien https://kubernetes.default.svc.cluster.local. pas ça le souci. le message dit error looking up service account donc c'est avant même d'arriver à l'évaluation du rôle non ?

Modifié le 23/05/2026 à 16:20
leon20
Membre
Avatar de leon20
leon20
Membre

oui c ça. ça veut dire que le token_reviewer_jwt que Vault utilise n'a pas les permissions pour faire un TokenReview et vérifier le token JWT de ton pod. il faut que le service account que tu utilises pour le token_reviewer_jwt ait le system:auth-delegator ClusterRolebinding ou un rôle qui lui permet de faire des tokenreviews

Modifié le 23/05/2026 à 16:20
zacharie-adam
Auteur Actif
Avatar de zacharie-adam
zacharie-adam
Auteur Actif

ah ok je vois ! j'avais pris le SA par défaut du pod Vault qui n'a pas ces permissions. je vais créer un SA dédié avec les bons droits. je reviens après avoir testé ça

12/02/2025 à 13:28
emile17
Membre Actif Rédacteur
Avatar de emile17
emile17
Membre Actif Rédacteur

exactement le token_reviewer_jwt doit avoir un SA avec les droits pour interroger l'API server et valider les tokens. c'est souvent la cause du permission denied. pense aussi aux bound_service_account_namespaces et bound_service_account_names si t'as plusieurs namespaces ou SAs avec le même nom

Modifié le 23/05/2026 à 16:20
zacharie-adam
Auteur Actif
Avatar de zacharie-adam
zacharie-adam
Auteur Actif

c'était bien ça ! j'ai créé un SA vault-token-reviewer avec un ClusterRolebinding system:auth-delegator et j'ai reconfiguré l'auth method Vault avec le token de ce SA. Ça passe ! Merci beaucoup les gars j'aurais galéré longtemps là-dessus !

Modifié le 23/05/2026 à 16:20

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