Я использую диспетчер развертывания, чтобы установить политику IAM для существующей публикации / подтемы. Я не хочу приобретать ее и не могу создать ее с помощью диспетчера развертывания (поскольку он существует). Поэтому я хочу установить политику для существующего ресурса
Я могу сделать это с ведрами, но документы действительно сбивают с толку, и я не могу найти правильные методы для ведер
Я хочу сделать это (привязки уровня ресурса) для темы вместо корзины:
resources:
- name: mybucket
action: gcp-types/storage-v1:storage.buckets.setIamPolicy
properties:
bucket: mybucket
bindings:
- role: roles/storage.admin
members:
- "serviceAccount:sdfsfds@sdfsdf.com"
Я могу найти только gcp-types/pubsub-v1:projects.topics.setIamPolicy
, который выглядит как на уровне проекта? Какой правильный API-интерфейс для настройки политики iam по определенной теме?
API-интерфейсы Google кажутся действительно несовместимыми - эти методы тоже эквивалентны? Документы сбивают с толку https://cloud.google.com/storage/docs/json_api/v1/buckets/setIamPolicy https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics/setIamPolicy
Я пытался сделать это, но получил ошибку:
- name: mytopic
action: gcp-types/pubsub-v1:pubsub.projects.topics.setIamPolicy
properties:
resource: mytopic
bindings:
- role: roles/pubsub.admin
members:
- "serviceAccount:ssdfsdf@sdfsdf.com"
Получение ошибки:
message: '{"ResourceType":"gcp-types/pubsub-v1:pubsub.projects.topics.setIamPolicy","ResourceErrorCode":"400","ResourceErrorMessage":{"code":400,"message":"Invalid
JSON payload received. Unknown name \"bindings\": Cannot find field.","status":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com/google.rpc.BadRequest","fieldViolations":[{"description":"Invalid
JSON payload received. Unknown name \"bindings\": Cannot find field."}]}],"statusMessage":"Bad
Request","requestPath":"https://pubsub.googleapis.com/v1/projects/myproject/topics/mytopic:setIamPolicy","httpMethod":"POST"}}
Когда я пыталсяprojects.topics.setIamPolicy Я получил:
- code: COLLECTION_NOT_FOUND
message: Collection 'projects.topics.setIamPolicy' not found in discovery doc 'https://pubsub.googleapis.com/$discovery/rest?version=v1'