问题描述
我有两个用户:[email protected]
和 [email protected]
,我有一个谷歌云项目 X
。在 X
中,我有两个 VM:vm1
和 vm2
。我如何为用户授予对 start
和 stop
上的 vm1
和 vm2
操作的访问权限:[email protected]
和 [email protected]
,但可以访问 {{ 1}} 应该有 vm1
,而对 [email protected]
的访问应该有 vm2
?如果可能,请展示一个场景。
解决方法
Compute Engine 的父资源是项目资源。通常,您会在项目级别为某个身份授予 IAM 角色。
Compute Engine 支持资源级访问控制。这意味着您可以授予对一个 Compute Engine 虚拟机资源的访问权限,而不是项目中的所有 Compute Engine 虚拟机。典型的 Compute Engine 虚拟机由多个资源组成,例如实例、磁盘、快照、图像等。每一项都是需要权限的资源。
要授予用户“有效”使用 Compute Engine 实例的能力,请分配角色 roles/compute.instanceAdmin.v1
。此角色允许用户管理实例,但不能创建新实例。
gcloud compute instances add-iam-policy-binding <RESOURCE-NAME> \
--member=user:<EMAIL-ADDRESS> \
--role=roles/compute.instanceAdmin.v1"