google.cloud.gcp_storage_default_object_acl – Создаёт GCP DefaultObjectACL
Примечание
Этот плагин входит в сборку google.cloud (версия 1.0.2).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Для использования в книге задач укажите: google.cloud.gcp_storage_default_object_acl.
Обзор
- Ресурсы DefaultObjectAccessControls представляют списки управления доступом (ACL), применяемые к новому объекту в хранилище Google Cloud Storage, когда для этого объекта не было указано ACL. ACL позволяют указать, кто имеет доступ к содержимому вашего хранилища и в какой степени.
- Существуют две роли, которые могут быть назначены сущности: READERS могут получить объект, хотя свойство acl не будет раскрыто.
- OWNERS являются READERS, и они могут получить свойство acl, обновить объект и вызвать все методы objectAccessControls для объекта. Владелец объекта всегда является OWNER.
- Дополнительную информацию см. в разделе Управление доступом с оговоркой, что этот API использует READER и OWNER вместо READ и FULL_CONTROL.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. |
| bucket словарь / обязательно | Имя хранилища. Это поле представляет ссылку на ресурс Bucket в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'name' и значением имени вашего ресурса. Во-вторых, вы можете добавить `register: name-of-resource` к задаче gcp_storage_bucket, а затем установить это поле bucket в "{{ name-of-resource }}" | |
| entity строка / обязательно | Сущность, владеющая разрешением, в одном из следующих форматов: * user-{{userId}} * user-{{email}} (например, "user-liz@example.com") * group-{{groupId}} * group-{{email}} (например, "group-example@googlegroups.com") * domain-{{domain}} (например, "domain-example.com") * project-team-{{projectId}} * allUsers * allAuthenticatedUsers. | |
| env_type строка | Указывает, в какой среде Ansible вы выполняете этот модуль. Это не должно устанавливаться, если вы не знаете, что делаете. Это изменяет только строку User Agent для любых запросов API. | |
| object строка | Имя объекта, если он применяется к объекту. | |
| project строка | Проект Google Cloud Platform для использования. | |
| role строка / обязательно | Разрешение доступа для сущности. Некоторые допустимые варианты: "OWNER", "READER" | |
| scopes список / элементы=строка | Массив используемых областей. | |
| service_account_contents jsonarg | Содержание JSON-файла учетной записи службы, либо в словаре, либо как JSON-строка, которая его представляет. | |
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | Путь к JSON-файлу учетной записи службы, если тип serviceaccount выбран как тип. | |
| state строка |
| Необходимо ли существование данного объекта в GCP |
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/storage/docs/json_api/v1/defaultObjectAccessControls
- Официальная документация: https://cloud.google.com/storage/docs/access-control/create-manage-lists
- для аутентификации можно установить service_account_file с помощью переменной среды
gcp_service_account_file. - для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в книге задач не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a bucket
google.cloud.gcp_storage_bucket:
name: "{{ resource_name }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: bucket
- name: create a default object acl
google.cloud.gcp_storage_default_object_acl:
bucket: "{{ bucket }}"
entity: OWNER:user-alexstephen@google.com
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращено | Описание | |
|---|---|---|---|
| bucket словарь | success | Имя хранилища. | |
| domain строка | success | Домен, связанный с сущностью. | |
| email строка | success | Адрес электронной почты, связанный с сущностью. | |
| entity строка | success | Сущность, владеющая разрешением, в одном из следующих форматов: * user-{{userId}} * user-{{email}} (например, "user-liz@example.com") * group-{{groupId}} * group-{{email}} (например, "group-example@googlegroups.com") * domain-{{domain}} (например, "domain-example.com") * project-team-{{projectId}} * allUsers * allAuthenticatedUsers . | |
| entityId строка | success | Идентификатор сущности. | |
| generation целое число | success | Генерация содержимого объекта, если она применена к объекту. | |
| id строка | success | Идентификатор записи управления доступом. | |
| object строка | success | Имя объекта, если оно применено к объекту. | |
| projectTeam сложное | success | Команда проекта, связанная с сущностью. | |
| projectNumber строка | success | Команда проекта, связанная с сущностью. | |
| team строка | success | Команда. | |
| role строка | success | Разрешение доступа для сущности. | |
Авторы
- Google Inc. (@googlecloudplatform)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/google/cloud/gcp_storage_default_object_acl_module.html