Membre depuis le 12/12/2024
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
Membre depuis le 12/04/2019
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"
Membre depuis le 06/01/2020
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`
Membre depuis le 12/04/2019
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 ?
Membre depuis le 20/06/2024
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`
Membre depuis le 12/04/2019
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
Membre depuis le 12/12/2024
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
Membre depuis le 12/04/2019
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 !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
zacharie-adam
Membre depuis le 12/04/2019
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`.
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.