首页 > 解决方案 > gcloud 对 add-iam-policy-binding 的混淆

问题描述

遵循 gcloud 文档


gcloud iam 服务帐户

将 IAM 策略绑定添加到IAM 服务账户

https://cloud.google.com/sdk/gcloud/reference/iam/service-accounts/add-iam-policy-binding

示例部分

要将“roles/editor”角色的 IAM 策略绑定添加到服务账户“test-proj1@example.domain.com”,请运行:

gcloud iam service-accounts add-iam-policy-binding \
 test-proj1@example.domain.com \
 --member='serviceAccount:test-proj1@example.domain.com' \
 --role='roles/editor'

gcloud 项目 add-iam-policy-binding

为项目添加 IAM 策略绑定

https://cloud.google.com/sdk/gcloud/reference/projects/add-iam-policy-binding

示例部分

要将“roles/editor”角色的 IAM 策略绑定添加到服务账户“test-proj1@example.domain.com”,请运行:

gcloud projects add-iam-policy-binding \
 test-proj1@example.domain.com \
 --member='serviceAccount:test-proj1@example.domain.com' \
 --role='roles/editor'

 gcloud 组织 add-iam-policy-binding

为组织添加 IAM 策略绑定

https://cloud.google.com/sdk/gcloud/reference/organizations/add-iam-policy-binding

示例部分

要将“roles/editor”角色的 IAM 策略绑定添加到服务账户“test-proj1@example.domain.com”,请运行:

gcloud organizations add-iam-policy-binding \
 test-proj1@example.domain.com \
 --member='serviceAccount:test-proj1@example.domain.com' \
 --role='roles/editor'

有谁知道这三个命令是否实际上相同?

在此先感谢您的帮助。

乔纳森。

标签: google-cloud-platformgcloud

解决方案


你必须像这样阅读命令

gcloud <resourceType> add-iam-policy-binding <resourceName> --member=<accountToGrantOnTheResource> --role=<roleToGrantOnTheResource>

混乱来自服务帐户的二元性(我保证,没有量子的东西!)。服务帐户可以是身份和资源。

您可以授予某人成为服务帐户的编辑者,而另一个人成为该服务帐户的查看者->您的第一个示例,您授予服务帐户本身为编辑者。例如,它将能够更新自己的描述。

在您的另外两个示例中,您授予您的服务帐户(作为身份)作为资源项目(项目的所有资源,服务帐户本身,如果它属于该项目)和组织的编辑。


推荐阅读