Развертывание 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.getAPI-вызов:

Это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файлы или используйте мои для начала, и это должно сработать.

Другие вопросы по тегам