首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务帐户没有storage.buckets.get访问Google的权限

服务帐户没有storage.buckets.get访问Google的权限
EN

Server Fault用户
提问于 2021-08-04 14:28:44
回答 1查看 795关注 0票数 1

我正在运行Ansible的服务,下面的配置应该在Google上创建一个存储桶。

代码语言:javascript
复制
- name: "Create {{ environ.name }}-cluster-backups"
  google.cloud.gcp_storage_bucket:
    name: "zeipt-io-{{ environ.name }}-cluster-backups"
    location: "{{ google_cloud.region }}"
    storage_class: "NEARLINE"
    lifecycle:
      rule:
        - condition:
            age_days: 28
          action:
            type: "Delete"
    project: "{{ google_cloud.project }}"
    auth_kind: "{{ google_cloud.auth_kind }}"
    service_account_file: "{{ google_cloud.service_account_file }}"
    state: present

这给出了错误

致命::失败!'ansible@staging-environment.iam.gserviceaccount.com {“更改”:false,"msg":"GCP返回错误:{'error':{'code':403,'message':=>没有storage.buckets.get访问Google桶的权限。‘,’错误‘:}}"} }

我理解错误,但我检查了分配给这个用户的角色如下

代码语言:javascript
复制
gcloud projects get-iam-policy staging-environment --flatten="bindings[].members" --format='table(bindings.role)' --filter="bindings.members:ansible@staging-environment.iam.gserviceaccount.com"
ROLE
roles/owner
roles/storage.admin
roles/storage.objectAdmin
roles/storage.objectCreator
roles/storage.objectViewer

roles/storage.admin应该在我检查角色页面时满足需求,该C5声明该角色具有storage.buckets.*权限。

我不明白为什么我仍然会犯同样的错误?

EN

回答 1

Server Fault用户

发布于 2021-11-04 21:32:39

据我所知,有些社会人士曾向你提供一些解决办法,以解决你的问题,但很明显,这些方法都没有对你的问题有所帮助。另外,我知道您正在使用GCP创建服务帐户并分配角色。

也许您可以尝试从ansible创建服务帐户和服务帐户的角色,并检查它是否有效。

您可以使用此插件google.cloud.gcp创建服务帐户。

示例:

代码语言:javascript
复制
- name: create a service account
  google.cloud.gcp_iam_service_account:
    name: sa-{{ resource_name.split("-")[-1] }}@graphite-playground.google.com.iam.gserviceaccount.com
    display_name: My Ansible test key
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

并且可以使用插件google.cloud.gcp分配角色。

示例:

代码语言:javascript
复制
- name: create a role
  google.cloud.gcp_iam_role:
    name: myCustomRole2
    title: My Custom Role
    description: My custom role description
    included_permissions:
    - iam.roles.list
    - iam.roles.create
    - iam.roles.delete
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

请记住,这些插件是google.cloud集合的一部分,如果使用ansible包,应该安装这些插件。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1073533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档