Модуль amazon.aws.s3_bucket — управление бакетами S3 в AWS, DigitalOcean, Ceph, Walrus, FakeS3 и StorageGRID
Примечание
Этот модуль входит в коллекцию amazon.aws (версия 11.3.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install amazon.aws. Для использования этого модуля требуются дополнительные зависимости. Подробнее см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: amazon.aws.s3_bucket.
Добавлено в amazon.aws 1.0.0
Обзор
- Управление бакетами S3.
- Совместим с AWS, DigitalOcean, Ceph, Walrus, FakeS3 и StorageGRID.
- При использовании сервисов, отличных от AWS, следует указать
endpoint_url.
Требования
Перечисленные ниже зависимости должны быть установлены на хосте, на котором выполняется этот модуль.
- python >= 3.6
- boto3 >= 1.35.0
- botocore >= 1.35.0
Параметры
Параметр | Комментарии |
|---|---|
accelerate_enabled boolean добавлено в amazon.aws 8.1.0 | Включает Amazon S3 Transfer Acceleration: отправляемые данные будут передаваться в Amazon S3 по оптимизированному сетевому маршруту. Transfer Acceleration недоступна в AWS GovCloud (US). См. https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/govcloud-s3.html#govcloud-S3-diffs. Варианты:
|
access_key псевдонимы: aws_access_key_id, aws_access_key string | Идентификатор ключа доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные окружения Параметры aws_access_key и profile являются взаимоисключающими. Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для согласованности с AWS botocore SDK. |
account_regional boolean добавлено в amazon.aws 11.3.0 | Определяет, будет ли бакет создан в пространстве имён аккаунта и региона вместо глобального пространства имён. Если установлено значение Можно задать только при создании бакета. Для существующих бакетов изменить нельзя. Не поддерживается для бакетов каталогов. Требуется botocore >= 1.42.67 Варианты:
|
acl string добавлено в amazon.aws 3.1.0 | Предустановленный ACL, применяемый к бакету. Если для владельца бакета используется параметр принудительного применения в настройках S3 Object Ownership, ACL отключаются и больше не влияют на разрешения. Если для параметра Варианты:
|
aws_ca_bundle path | Путь к пакету сертификатов центра сертификации, используемому для проверки сертификатов SSL. Также можно использовать переменную окружения |
aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры приведены в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
bucket_key_enabled boolean добавлено в amazon.aws 4.1.0 | Включает ключи бакета S3 для SSE-KMS у новых объектов. Дополнительные сведения см. в документации AWS: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html. Шифрование с помощью ключа бакета поддерживается только если Варианты:
|
ceph псевдонимы: rgw boolean | Включает совместимость API с Ceph RGW. По возможности модуль работает одинаково, учитывая подмножество API S3, поддерживаемое Ceph. Требуется Варианты:
|
debug_botocore_endpoint_logs boolean | Использует регистратор Также можно использовать переменную окружения Варианты:
|
delete_object_ownership boolean добавлено в amazon.aws 2.0.0 | Удаляет параметры управления владельцем бакета. Этот параметр нельзя использовать вместе с определением Варианты:
|
delete_public_access boolean добавлено в amazon.aws 1.3.0 | Удаляет конфигурацию блокировки публичного доступа к бакету. Этот параметр нельзя использовать вместе с определением Варианты:
|
dualstack boolean добавлено в amazon.aws 6.0.0 | Включает конечные точки Amazon S3 Dual-Stack, позволяя обмениваться данными с S3 через IPv4 и IPv6. Несовместим с Варианты:
|
encryption string | Задает шифрование на стороне сервера по умолчанию для новых объектов в бакете. Чтобы отключить шифрование на стороне сервера, явно укажите для encryption значение «none». Примечание. С января 2023 года Amazon S3 не поддерживает отключение шифрования в бакетах S3. Варианты:
|
encryption_key_id string | Идентификатор главного ключа KMS для шифрования по умолчанию. Если параметр не указан, будет использоваться предоставленный AWS ключ KMS. Этот параметр поддерживается только если |
endpoint_url псевдонимы: aws_endpoint_url string | URL для подключения вместо конечных точек AWS по умолчанию. Этот параметр можно использовать для подключения к другим сервисам, совместимым с AWS, однако коллекции amazon.aws и community.aws проходят тестирование только с AWS. Также можно использовать переменную окружения |
force boolean | При удалении бакета сначала удаляет все ключи (включая версии и маркеры удаления) из бакета. Для успешного удаления бакет S3 должен быть пустым. Варианты:
|
inventory list / элементы=dictionary | Включает S3 Inventory — ежедневное или еженедельное сохранение списка объектов бакета S3 и соответствующих им метаданных. |
|
destination dictionary / обязательный |
Содержит сведения о месте публикации результатов инвентаризации. |
|
account_id string |
Идентификатор аккаунта, которому принадлежит целевой бакет S3. Если идентификатор аккаунта не указан, владелец не проверяется перед экспортом данных. |
|
bucket string / обязательный |
Имя ресурса Amazon (ARN) бакета, в который будут публиковаться результаты инвентаризации. |
|
format string / обязательный |
Задает формат выходных данных результатов инвентаризации. Варианты:
|
|
prefix string |
Префикс, добавляемый в начало всех результатов инвентаризации. |
|
filter string |
Префикс, который должен иметь объект, чтобы попасть в результаты инвентаризации. |
|
id string / обязательный |
Идентификатор конфигурации инвентаризации. |
|
included_object_versions string / обязательный |
Версии объектов, включаемые в список инвентаризации. Если задано значение All, список включает все версии объектов, а также связанные с версиями поля VersionId, IsLatest и DeleteMarker. Если задано значение Current, эти поля, связанные с версиями, в список не включаются. Варианты:
|
|
optional_fields list / элементы=string |
Содержит необязательные поля, включаемые в результаты инвентаризации. Варианты:
|
|
schedule string / обязательный |
Задает расписание формирования результатов инвентаризации. Варианты:
|
logging dictionary добавлено в amazon.aws 11.3.0 | Настраивает ведение журналов бакета S3 для отслеживания запросов на доступ к бакету. Чтобы отключить ведение журналов, явно задайте для Примечание. Для целевого бакета необходимо настроить соответствующие разрешения. Этот модуль НЕ настраивает ACL целевого бакета автоматически. Сведения о необходимых разрешениях см. в документации AWS. |
|
target_bucket string / обязательный |
Имя бакета, в котором Amazon S3 должен хранить файлы журнала доступа к серверу. |
|
target_prefix string |
Префикс для всех ключей объектов журнала. По умолчанию: |
name string / обязательный | Имя бакета S3. |
object_lock_default_retention dictionary добавлено в amazon.aws 8.1.0 | Конфигурация Object Lock по умолчанию, применяемая к каждому новому объекту, помещенному в указанный бакет. Необходимо включить Политику хранения Object Lock нельзя удалить. |
|
days integer |
Количество дней, задаваемое для периода хранения по умолчанию. Взаимоисключающий параметр с |
|
mode string / обязательный |
Тип режима хранения. Варианты:
|
|
years integer |
Количество лет, задаваемое для периода хранения по умолчанию. Взаимоисключающий параметр с |
object_lock_enabled boolean добавлено в amazon.aws 5.3.0 | Определяет, будет ли включена функция S3 Object Lock. При создании нового бакета по умолчанию используется значение Варианты:
|
object_ownership string добавлено в amazon.aws 2.0.0 | Настраивает управление владельцем бакета.
Этот параметр нельзя использовать вместе с определением
Примечание. В конце апреля 2023 года Amazon обновила значение по умолчанию на Варианты:
|
policy json | Политика JSON в виде строки. Укажите строку |
profile псевдонимы: aws_profile string | Именованный профиль AWS для аутентификации. Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную окружения Параметр profile является взаимоисключающим с параметрами aws_access_key, aws_secret_key и session_token. |
public_access dictionary добавлено в amazon.aws 1.3.0 | Настраивает блокировку публичного доступа к бакету S3. Этот параметр нельзя использовать вместе с Примечание. В конце апреля 2023 года Amazon обновила настройки по умолчанию, включив блокировку публичного доступа. Несмотря на то, что значения по умолчанию этого модуля не изменились, для включения ACL публичного доступа необходимо явно передать параметр |
|
block_public_acls boolean |
Задает значение BlockPublicAcls. Варианты:
|
|
block_public_policy boolean |
Задает значение BlockPublicPolicy. Варианты:
|
|
ignore_public_acls boolean |
Задает значение IgnorePublicAcls. Варианты:
|
|
restrict_public_buckets boolean |
Задает значение RestrictPublicAcls. Варианты:
|
purge_tags boolean | Если Если параметр Ключи тегов, начинающиеся с Варианты:
|
region псевдонимы: aws_region string | Регион AWS, который следует использовать. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменную среды Дополнительную информацию см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. |
requester_pays boolean | В бакетах с оплатой со стороны запрашивающего стоимость запроса и загрузки данных из бакета оплачивает запрашивающий, а не владелец бакета. Варианты:
|
secret_key псевдонимы: aws_secret_access_key, aws_secret_key string | Секретный ключ доступа AWS. Дополнительную информацию о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные среды Параметры secret_key и profile являются взаимоисключающими. Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для согласованности с AWS SDK botocore. |
session_token псевдонимы: aws_session_token string | Токен сеанса AWS STS для использования с временными учетными данными. Дополнительную информацию о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменную среды Параметры session_token и profile являются взаимоисключающими. |
state string | Создать или удалить бакет S3. Варианты:
|
tags псевдонимы: resource_tags dictionary | Словарь с тегами, которые будут применены к ресурсу. Если параметр |
validate_bucket_name boolean добавлен в amazon.aws 3.1.0 | Следует ли проверять соответствие имени бакета правилам именования AWS S3. По умолчанию включено; параметр можно отключить для серверных частей S3, которые не применяют эти правила. См. https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html. Варианты:
|
validate_certs boolean | Если задано значение Настоятельно не рекомендуется устанавливать validate_certs=false; вместо этого рассмотрите возможность задать aws_ca_bundle. Варианты:
|
versioning boolean | Включено ли управление версиями (обратите внимание: после включения управление версиями можно только приостановить). Варианты:
|
Примечания
Примечание
- Если конечная точка не реализует операции/API
requestPayment,policy,taggingилиversioning, модуль не завершится с ошибкой, если для каждого параметра выполняется следующее условие.requester_paysравноfalse,policy,tagsиversioningравныNone. - Для Walrus в
endpoint_urlследует указать FQDN конечной точки без схемы и пути. - Внимание: Для модулей переменные среды и файлы конфигурации считываются из контекста Ansible «host», а не из контекста «controller». Поэтому может потребоваться явно скопировать файлы на «host». Для плагинов поиска и подключения переменные среды и файлы конфигурации считываются из контекста Ansible «controller», а не из контекста «host».
- Используемый Ansible пакет AWS SDK (boto3) также может считывать значения учетных данных и других параметров по умолчанию, например региона, из файлов конфигурации в контексте Ansible «host» (обычно
~/.aws/credentials). Дополнительную информацию см. по адресу https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
# 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
endpoint_url: http://your-ceph-rados-gateway-server.xxx
ceph: true
# Create a bucket with account-regional namespace
- amazon.aws.s3_bucket:
name: my-bucket-111122223333-us-east-1-an
state: present
account_regional: true
# Remove an S3 bucket and any keys it contains
- amazon.aws.s3_bucket:
name: mys3bucket
state: absent
force: true
# 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: true
versioning: true
tags:
example: tag1
another: tag2
# Create a simple DigitalOcean Spaces bucket using their provided regional endpoint
- amazon.aws.s3_bucket:
name: mydobucket
endpoint_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, Bucket key
- amazon.aws.s3_bucket:
name: mys3bucket
bucket_key_enabled: true
encryption: "aws:kms"
# 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:
block_public_acls: true
ignore_public_acls: true
## keys == 'false' can be omitted, undefined keys defaults to 'false'
# block_public_policy: false
# restrict_public_buckets: false
# Delete public policy block from bucket
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
delete_public_access: true
# Create a bucket with object ownership controls set to ObjectWriter
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
object_ownership: ObjectWriter
# Delete onwership controls from bucket
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
delete_object_ownership: true
# Delete a bucket policy from bucket
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
policy: "null"
# This example grants public-read to everyone on bucket using ACL
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
acl: public-read
# Enable transfer acceleration
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
accelerate_enabled: true
# Default Object Lock retention
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
object_lock_enabled: true
object_lock_default_retention:
mode: governance
days: 1
# Bucket with inventory configuration:
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
inventory:
- id: mys3bucket-inventory-id
destination:
bucket: "arn:aws:s3:::mys3inventorybucket"
optional_fields:
- "Size"
included_object_versions: "All"
schedule: "Weekly"
# Enable bucket logging
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
logging:
target_bucket: my-logging-bucket
target_prefix: logs/mys3bucket/
# Disable bucket logging
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
logging:
target_bucket: ""
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
accelerate_enabled boolean | |
acl dictionary | |
bucket_inventory list / элементы=string | Конфигурация инвентаризации бакета S3. Возвращается: если Пример: |
encryption dictionary | Шифрование объектов бакета S3 на стороне сервера. Возвращается: если Пример: |
logging dictionary | Конфигурация журналирования бакета S3. Возвращается: если Пример: |
name string | |
object_lock_default_retention dictionary | Политика хранения объектов с блокировкой в бакете S3. Возвращается: если Пример: |
object_lock_enabled boolean | |
object_ownership string | Настройки владения объектами бакета S3. Возвращается: если Пример: |
policy dictionary | Политика бакета S3. Возвращается: если Пример: |
public_access_block dictionary | Конфигурация блокировки публичного доступа к бакету. Возвращается: если Пример: |
|
PublicAccessBlockConfiguration dictionary |
Конфигурация PublicAccessBlock, действующая в данный момент для этого бакета Amazon S3. Возвращается: при успешном выполнении |
|
BlockPublicAcls boolean |
Указывает, следует ли Amazon S3 блокировать списки управления доступом (ACL), предоставляющие публичный доступ к этому бакету и его объектам. Возвращается: при успешном выполнении |
|
BlockPublicPolicy boolean |
Указывает, следует ли Amazon S3 блокировать политики бакета, предоставляющие публичный доступ к этому бакету. Возвращается: при успешном выполнении |
|
IgnorePublicAcls boolean |
Указывает, следует ли Amazon S3 игнорировать публичные ACL для этого бакета и его объектов. Возвращается: при успешном выполнении |
|
RestrictPublicBuckets boolean |
Указывает, следует ли Amazon S3 ограничивать публичные политики бакета для этого бакета. Возвращается: при успешном выполнении |
requester_pays boolean | Указывает, что плата за запрос успешно списана с запрашивающего. Возвращается: если Пример: |
tags dictionary | |
versioning dictionary | Конфигурация управления версиями бакета S3. Возвращается: если Пример: |
|
MfaDelete string |
Указывает, включено ли удаление с MFA в конфигурации управления версиями бакета. Возвращается: если |
|
Versioning string |
Состояние управления версиями бакета. Возвращается: всегда |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/s3_bucket_module.html