Lorsque vous ne pouvez pas usurper directement un compte de service cible mais que vous pouvez usurper un compte intermédiaire qui détient Token Creator sur la cible, la délégation passe par lui. Vous demandez à IAM Credentials de générer le jeton de la cible tout en déléguant via l'intermédiaire, atteignant un compte à un saut de distance.
Enchaîner via un délégué#
# you can impersonate SA-A; SA-A has Token Creator on SA-B (the real target)
gcloud auth print-access-token \
--impersonate-service-account <sa-b>@<proj>.iam.gserviceaccount.com \
--delegates <sa-a>@<proj>.iam.gserviceaccount.com
L'API generateAccessToken accepte une liste delegates, donc des chaînes plus longues (A vers B vers C) fonctionnent tant que chaque maillon détient Token Creator sur le suivant.
Notes d'exploitation#
- Cartographiez le graphe Token Creator à partir des politiques IAM : la délégation transforme une chaîne d'octrois faibles en un chemin vers un compte puissant.
- La délégation est facile à manquer lors d'une revue, car aucune liaison unique ne vous nomme sur la cible finale.
- Chaque saut est un jeton à courte durée de vie, régénérez donc au fur et à mesure du parcours de la chaîne.
Outils#
- gcloud (
--impersonate-service-accountavec--delegates). - Analyse de graphe IAM pour trouver les chaînes de délégation.