在谷歌云 gui 控制台中,我转到“IAM 和管理员”>“服务帐户”,并使用查看者角色创建了一个名为“my-service-account”的服务帐户。
然后我运行了这个命令:
gcloud iam service-accounts get-iam-policy my-service-account@mydomain.iam.gserviceaccount.com
并看到了这个输出:
etag: ACAB
根据文档,这意味着此服务帐户没有与之关联的策略。所以我给它分配了一个不包含在它的“政策”中的“角色”。
如何列出与服务帐户关联的角色?
编辑:感谢对这个问题的出色回答,我现在可以遍历所有项目并得到我想要的。因此,根据这些 cmd 工具的版本,这应该列出所有项目中单个服务帐户的所有角色绑定:
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:YOU-SERVICE-ACCOUNT@blah.com' \
;"