В шаблоне диспетчера развертывания Jinja я пытаюсь создать приемники журналов < / а>:
- name: {{ ALOGSINK }}
type: gcp-types/logging-v2:projects.sinks
properties:
sink: {{ ALOGSINK }}
parent: projects/{{ PROJECT }}
uniqueWriterIdentity: true
outputVersionFormat: V2
destination: storage.googleapis.com/{{ LOGGINGBUCKET }}
filter: >-
resource.type="deployment" AND
resource.labels.name="{{ DEPLOYMENT }}"
Я бы предпочел настроить их на использование "уникального идентификатора писателя "при записи в пункт назначения, сегмент GCS .
Это означает, что определенная учетная запись службы будет автоматически создана для каждого приемника журналов.
И необходимо предоставить этой учетной записи службы разрешения на запись в указанную (и уже существующую) корзину.
Итак, в разделе шаблона, который предоставляет разрешения, я мог бы ссылаться на удостоверения учетных записей служб (адреса электронной почты), используя $(ref.logsink>.writerIdentity)
.
А теперь самое интересное - единственный надежный способ добавить привязку к ACL корзины - использовать _ 3_ объекта BucketAccessControls
:
- name: {{ LOGGINGBUCKET }}-{{ ALOGSINK }}-acl
action: gcp-types/storage-v1:storage.BucketAccessControls.insert
properties:
bucket: $(ref.bucket-name)
entity: user-$(ref.{{ ALOGSINK }}.writerIdentity}
role: WRITER
И проблема в том, что writerIdentity
находится в форме serviceAccount:<email>
, но entity
, ожидаемый методом insert
, должен быть в форме user-<email>
.
И не могу найти способ приспособить первое ко второму.
group-email
). Одна из возможностей - создать группу в вашей организации GSuite и добавить учетную запись службы в эту группу. - person manasouza   schedule 04.07.2019