Как добавить роль cloudsql в учетную запись службы через cloud-deploy-manager - PullRequest
1 голос
/ 28 июня 2019

Я пытаюсь добавить роль cloudsq.client в учетную запись службы через диспетчер развертывания облака.Как мне это сделать?

Я понял, что могу добавить примитивные роли, такие как роль / владелец, с pubsub.v1.topic resourceType.Посмотрите официальный пример Google:

resources:
- name: {{ env['name'] }}
  type: pubsub.v1.topic
  properties:
    topic: {{ env['name'] }}
  accessControl:
    gcpIamPolicy:
      bindings:
      - role: roles/pubsub.subscriber
        members:
        - "serviceAccount:$(ref.{{ properties['serviceAccountId'] }}.email)"

Но похоже, что это не работает с role/cloudsql.client: Там написано:

"message":"Role roles/cloudsql.client is not supported for this resource."

Я понял через МожетНе создайте роль cloudql для учетной записи службы через API , которую мне, скорее всего, придется использовать cloudresourcemanager.v1.project.Но просто замена ресурсов не работает:

resources:
- name: {{ env['name'] }}
  type: cloudresourcemanager.v1.project
  properties:
    projectId: {{ env['project'] }}
  accessControl:
    gcpIamPolicy:
      bindings:
      - role: roles/cloudsql.client
        members:
        - "serviceAccount:$(ref.{{ properties['serviceAccountId'] }}.email)"

Ошибка:

- code: RESOURCE_ERROR
  location: /deployments/test-cluster/resources/cloudsql-client-role
  message: '{"ResourceType":"cloudresourcemanager.v1.project","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"Service
    accounts cannot create projects without a parent.","status":"PERMISSION_DENIED","statusMessage":"Forbidden","requestPath":"https://cloudresourcemanager.googleapis.com/v1/projects","httpMethod":"POST"}}'

Я застрял, поэтому я ценю любую помощь, которую я могу получить!

1 Ответ

0 голосов
/ 03 июля 2019

Чтобы исправить это, вам нужно использовать следующий тип в ваших "ресурсах": https://github.com/GoogleCloudPlatform/deploymentmanager-samples/blob/ae293a455f90746fb2e25142dbc11250cc51aad3/community/cloud-foundation/templates/iam_member/iam_member.py#L30

Правильный способ добавить роль в учетную запись службы: getIamPolicy> setIamPolicy

Сначала вам нужно получить политики, затем вы сможете установить политики, этот процесс называется «связывание».

Пожалуйста, используйте следующий шаблон для добавления ролей в учетные записи служб:

https://github.com/GoogleCloudPlatform/deploymentmanager-samples/tree/master/community/cloud-foundation/templates/iam_member

Если у вас есть дополнительные вопросы, я был бы рад помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...