google-cloud-platform - 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'
有谁知道这三个命令是否实际上相同?
在此先感谢您的帮助。
乔纳森。
解决方案
你必须像这样阅读命令
gcloud <resourceType> add-iam-policy-binding <resourceName> --member=<accountToGrantOnTheResource> --role=<roleToGrantOnTheResource>
混乱来自服务帐户的二元性(我保证,没有量子的东西!)。服务帐户可以是身份和资源。
您可以授予某人成为服务帐户的编辑者,而另一个人成为该服务帐户的查看者->您的第一个示例,您授予服务帐户本身为编辑者。例如,它将能够更新自己的描述。
在您的另外两个示例中,您授予您的服务帐户(作为身份)作为资源项目(项目的所有资源,服务帐户本身,如果它属于该项目)和组织的编辑。
推荐阅读
- c++ - 如何将字符串的特定元素转换为 int Arduino/C++
- xaml - 如何使用 Visual Studio 16.9 或更高版本快速预览 XamarinForms 控件或页面?(最好的办法)
- java - 这两种在 Java 中使用侦听器的方式之间是否存在性能/负载差异?
- python - Python字符串最后一个元素可以是任何字母
- reactjs - 存储和传递用户名和密码以配置数据库连接的正确方法?
- r - 在测试 R 中的数据后,梯度提升的拟合问题
- firebase - 尝试使用 Firebase 电话号码身份验证注册时阻止浏览器弹出
- groovy - SoapUI 开源项目测试用例无限循环运行
- java - NoClassDefFoundError: org/w3c/dom/ls/DocumentLS 当 log4j 在另一个模块中使用时
- javascript - 即使重新加载后变量值仍然存在