【问题标题】:GCE Service Account with Compute Instance Admin permissions具有计算实例管理员权限的 GCE 服务帐户
【发布时间】:2018-11-16 05:13:46
【问题描述】:

我已经使用具有以下角色的服务帐户设置了一个名为在 Google Compute 引擎上运行 cronjobs 的计算实例: Custom Compute Image User + Deletion rights Compute Admin Compute Instance Admin (beta) Kubernetes Engine Developer Logs Writer Logs Viewer Pub/Sub Editor Source Repository Reader Storage Admin 不幸的是,当我 ssh 进入这个 cronjob 运行器实例然后运行时:

sudo gcloud compute --project  {REDACTED} instances create e-latest \
    --zone {REDACTED} --machine-type n1-highmem-8 --subnet default \
    --maintenance-policy TERMINATE  \
    --scopes  https://www.googleapis.com/auth/cloud-platform \
    --boot-disk-size 200  \
    --boot-disk-type pd-standard --boot-disk-device-name e-latest \
    --image {REDACTED} --image-project {REDACTED} \
    --service-account NAME_OF_SERVICE_ACCOUNT \ 
    --accelerator type=nvidia-tesla-p100,count=1 --min-cpu-platform Automatic

我收到以下错误:

用户无权访问服务帐户 {NAME_OF_SERVICE_ACCOUNT}。用户:{NAME_OF_SERVICE_ACCOUNT}。请项目所有者授予您服务帐号的 iam.serviceAccountUser 角色。

除了计算实例管理员之外,我是否需要其他权限才能使用我的实例创建实例?

进一步说明:(1) 当我尝试不指定 --service-account 时,错误是相同的,只是我的用户无权访问的服务帐户是默认的 '51958873628-compute@developer.gserviceaccount.com' . (2) 添加/删除 sudo 不会改变任何东西

【问题讨论】:

    标签: google-compute-engine google-iam


    【解决方案1】:

    创建使用服务帐户的实例需要您对该服务帐户具有 compute.instances.setServiceAccount 权限。要完成这项工作,请将iam.serviceAccountUser 角色授予您的服务帐户(在整个项目或您希望能够创建实例的特定服务帐户上)。

    【讨论】:

      【解决方案2】:

      首先找出你是谁

      • 如果您使用 Web UI:您使用什么电子邮件地址登录?
      • 如果您使用本地 gcloudterraform:找到包含您的 gcloud 凭据的 json 文件(通常与 myproject*.json 类似)并查看它是否包含 电子邮件grep client_email myproject*.json

      GCP IAM 更改

      1. 转到https://console.cloud.google.com
      2. 转到 IAM
      3. 查找您的电子邮件地址
      4. 成员 -> 编辑 -> 添加另一个角色 -> 输入角色名称Service Account User -> 添加

      (你可以用一个条件来缩小范围,但让它保持简单一段时间)。

      【讨论】:

        【解决方案3】:

        确保 NAME_OF_SERVICE_ACCOUNT 是当前项目的服务帐户。

        如果您更改项目 ID,而不更改 NAME_OF_SERVICE_ACCOUNT,则会遇到此错误。

        这可以在 Google Console -> IAM & Admin -> IAM 上进行检查。 然后查找服务名称 ....-compute@developer.gserviceaccount.com 并检查开头的数字是否正确。每个项目在此服务名称中都有不同的编号。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-31
          • 2020-06-19
          • 2011-07-10
          • 2019-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多