GCP - 权限属于哪个角色?

GCP - 权限属于哪个角色?

我不明白为什么 IAM 的使用如此难以理解。例如,我正在尝试为 VM 实例创建计划。当我将实例添加到计划时,我得到了:

Compute Engine System service account [email protected]
needs to have [compute.instances.start,compute.instances.stop] permissions applied in order to perform this operation

我在 IAM 中找到了帐户,但我不知道这些东西属于哪个角色。我应该添加哪个角色为了达成这个。

如果我尝试,gcloud我会得到错误:

gcloud projects add-iam-policy-binding general-123456 \
    --member=user:[email protected] --role=roles/compute.instances.start

ERROR: (gcloud.projects.add-iam-policy-binding) User [xxxxxx] does not have permission to access projects instance [general-123456:getIamPolicy] (or it may not exist): The caller does not have permission

我是该帐户和所有项目的所有者。

我该怎么办呢?

someth.the.other.etc一般来说,当他们表示喜欢或someThingsNotRight-时,处理 GCP 权限的程序是怎样的如何识别正确的角色名称?

答案1

要找出具有 compute.instances.start 和 compute.instances.stop 的角色,您可以转到角色列表并按这些权限进行过滤(在过滤框中输入一个)[1]。这将产生大约十几个具有所需权限的不同角色,但这些默认角色在权限数量方面要么非常广泛(所有者、编辑者、计算管理员),要么专为其他任务而设计,与您要执行的操作无关(Cloud Dataflow 服务代理、Kubernetes Engine 服务代理)。

在您的情况下,您可以创建一个新角色(将其命名为类似 Instance Scheduler)[2] 并分配这两个权限,然后将该角色绑定到您的服务帐户。

[1]https://cloud.google.com/iam/docs/creating-custom-roles#getting_the_role_metadata
[2]https://cloud.google.com/iam/docs/creating-custom-roles#creating_a_custom_role

相关内容