使用 GPC .NET C# API,我能够为我的 GCP 项目成功创建服务帐户。如何将角色添加到我的新服务帐户?大概这是通过 SetIamPolicy 完成的,但是 examples 只显示设置项目的角色。
答案 0 :(得分:2)
如果您想为您的 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。
答案 1 :(得分:0)
实际上,我需要为服务帐户而不是用户设置权限。所以正确的 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 以获得更完整的示例。