【发布时间】:2021-10-02 14:24:57
【问题描述】:
我有一个 GCP 虚拟机设置为使用服务帐户,因此在控制台上的虚拟机实例详细信息中:
服务帐号
blarg@MYPROJECT.iam.gserviceaccount.com
当我运行安装监控代理的命令时,我看到了这个:
更新项目 ssh 元数据...失败。
更新实例 ssh 元数据...失败。
错误:(gcloud.beta.compute.ssh) 无法将 SSH 密钥添加到实例元数据:
- “projects/MYPROJECT/zones/us-central1-a/instances/MYVM”需要“compute.instances.setMetadata”权限
我在 instance(不是整个项目)上赋予服务帐户 Compute Admin 角色并重新运行。结果会更加混乱:
更新项目 ssh 元数据...失败。
更新实例 ssh 元数据...失败。
错误:(gcloud.beta.compute.ssh) 无法将 SSH 密钥添加到实例元数据:
- 用户无权访问服务帐户 > 'blarg@MYPROJECT.iam.gserviceaccount.com'。用户:'blarg@MYPROJECT.iam.gserviceaccount.com'。请项目所有者授予您服务帐号的 iam.serviceAccountUser 角色
我是否真的授予iam.serviceAccountUser 角色在服务帐户,以便它可以使用自己?由于我是项目管理员/所有者,还有其他方法可以以我的身份运行脚本而不是服务帐户吗?
【问题讨论】:
-
您可以在使用
gcloud auth login进行身份验证后以you 身份运行脚本,然后在身份验证屏幕中选择you。顺便说一句,当您运行gcloud auth list时,选择的是 blarg@MYPROJECT.iam.gserviceaccount.com 帐户? -
如果您创建的资源 (VM) 本身将使用服务帐户,则您必须具有部署该服务的权限 iam.serviceAccountUser。服务帐号是否与资源引用的帐号相同并不重要。
-
@MBHAPhoenix - 是的,运行
gcloud auth list时,blarg@MYPROJECT.iam.gserviceaccount.com 显示为选中状态。感谢命令提示
标签: google-cloud-platform google-compute-engine