【发布时间】:2020-11-05 14:11:59
【问题描述】:
在 GCP 文档上:
在服务帐户上被授予服务帐户用户角色的用户可以使用它来间接访问服务帐户有权访问的所有资源。例如,如果服务帐户已被授予计算管理员角色 (roles/compute.admin),则已在该服务帐户上被授予服务帐户用户角色 (roles/iam.serviceAccountUser) 的用户可以充当服务帐户启动 Compute Engine 实例。在此流程中,用户模拟服务帐户以使用其授予的角色和权限执行任何任务。
所以我想试试这个功能:
- 创建项目
- 将
testuser@example.com添加到项目并授予查看者角色。 - 打开新浏览器,用
testuser登录GCP控制台,确认用户只能查看实例,不能创建实例。 - 添加一个服务账号:
sa-name@project-id.iam.gserviceaccount.com,并授予Compute Admin角色,这样这个服务账号就可以创建实例了。 - 将具有
service account user角色的testuser@example.com授予此服务帐号。
因此,根据上述 GCP 文档,我希望 testuser@example.com 可以创建实例,但 Create instance 按钮仍处于禁用状态。
然后我在项目级别授予testuser@example.com 和service account user 角色,但Create instance 按钮仍然处于禁用状态。
那么有什么问题呢?
-
我理解错了吗?授予
testuser@example.com和service account user角色不赋予testuser 创建实例的能力? -
我做错了吗?
-
如何通过
service account user创建实例?
【问题讨论】:
-
在 SA 上授予的 IAM 权限不会传递给用户。相反,您需要在命令中显式模拟 SA。看到这个帖子stackoverflow.com/questions/50921909/…。
标签: google-cloud-platform service-accounts