web-dev-qa-db-fra.com

Comment répertorier les rôles associés à un compte de service gcp?

Dans la console gui de Google Cloud, je suis allé dans "IAM & admin"> "Comptes de service" et j'ai créé un compte de service nommé "mon-compte-de-service" avec le rôle de visionneuse.

J'ai ensuite exécuté cette commande:

gcloud iam service-accounts get-iam-policy [email protected]

et a vu cette sortie:

etag: ACAB

Selon les documents, cela signifie que ce compte de service n'a aucune politique associée. Je lui ai donc assigné un "rôle" qui n'est pas inclus dans sa "politique".

Comment répertorier les rôles associés à un compte de service?

16
red888

Dans Google Cloud, vous disposez de stratégies IAM pour les projets et les comptes de service.

Avec les stratégies IAM pour le projet, vous définissez qui peut effectuer une action spécifique sur une ressource dans votre projet Google Cloud. En ajoutant le rôle "Viewer" à votre compte de service, vous avez modifié la politique du projet (c'est-à-dire ce que votre compte de service peut faire à l'intérieur du projet)

D'autre part, les stratégies IAM pour les comptes de service sont utilisées pour contrôler qui est propriétaire et qui peut accéder aux comptes de service et à leurs paramètres. C'est ce que vous récupériez avec la commande que vous avez publiée, mais vous n'obteniez rien car vous obteniez la stratégie pour le compte de service au lieu de celle pour le projet.

Afin d'obtenir la stratégie IAM pour le projet qui contiendra les membres et leurs rôles correspondants, vous pouvez exécuter la commande suivante :

gcloud projects get-iam-policy PROJECT_ID

Vous pouvez trouver plus d'informations sur les comptes de service dans les liens suivants:

https://cloud.google.com/iam/docs/service-accounts

https://cloud.google.com/iam/docs/granting-roles-to-service-accounts

16
GalloCedrone

Pour filtrer sur un compte de service spécifique, la commande gcloud suivante fait l'affaire:

gcloud projects get-iam-policy <YOUR GCLOUD PROJECT>  \
--flatten="bindings[].members" \
--format='table(bindings.role)' \
--filter="bindings.members:<YOUR SERVICE ACCOUNT>"

Donne la sortie Nice:

ROLE
roles/cloudtrace.agent
roles/servicemanagement.serviceController
roles/viewer

Le paramètre de format peut bien sûr être modifié pour répondre à vos besoins spécifiques.

32
polve