amazon.aws.s3_bucket – Управление S3-бакетами в AWS, DigitalOcean, Ceph, Walrus, FakeS3 и StorageGRID
Примечание
Этот плагин входит в состав коллекции amazon.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install amazon.aws.
Для использования в плейбуке укажите: amazon.aws.s3_bucket.
Добавлено в версии 1.0.0: модуля amazon.aws
Описание
- Управление S3-бакетами в AWS, DigitalOcean, Ceph, Walrus, FakeS3 и StorageGRID.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется данный модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное указание параметров aws_access_key и profile устарело и будет сделано взаимоисключающим после 2022-06-01. псевдонимы: ec2_access_key, access_key | ||
| aws_ca_bundle путь | Путь к файлу сертификатов доверенных центров сертификации для проверки SSL-сертификатов. Используется только для модулей, основанных на boto3. Примечание: Файл с сертификатами считывается на стороне модуля и может потребоваться явное копирование с контроллера, если он не выполняется локально. | ||
| aws_config словарь | Словарь для модификации конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. Дополнительную конфигурацию boto см. по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto. | ||
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное указание параметров aws_secret_key и profile устарело и будет сделано взаимоисключающим после 2022-06-01. псевдонимы: ec2_secret_key, secret_key | ||
| ceph логическое |
| Включает совместимость API с Ceph. Учитывает подмножество S3 API, работающее с Ceph, чтобы обеспечить одинаковое поведение модуля, где это возможно. | |
| debug_botocore_endpoint_logs логическое |
| Использует логгер botocore.endpoint для анализа уникальных (а не всех) API-вызовов "resource:action" во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте callback aws_resource_action для вывода полного списка, созданного во время выполнения плейбука. Также можно использовать переменную окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. | |
| delete_public_access логическое добавлено в 1.3.0 amazon.aws |
| Удаляет конфигурацию блокировки публичного доступа из бакета. Этот параметр нельзя использовать вместе с параметром public_access. | |
| ec2_url строка | URL для подключения к EC2 или облаку Eucalyptus (по умолчанию модуль использует EC2-эндопоинты). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется. псевдонимы: aws_endpoint_url, endpoint_url | ||
| encryption строка |
| Описание по умолчанию шифрования на стороне сервера, применяемого к новым объектам в бакете. Для удаления шифрования необходимо явно установить encryption в 'none'. | |
| encryption_key_id строка | ID главного ключа KMS для использования по умолчанию для шифрования. Этот параметр разрешен, если encryption равно aws:kms. Если не указан, используется предоставленный AWS ключ KMS. | ||
| force логическое |
| При попытке удалить бакет, сначала удаляются все ключи (включая версии и delete-маркеры) в бакете (S3 бакет должен быть пустым для успешного удаления). | |
| name строка / обязательный | Имя S3 бакета. | ||
| policy json | JSON-политика в виде строки. | ||
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределяет aws_access_key, aws_secret_key и security_token, а поддержка их одновременного использования с profile устарела. aws_access_key, aws_secret_key и security_token будут сделаны взаимоисключающими с profile после 2022-06-01. псевдонимы: aws_profile | ||
| public_access словарь добавлено в 1.3.0 amazon.aws | Настройка блокировки публичного доступа для S3 бакета. Этот параметр нельзя использовать вместе с параметром delete_public_access. | ||
| block_public_acls логическое |
| Устанавливает значение BlockPublicAcls. | |
| block_public_policy логическое |
| Устанавливает значение BlockPublicPolicy. | |
| ignore_public_acls логическое |
| Устанавливает значение IgnorePublicAcls. | |
| restrict_public_buckets логическое |
| Устанавливает значение RestrictPublicAcls. | |
| purge_tags логическое |
| Удалить теги, отсутствующие в параметре tags. | |
| region строка | AWS регион. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | ||
| requester_pays логическое |
| В бакетах с оплатой получателем, получатель, а не владелец бакета, оплачивает стоимость запроса и загрузки данных из бакета. | |
| s3_url строка | S3 URL-адрес конечной точки для использования с DigitalOcean, Ceph, Eucalyptus и FakeS3 и т.п. По умолчанию предполагается AWS, если не указано. Для Walrus используйте FQDN конечной точки без схемы и пути. псевдонимы: S3_URL | ||
| security_token строка | AWS STS токен безопасности. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Одновременное указание параметров security_token и profile устарело и будет сделано взаимоисключающим после 2022-06-01. псевдонимы: aws_security_token, access_token | ||
| state строка |
| Создать или удалить S3 бакет. | |
| tags словарь | Словарь тегов для применения к бакету. | ||
| validate_certs логическое |
| Если установлено в "нет", SSL-сертификаты не будут проверены для boto-версий >= 2.6.0. | |
| versioning логическое |
| Включить или отключить версионирование (обратите внимание, что после включения версионирования его можно только приостановить). | |
Примечания
Примечание
- Если операции/API
requestPayment,policy,taggingилиversioningне реализованы на конечной точке, модуль не завершается ошибкой, если каждый параметр удовлетворяет следующему условию. requester_pays —False, policy, tags и versioning —None. - Если параметры не заданы в модуле, следующие переменные среды могут использоваться в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION,AWS_CA_BUNDLE - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в файле конфигурации boto
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
# Create a simple S3 bucket
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
# Create a simple S3 bucket on Ceph Rados Gateway
- amazon.aws.s3_bucket:
name: mys3bucket
s3_url: http://your-ceph-rados-gateway-server.xxx
ceph: true
# Remove an S3 bucket and any keys it contains
- amazon.aws.s3_bucket:
name: mys3bucket
state: absent
force: yes
# Create a bucket, add a policy from a file, enable requester pays, enable versioning and tag
- amazon.aws.s3_bucket:
name: mys3bucket
policy: "{{ lookup('file','policy.json') }}"
requester_pays: yes
versioning: yes
tags:
example: tag1
another: tag2
# Create a simple DigitalOcean Spaces bucket using their provided regional endpoint
- amazon.aws.s3_bucket:
name: mydobucket
s3_url: 'https://nyc3.digitaloceanspaces.com'
# Create a bucket with AES256 encryption
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
encryption: "AES256"
# Create a bucket with aws:kms encryption, KMS key
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
encryption: "aws:kms"
encryption_key_id: "arn:aws:kms:us-east-1:1234/5678example"
# Create a bucket with aws:kms encryption, default key
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
encryption: "aws:kms"
# Create a bucket with public policy block configuration
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
public_access:
BlockPublicAcls: true
IgnorePublicAcls: true
## keys == 'false' can be ommited, undefined keys defaults to 'false'
# BlockPublicPolicy: false
# RestrictPublicBuckets: false
# Delete public policy block from bucket
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
delete_public_access: true
Авторы
- Rob White (@wimnat)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/amazon/aws/s3_bucket_module.html