如何向 GCP 服务帐号添加角色

时间:2021-06-03 22:46:28

标签: .net google-cloud-platform

使用 GPC .NET C# API,我能够为我的 GCP 项目成功创建服务帐户。如何将角色添加到我的新服务帐户?大概这是通过 SetIamPolicy 完成的,但是 examples 只显示设置项目的角色。

2 个答案:

答案 0 :(得分:2)

如果您想为您的 GCP 服务帐户授予新角色,您可以通过控制台执行以下步骤:

  1. 转到 GCP 项目中的 IAM Dashboard 。您将在此处找到您的所有帐户:用户和服务帐户。

  2. 搜索您要修改的服务帐户。在该行的最右侧,您将看到一个 Pencil Icon,单击它。将显示一个新面板。

  3. 点击 ADD ANOTHER ROLE 并选择您要授予该帐户的角色。您可以添加多个,但每次都需要点击 ADD ANOTHER ROLE

  4. 单击“保存”,您的服务帐户将准备就绪。

最多可能需要 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 以获得更完整的示例。