在google cloud gui控制台中,我转到“IAM&admin”>“服务帐户”,并创建了一个具有查看者角色的服务帐户“my-service-account”。

然后,我运行以下命令:

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

并看到以下输出:
etag: ACAB

根据文档,这意味着此服务帐户没有与之关联的策略。因此,我为其分配了一个“角色”,该角色未包含在其“策略”中。

如何列出与服务帐户关联的角色?

编辑:
多亏了对这个问题的出色回答,我现在可以遍历所有项目并得到我想要的东西。因此,根据这些cmd工具的版本,这应列出所有项目中单个服务帐户的所有角色绑定(bind):
gcloud projects list | \
  awk '{print $1}' | \
  xargs -I % sh -c "echo ""; echo project:% && \
  gcloud projects get-iam-policy % \
  --flatten='bindings[].members' \
  --format='table(bindings.role)' \
  --filter='bindings.members:[email protected]' \
  ;"

最佳答案

要过滤特定的服务帐户,请使用以下gcloud命令来完成:

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

给出不错的输出:
ROLE
roles/cloudtrace.agent
roles/servicemanagement.serviceController
roles/viewer

当然,可以对格式参数进行调整以满足您的特定需求。

关于google-cloud-platform - 如何列出与gcp服务帐户关联的角色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47006062/

10-11 01:38