我有一个GCP VM设置为使用服务帐户,因此在控制台上的VM实例详细信息中:
服务帐户
blarg@MYPROJECT.iam.gserviceaccount.com
当我运行安装监视代理的命令时,我看到如下:
更新项目ssh元数据…失败。
更新实例ssh元数据…失败。误差
:(gcloud.beta. computer . SSH)无法向实例元数据添加SSH密钥:
- compute.instances要求"。设置"projects/MYPROJECT/zones/us-central1-a/instances/MYVM"的权限
我在实例(不是整个项目)上给了服务帐户Compute Admin角色,然后重新运行。结果更令人困惑:
更新项目ssh元数据…失败。
更新实例ssh元数据…失败。误差
:(gcloud.beta. computer . SSH)无法向实例元数据添加SSH密钥:
- 用户没有服务账号>"blarg@MYPROJECT.iam.gserviceaccount.com"。用户:"blarg@MYPROJECT.iam.gserviceaccount.com"。请求项目所有者授予您权限。服务帐户
上的serviceAccountUser角色
我是否真的在上授予iam.serviceAccountUser
角色服务帐户,以便它可以使用自己?是否有另一种方式,我可以运行脚本作为我,而不是服务帐户,因为我是一个项目管理员/所有者?
正确,根据compute admin角色的官方文档:
完全控制所有Compute Engine资源。
如果用户将管理的虚拟机实例是配置为作为服务帐户运行,您还必须授予角色/我。serviceAccountUser作用。
链接:https://cloud.google.com/compute/docs/access/iam