【发布时间】:2021-06-03 22:46:28
【问题描述】:
使用 GPC .NET C# API,我能够成功地为我的 GCP 项目创建服务帐户。如何将角色添加到我的新服务帐户?大概这是通过 SetIamPolicy 完成的,但是 examples 仅显示为项目设置角色。
【问题讨论】:
标签: .net google-cloud-platform
使用 GPC .NET C# API,我能够成功地为我的 GCP 项目创建服务帐户。如何将角色添加到我的新服务帐户?大概这是通过 SetIamPolicy 完成的,但是 examples 仅显示为项目设置角色。
【问题讨论】:
标签: .net google-cloud-platform
如果您想为您的 GCP 服务帐号授予新角色,您可以通过控制台执行以下步骤:
转到您的 GCP 项目中的 IAM Dashboard 。在这里您会找到您的所有帐户:用户和服务帐户。
搜索您要修改的服务帐户。在该行的最右侧,您将看到一个Pencil Icon,单击它。将显示一个新面板。
单击ADD ANOTHER ROLE 并选择您要授予该帐户的角色。可以添加多个,但每次都需要点击ADD ANOTHER ROLE。
点击保存,您的服务帐户就准备好了。
最多可能需要 2 分钟才能完全反映,但在最好的情况下,更改会立即完成。
另一个选项是使用命令gcloud projects add-iam-policy-binding,它允许您通过 Cloud SDK 进行这些更改。一个简单的例子:
gcloud projects add-iam-policy-binding example-project-id-1 \
--member='user:test-user@gmail.com' \
--role='roles/editor'
该命令会将Editor Role 授予帐户test-uster@gmail.com。您需要修改该命令以设置服务帐户和要授予的角色。
这可能需要您执行更多步骤,因为您需要确保服务帐户和角色的语法。使用 Cloud SDK 最快的方法是通过Cloud Shell session。
【讨论】:
实际上,我需要为服务帐户设置权限,而不是用户。所以正确的 CLI 应该是:
gcloud projects add-iam-policy-binding \
test-proj1@example.domain.com \
--member='serviceAccount:test-proj1@example.domain.com' \
--role='roles/editor'
这让我找到了我的 .NET 项目的解决方案——非常感谢!在绑定 API 中,成员必须以“serviceAccount:”为前缀,就像 CLI 一样。因此,在 SetPolicy 中使用的 Binding 的完整成员名称将是:
var member = "serviceAccount:" + "test-proj1@example.domain.com";
有关更完整的示例,请参阅 here。
【讨论】: