在GCP文档上:
在服务帐户上被授予服务帐户用户角色的用户可以使用它来间接访问该服务帐户可以访问的所有资源。例如,如果一个服务帐户已被授予Compute Admin角色(roles / compute.admin),则该服务帐户上已被授予“服务帐户用户”角色(roles / iam.serviceAccountUser)的用户可以充当该服务帐户。启动Compute Engine实例。在此流程中,用户使用其授予的角色和权限来模拟服务帐户以执行任何任务。
所以我想尝试此功能:
testuser@example.com
添加到项目并授予查看者角色。testuser
登录GCP控制台,并确认用户只能查看实例,而不能创建实例。sa-name@project-id.iam.gserviceaccount.com
,并授予Compute Admin
角色,以便该服务帐户可以创建实例。testuser@example.com
角色service account user
到该服务帐户。因此,根据上述GCP文档,我希望testuser@example.com
可以创建实例,但是Create instance
按钮仍处于禁用状态。
然后,我在项目级别授予testuser@example.com
角色为service account user
,但Create instance
按钮仍然保持禁用状态。
那怎么了?
我理解错了吗?授予testuser@example.com
角色service account user
并不能赋予testuser创建实例的能力?
我做错什么了吗?
如何通过service account user
创建实例?
答案 0 :(得分:2)
当您明确要求gcloud CLI使用模拟时,模拟可与命令行一起使用。但是默认情况下它不处于活动状态,因此在GUI上不起作用。
尝试使用参数--impersonate-service-account=<ServiceAccountEmail>
的gcloud命令
注意:您需要在项目级别的用户上授予“服务使用使用者”角色,并在服务帐户级别(或在项目级别上)授予用户“服务帐户令牌创建者”角色如果您要模拟该项目的所有服务帐户)。 blog post of John Hanley
中的更多详细信息