当前位置: 首页 > 知识库问答 >
问题:

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

王声
2023-03-14

在google cloud gui控制台中,我转到“iam&admin”>“service accounts”,并创建了一个名为“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' \
  ;" 

共有2个答案

东门彬
2023-03-14

在Google Cloud中,您有针对项目和服务帐户的IAM策略。

通过项目的IAM策略,您可以定义谁可以对Google Cloud项目中的资源执行特定操作。将“查看器”角色添加到您的服务帐户中,您修改了项目策略(即您的服务帐户可以在项目中执行的操作)

另一方面,服务帐户的IAM策略用于控制谁拥有所有权,谁可以访问服务帐户及其设置。这是您通过发布的命令检索的内容,但是您没有获得任何信息,因为您获取的是服务帐户的策略,而不是项目的策略。

为了获得包含成员及其相应角色的项目的IAM策略,可以运行以下命令:

gcloud projects get-iam-policy PROJECT_ID

您可以在以下链接中找到有关服务帐户的进一步信息:

html" target="_blank">https://cloud.google.com/iam/docs/service-accounts

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

沈英勋
2023-03-14

要在特定的服务帐户上进行筛选,以下gcloud commmand可以完成以下操作:

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

格式参数当然可以调整以适应您的特定需要。

 类似资料:
  • 我开发了以下代码,用于自动执行我的一些实例的启动/停止任务,这些实例不需要一直运行,而是在特定范围内运行。 这是我的代码:https://github.com/maartinpii/gcp-shst 我按照谷歌云平台指南(参考:https://cloud.google.com/iam/docs/understanding-service-accounts https://cloud.google.

  • 我已经从GCP控制台创建了和一个自定义角色。 但是,当试图关联它们时,它会失败,如下所示: 知道为什么吗?

  • 如何为默认的Google App Engine(GAE)服务帐户赋予其他角色: 具体地说,我希望将“Cloud SQL Client”角色赋予默认的app engine服务帐户。当我试图修改角色时,我得到以下消息:

  • 我有一个Terraform用来管理我的云资源的服务帐户,我们称之为。我需要给予它足够的访问权限来创建/删除/编辑其他服务帐户,但不能更改它自己或项目中不应该接触的其他SAs。 我试着在那里添加一个条件,但看起来‘服务帐户’不是可以在条件(?)中使用的资源类型之一。下面是绑定该角色的HCL片段(我使用Terraform的事实与此无关): 当我删除该条件时,一切正常,但的权限远远超过它所需的权限。它甚

  • 我一直试图用角色导入预先配置的客户机和服务帐户,所以我的json文件看起来像 我还尝试在导入的领域配置中设置客户端,但在这两种情况下,我都有以下问题 null Keycloak版本为:8.0.0 谢了。

  • 我在ECS fargate上运行java应用程序,并在fargate任务中添加了一个角色来执行s3操作。在我的java进程中,我已经开始使用aws sdk的DefaultCredentialsProviderChain.java来获取凭证并创建s3客户端。我面临的问题是理解下面提到的问题: < li >链中的哪个类(在DefaultCredentialsProviderChain.java)从关联