【问题标题】:How to install monitoring agent on GCP Compute VM that is set to a Service Account?如何在设置为服务帐户的 GCP Compute VM 上安装监控代理?
【发布时间】: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


【解决方案1】:

这是正确的,根据计算管理员角色的官方文档:

完全控制所有 Compute Engine 资源。

如果用户要管理的虚拟机实例是 配置为作为服务帐户运行,您还必须授予 角色/iam.serviceAccountUser 角色。

链接:https://cloud.google.com/compute/docs/access/iam

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多