![GCP - 权限属于哪个角色?](https://linux22.com/image/768148/GCP%20-%20%E6%9D%83%E9%99%90%E5%B1%9E%E4%BA%8E%E5%93%AA%E4%B8%AA%E8%A7%92%E8%89%B2%EF%BC%9F.png)
我不明白为什么 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