具有组织查看者角色的服务帐户无法执行任何操作

Posted

技术标签:

【中文标题】具有组织查看者角色的服务帐户无法执行任何操作【英文标题】:Service account with org viewer role not able to perform any actions 【发布时间】:2021-08-31 16:07:10 【问题描述】:

我创建了一个具有组织查看者权限的 GCP 服务帐户(因此我假设在所有项目中都具有读取权限)

▶ gcloud organizations get-iam-policy 83838383838383 --flatten="bindings[].members" --format='table(bindings.role)' --filter="bindings.members:my-sa@my-project-id.iam.gserviceaccount.com"
ROLE
roles/resourcemanager.organizationViewer

然后我在本地激活它

▶ gcloud auth activate-service-account my-sa@my-project-id.iam.gserviceaccount.com --key-file=keyfile.json
Activated service account credentials for: [my-sa@my-project-id.iam.gserviceaccount.com]

然后尝试执行compute disk list(在创建 SA 的同一项目上)

▶ gcloud compute disks list
ERROR: (gcloud.compute.disks.list) Some requests did not succeed:
 - Required 'compute.disks.list' permission for 'projects/my-project-id'

为什么会这样?

【问题讨论】:

添加项目查看者角色,查看项目资源 我这样做了,令我惊讶的是,它为同一组织下的所有个项目提供了项目查看器 如果您在组织级别设置项目查看器,是的,您在组织的所有项目中都具有项目查看器角色,通过继承。 【参考方案1】:

错误消息指出服务帐户没有权限compute.disks.list

角色roles/resourcemanager.organizationViewer有什么权限?

gcloud iam roles describe roles/resourcemanager.organizationViewer --format=json

注意角色只有一个权限resourcemanager.organizations.get


  "description": "Access only to view an Organization.",
  "etag": "AA==",
  "includedPermissions": [
    "resourcemanager.organizations.get"
  ],
  "name": "roles/resourcemanager.organizationViewer",
  "stage": "GA",
  "title": "Organization Viewer"

该权限允许查看组织详细信息,但不能查看组织的资源。

【讨论】:

以上是关于具有组织查看者角色的服务帐户无法执行任何操作的主要内容,如果未能解决你的问题,请参考以下文章

授权不适用于用户搜索

无法通过 api 为服务帐户创建 cloudsql 角色

无法通过类方法更改对象的值

具有角色的ec2实例AmazonEC2RoleforSSM无法在ansible中执行EC2操作

SQL Agent服务无法启动怎么办

按用户角色设计注册编辑?