【问题标题】:Creating Instance Group Manager fails without Editor role on service account在服务帐户上没有编辑者角色时,创建实例组管理器失败
【发布时间】:2018-08-16 21:39:01
【问题描述】:

我有一个 node.js 应用程序试图创建一个实例组管理器。它在一个实例上运行,该实例附加了一个服务帐户,其范围为compute-rwcloud-platform。此服务帐号的角色具有以下权限:

includedPermissions:
- compute.autoscalers.create
- compute.autoscalers.get
- compute.disks.create
- compute.images.get
- compute.images.useReadOnly
- compute.instanceGroupManagers.create
- compute.instanceGroupManagers.get
- compute.instanceGroupManagers.use
- compute.instanceTemplates.create
- compute.instanceTemplates.get
- compute.instanceTemplates.useReadOnly
- compute.instances.create
- compute.instances.setMetadata
- compute.instances.setTags
- compute.networks.get
- compute.subnetworks.get
- compute.subnetworks.use

查看resource.type="gce_instance_group_manager" 的审核日志,我可以在第一个日志条目中看到:

ProtoPayload.authorizationInfo:
  - granted: true
    permission: compute.instanceGroupManagers.create
    resourceAttributes:
      name: projects/my-project/zones/us-east1-b/instanceGroupManagers/resource-name
      service: compute
      type: compute.instanceGroupManagers
  - granted: true
    permission: compute.instanceTemplates.useReadOnly
    resourceAttributes:
      name: projects/my-project/global/instanceTemplates/resource-name
      service: compute
      type: compute.instanceTemplates
  - granted: true
    permission: compute.instances.create
    resourceAttributes:
      name: projects/my-project/zones/us-east1-b/instances/resource-name-0000
      service: compute
      type: compute.instances
  - granted: true
    permission: compute.disks.create
    resourceAttributes:
      name: projects/my-project/zones/us-east1-b/disks/resource-name-0000
      service: compute
      type: compute.disks
  - granted: true
    permission: compute.images.useReadOnly
    resourceAttributes:
      name: projects/my-project/global/images/resource-name-image
      service: compute
      type: compute.images
  - granted: true
    permission: compute.subnetworks.use
    resourceAttributes:
      name: projects/my-project/regions/us-east1/subnetworks/resource-name-subnet
      service: compute
      type: compute.subnetworks
  - granted: true
    permission: compute.instances.setMetadata
    resourceAttributes:
      name: projects/my-project/zones/us-east1-b/instances/resource-name-0000
      service: compute
      type: compute.instances
  - granted: true
    permission: compute.instances.setTags
    resourceAttributes:
      name: projects/my-project/zones/us-east1-b/instances/resource-name-0000
      service: compute
      type: compute.instances

status: "PENDING" 在正文中返回 200 OK。

只有在查看审核日志时,我才会看到带有 status.message: INVALID_PARAMETER 且没有任何解释的日志条目,然后是另一个带有以下内容的日志条目:

jsonPayload.error:
  - code: SERVICE_ACCOUNT_ACCESS_DENIED
    detail_message: ''
    location: ''

将编辑者角色附加到服务帐户时,我可以创建实例组管理器,因此似乎缺少一些权限。日志显示没有未授予的权限,所以可能缺少什么?

Raw logs

【问题讨论】:

    标签: google-cloud-platform google-compute-engine google-iam


    【解决方案1】:

    原来 instanceTemplate 将服务帐户附加到实例。因为创建实例组管理器的实例使用的服务帐户需要 iam.serviceAccountUser 角色。

    在我的情况下,不需要服务帐户,因此我将其从实例模板中删除,并且上述权限有效。

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      相关资源
      最近更新 更多