Развертывание GCP для создания сегмента хранилища завершается сбоем из-за отсутствия доступа к Storage.buckets.get.
Я хочу создать корзину облачного хранилища программно с помощью диспетчера развертывания, но развертывание завершается неудачей со следующей ошибкой:
ERROR: (gcloud.deployment-manager.deployments.create) Error in Operation [operation-1626165906845-5c6fd413930ca-1a833b6c-81671664]: errors:
- code: RESOURCE_ERROR
location: /deployments/example-config/resources/storage-bucket
message: '{"ResourceType":"storage.v1.bucket","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"errors":[{"domain":"global","message":"471700050969@cloudservices.gserviceaccount.com
does not have storage.buckets.get access to the Google Cloud Storage bucket.","reason":"forbidden"}],"message":"471700050969@cloudservices.gserviceaccount.com
does not have storage.buckets.get access to the Google Cloud Storage bucket.","statusMessage":"Forbidden","requestPath":"https://storage.googleapis.com/storage/v1/b/storage-bucket","httpMethod":"GET","suggestion":"Consider
granting permissions to 471700050969@cloudservices.gserviceaccount.com"}}'
Однако я добавилroles/storage-admin
к учетной записи, указанной в ошибке, и в соответствии с политикой устранения неполадок доступ предоставляется дляstorage.buckets.get
API-вызов:
Этоyaml
файл, который я использую:
imports:
- path: template.jinja
resources:
- name: template
type: template.jinja
properties:
storage:
bucket: qa-bucket-68586
и этоjinja
шаблон:
resources:
- name: storage-bucket
type: storage.v1.bucket
properties:
kind: storage#bucket
name: {{ properties["storage"]["bucket"] }}
location: EU
projectNumber: {{ env["project_number"] }}
storageClass: STANDARD
1 ответ
Судя по вашему вопросу, я попытался воспроизвести вашу проблему, но мне это не удалось. Это означает, что я мог создать сегмент хранилища с помощью DM.
Я использовал более простой подход:
resources:
- type: storage.v1.bucket
name: tb111
properties:
project: proj-name
name: tb111-1
Я не использовал никаких переменных для передачи имени проекта, так что, возможно, это сработало.
Результат был:
wb@cloudshell:~ (proj-name)$ gcloud deployment-manager deployments create deploy-test111 --config b1.yaml
The fingerprint of the deployment is b'fcW0t5_5DD75iIGyHz='
Waiting for create [operation-1626272156399-fe30b8a9-47-53bbc8c4]...done.
Create operation operation-1626272156399-fe30b8a9-47-53bbc8c4 completed successfully.
NAME TYPE STATE ERRORS INTENT
tb111 storage.v1.bucket COMPLETED []
Я могу видеть и получать к нему доступ из пользовательского интерфейса консоли.
Попробуйте для начала просто «жестко закодировать» имя вашего проекта в вашемjinja
файлы или используйте мои для начала, и это должно сработать.