Google Cloud에 스토리지 버킷을 생성해야 하는 다음 구성의 서비스로 Ansible을 실행하고 있습니다.
- 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
오류가 발생합니다.
치명적: [localhost]: 실패했습니다! => {"changed": false, "msg": "GCP에서 오류를 반환했습니다: {'error': {'code': 403, 'message': '[이메일 보호됨]Google Cloud Storage 버킷에 대한 Storage.buckets.get 액세스 권한이 없습니다.', 'errors': [{'message': '[이메일 보호됨]Google Cloud Storage 버킷에 대한 Storage.buckets.get 액세스 권한이 없습니다.', 'domain': 'global', 'reason': 'forbidden'}]}}"}
오류를 이해하지만 이 사용자에게 할당된 역할을 다음과 같이 확인했습니다.
gcloud projects get-iam-policy staging-environment --flatten="bindings[].members" --format='table(bindings.role)' --filter="bindings.members:[email protected]"
ROLE
roles/owner
roles/storage.admin
roles/storage.objectAdmin
roles/storage.objectCreator
roles/storage.objectViewer
roles/storage.admin
내가 확인한 대로 요구 사항을 충족해야 합니다.Google Cloud IAM 역할 페이지이는 이 역할에 storage.buckets.*
권한이 있음을 나타냅니다.
왜 여전히 같은 오류가 발생하는지 이해할 수 없습니까?
답변1
커뮤니티의 일부 구성원이 귀하의 문제를 해결하기 위해 몇 가지 솔루션을 제안했지만 그 중 어느 것도 귀하의 문제에 유용하지 않은 것 같습니다. 또한 GCP를 사용하여 서비스 계정을 만들고 역할을 할당하고 계신 것으로 알고 있습니다.
Ansible에서 서비스 계정과 서비스 계정에 대한 역할을 생성하고 작동하는지 확인할 수 있습니다.
이 플러그인을 사용하여 서비스 계정을 만들 수 있습니다google.cloud.gcp_iam_service_account – GCP ServiceAccount를 생성합니다.
예:
- 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_iam_role – GCP 역할 생성
예:
- 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 패키지를 사용하는 경우 설치해야 합니다.