Terraform Module, который создает ведро S3 на AWS с всеми (или почти всеми) функциями, предоставленными Terraform AWS -провайдером.
Эти функции конфигураций ковша S3 поддерживаются:
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket "
acl = " private "
control_object_ownership = true
object_ownership = " ObjectWriter "
versioning = {
enabled = true
}
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true # Required for ALB logs
attach_lb_log_delivery_policy = true # Required for ALB/NLB logs
}
Иногда вам нужен способ условного создания ресурсов S3, но Terraform не позволяет использовать count
внутри блока module
, поэтому решение состоит в том, чтобы указать аргумент create_bucket
.
# This S3 bucket will not be created
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
create_bucket = false
# ... omitted
}
variable "..." { type = any }
В Terragrunt есть ошибка #1211, связанная с тем, как переменные any
передаются в Terraform.
Этот модуль решает эту проблему, поддерживая jsonencode()
-String в дополнение к ожидаемому типу ( list
или map
).
В terragrunt.hcl
вы можете написать:
inputs = {
bucket = " foobar " # `bucket` has type `string`, no need to jsonencode()
cors_rule = jsonencode ([ ... ]) # `cors_rule` has type `any`, so `jsonencode()` is required
}
Пользователи этого модуля Terraform могут создавать несколько аналогичных ресурсов, используя мета-аргумент for_each
в блоке module
, который стал доступен в Terraform 0.13.
Пользователи Terragrunt могут достичь аналогичных результатов, используя модули, представленные в каталоге оберток, если они предпочитают уменьшить количество файлов конфигурации.
Имя | Версия |
---|---|
терраформ | > = 1,0 |
AWS | > = 5,70 |
Имя | Версия |
---|---|
AWS | > = 5,70 |
Нет модулей.
Имя | Тип |
---|---|
aws_s3_bucket.this | ресурс |
aws_s3_bucket_accelerate_configuration.this | ресурс |
aws_s3_bucket_acl.this | ресурс |
aws_s3_bucket_analytics_configuration.this | ресурс |
aws_s3_bucket_cors_configuration.this | ресурс |
aws_s3_bucket_intelligent_tiering_configuration.this | ресурс |
aws_s3_bucket_inventory.this | ресурс |
aws_s3_bucket_lifecycle_configuration.this | ресурс |
aws_s3_bucket_logging.this | ресурс |
aws_s3_bucket_metric.this | ресурс |
aws_s3_bucket_object_lock_configuration.this | ресурс |
aws_s3_bucket_ownership_controls.his | ресурс |
aws_s3_bucket_policy.this | ресурс |
aws_s3_bucket_public_access_block.this | ресурс |
aws_s3_bucket_replication_configuration.this | ресурс |
aws_s3_bucket_request_payment_configuration.this | ресурс |
aws_s3_bucket_server_side_encryption_configuration.this | ресурс |
aws_s3_bucket_versioning.this | ресурс |
aws_s3_bucket_website_configuration.this | ресурс |
aws_caller_identity.current | источник данных |
aws_canonical_user_id.this | источник данных |
aws_iam_policy_document.access_log_delivery | источник данных |
aws_iam_policy_document.combined | источник данных |
aws_iam_policy_document.deny_incorrect_encryption_headers | источник данных |
aws_iam_policy_document.deny_incorrect_kms_key_sse | источник данных |
aws_iam_policy_document.deny_insecure_transport | источник данных |
aws_iam_policy_document.deny_unencrypted_object_uploads | источник данных |
aws_iam_policy_document.elb_log_delivery | источник данных |
aws_iam_policy_document.inventory_and_analytics_destination_policy | источник данных |
aws_iam_policy_document.lb_log_delivery | источник данных |
aws_iam_policy_document.require_latest_tls | источник данных |
aws_partition.current | источник данных |
aws_region.current | источник данных |
Имя | Описание | Тип | По умолчанию | Необходимый |
---|---|---|---|---|
acceleration_status | (Необязательно) Устанавливает конфигурацию ускорения существующего ведра. Можно включить или приостановить. | string | null | нет |
access_log_delivery_policy_source_accounts | (Необязательно) Список идентификаторов учетной записи AWS должен быть разрешен для доставки журналов доступа к этому ведру. | list(string) | [] | нет |
access_log_delivery_policy_source_buckets | (Необязательно) Список S3 Bucket Arns, который должен быть разрешен для доставки журналов доступа к этому ведру. | list(string) | [] | нет |
acl | (Необязательно) Консервированный ACL для применения. Конфликт с grant | string | null | нет |
ALLED_KMS_KEY_ARN | ARN of KMS -ключ, который должен быть разрешен в PutObject | string | null | нет |
Analytics_configuration | Карта, содержащая конфигурацию аналитики ведра. | any | {} | нет |
analytics_eshust_source_destination | Является ли ведро источника аналитики также ведром назначения. | bool | false | нет |
analytics_source_account_id | Идентификатор учетной записи аналитики. | string | null | нет |
analytics_source_bucket_arn | Аналитическое исходное ведро Arn. | string | null | нет |
ATTH_ACCESS_LOG_DELIVERY_POLICY | Управление, если S3 Bucket должен иметь политику доставки журнала доступа S3 | bool | false | нет |
attle_analytics_destination_policy | Управление, если S3 Bucket должен иметь прикрепленную политику назначения для анализа ведра. | bool | false | нет |
ATTHE_DENY_INCRECT_ENCRYPTION_HEADERSERS | Управление, если S3 Bucket должен отказать в неправильной политике заголовков шифрования. | bool | false | нет |
ATTRACE_DENY_INCRECT_KMS_KEY_SSE | Управление, если S3 Bucket Policy должна отрицать использование неправильного KMS Key SSE. | bool | false | нет |
ATTACE_DENY_INSECURE_TRANSPORT_POLICY | Управление, если S3 Bucket должен иметь прикрепленную политику транспорта без SSL | bool | false | нет |
ATTRACE_DENY_UNENCRYPTED_OBJECT_UPLOADS | Управление, если S3 Bucket должен отказать в прикрепленной политике Uncrypted Dopload Object. | bool | false | нет |
ATTH_ELB_LOG_DELIVERY_POLICY | Управление, если S3 Bucket должен иметь политику доставки журнала ELB | bool | false | нет |
attle_inventory_destination_policy | Управление, если S3 Bucket должна иметь прикрепленную политику назначения для инвентаря. | bool | false | нет |
ATTH_LB_LOG_DELIVERY_POLICY | Управление, если S3 Bucket должен иметь политику доставки журнала ALB/NLB | bool | false | нет |
attach_policy | Управление, если S3 Bucket должна иметь прикрепленную политику ведра (установить для true стоимости policy в качестве политики ведра) | bool | false | нет |
attle_public_policy | Управление, если будет прикреплена политика общедоступного ведра, определяющую пользователь (установите на false , чтобы позволить UPSTREAM применить по умолчанию к ковше) | bool | true | нет |
ATTH_REQUIRE_LATEST_TLS_POLICY | Управление, если S3 Bucket требует последней версии TLS | bool | false | нет |
block_public_acls | Должен ли Amazon S3 заблокировать общественные ACL для этого ведра. | bool | true | нет |
block_public_policy | Должен ли Amazon S3 заблокировать политики общественного ведра для этого ведра. | bool | true | нет |
ведро | (Необязательно, заставляет новый ресурс) Имя ведра. Если опущены, Terraform назначит случайное, уникальное имя. | string | null | нет |
bucket_prefix | (Необязательно, принуждает новый ресурс) создает уникальное имя ведра, начиная с указанного префикса. Конфликт с ведром. | string | null | нет |
CONTROL_OBJECT_OWNERSHIP | Управлять ли контроль за владением ковшом S3 на этом ведре. | bool | false | нет |
cors_rule | Список карт, содержащих правила для совместного использования ресурсов. | any | [] | нет |
create_bucket | Управление, если должно быть создано ведро S3 | bool | true | нет |
weder_bucket_owner | Идентификатор учетной записи ожидаемого владельца ведра | string | null | нет |
force_destroy | (Необязательно, по умолчанию: false) Логин, который указывает на все объекты, должны быть удалены из ведра, чтобы ведро могло быть уничтожено без ошибок. Эти объекты не подлежат восстановлению. | bool | false | нет |
грант | Грант политики ACL. Конфликты с acl | any | [] | нет |
Ignore_public_acls | Должен ли Amazon S3 игнорировать публичные ACL для этого ведра. | bool | true | нет |
Intelligent_tiering | Карта, содержащая интеллектуальную уровни конфигурации. | any | {} | нет |
Inventory_configuration | Карта, содержащая конфигурацию инвентаризации S3. | any | {} | нет |
inventory_self_source_destination | Независимо от того, является ли ведро источника инвентаря также ведром назначения. | bool | false | нет |
inventory_source_account_id | Идентификатор учетной записи источника инвентаря. | string | null | нет |
inventory_source_bucket_arn | Источник инвентаря ведро Арн. | string | null | нет |
LifeCycle_Rule | Список карт, содержащих конфигурацию управления жизненным циклом объекта. | any | [] | нет |
регистрация | Карта, содержащая конфигурацию ведения ведра доступа. | any | {} | нет |
metric_configuration | Карта, содержащая конфигурацию метрики ведра. | any | [] | нет |
object_lock_configuration | Карта, содержащая конфигурацию блокировки объектов S3. | any | {} | нет |
object_lock_enabled | Должно ли включить конфигурацию блокировки объекта. | bool | false | нет |
Object_Ownership | Собственность объекта. Допустимые значения: BucketOwnerencred, BucketOwnerPReerred или ObjectWriter. «BucketOwnerEncred»: ACL отключены, а владелец ведра автоматически владеет и имеет полный контроль над каждым объектом в ведре. «BucketOwnerPreferred»: объекты, загруженные в ковш изменение владельца владельцу ведра, если объекты загружаются с консервированным ACL-ACL, владельцем владельца, владельца. «Объект-автора»: учетная запись загрузки будет владеть объектом, если объект загружен с консервированным ACL-ACL, владельцем владельца, владельца. | string | "BucketOwnerEnforced" | нет |
владелец | Имя и идентификатор владельца владельца ведра. Конфликты с acl | map(string) | {} | нет |
политика | (Необязательно) Действительный документ о политике ведра JSON. Обратите внимание, что если политический документ недостаточно специфичен (но все же действителен), Terraform может рассматривать политику как постоянно изменяющуюся в плане Terraform. В этом случае, пожалуйста, убедитесь, что вы используете словесную/конкретную версию политики. Для получения дополнительной информации о создании политических документов AWS IAM с Terraform см. Руководство по политике AWS IAM. | string | null | нет |
PUTIN_KHUYLO | Согласны ли вы с тем, что Путин не уважает украинский суверенитет и территориальную целостность? Более подробная информация: https://en.wikipedia.org/wiki/putin_khuylo! | bool | true | нет |
Replication_configuration | Карта, содержащая конфигурацию репликации перекрестной региона. | any | {} | нет |
request_payer | (Необязательно) Указывает, кто должен нести стоимость передачи данных Amazon S3. Может быть либо BucketOwner, либо запрашивателем. По умолчанию владелец ведра S3 может понести затраты на любую передачу данных. См. Записи платит руководство по разработчику ведра для получения дополнительной информации. | string | null | нет |
RESTRICT_PUBLIC_BUCKETS | Должен ли Amazon S3 ограничить политику общественного ведра для этого ведра. | bool | true | нет |
server_side_encryption_configuration | Карта, содержащая конфигурацию шифрования на стороне сервера. | any | {} | нет |
теги | (Необязательно) Картирование тегов для назначения ведро. | map(string) | {} | нет |
transition_default_minimum_object_size | Поведение минимального размера объекта по умолчанию применяется к конфигурации жизненного цикла. Допустимые значения: all_storage_classes_128k (по умолчанию), varies_by_storage_class | string | null | нет |
версии | Карта, содержащая конфигурацию версий. | map(string) | {} | нет |
веб -сайт | Карта, содержащая статическое хостинг веб-сайта или конфигурацию перенаправления. | any | {} | нет |
Имя | Описание |
---|---|
s3_bucket_arn | Арн ведро. Будет формат Arn: AWS: S3 ::: BucketName. |
s3_bucket_bucket_domain_name | Ведро доменное имя. Будет формат bucketName.s3.amazonaws.com. |
s3_bucket_bucket_regional_domain_name | Ковша, специфичное доменное имя. Имя домена ведра, включая имя региона, пожалуйста, обратитесь к формату. ПРИМЕЧАНИЕ. CloudFront AWS позволяет определять конкретную конечную точку S3 при создании Origin S3, это предотвратит перенаправление проблем с CloudFront на URL-адрес S3 Origin. |
s3_bucket_hosted_zone_id | Идентификатор зоны маршрута 53 для региона этого ведра. |
s3_bucket_id | Имя ведра. |
s3_bucket_lifecycle_configuration_rules | Правила жизненного цикла ведра, если ведро настроено с правилами жизненного цикла. Если нет, это будет пустая строка. |
s3_bucket_policy | Политика ведра, если ведро настроено с политикой. Если нет, это будет пустая строка. |
s3_bucket_region | Область AWS, в котором находится это ведро. |
s3_bucket_website_domain | Домен конечной точки веб -сайта, если ведро настроено на веб -сайт. Если нет, это будет пустая строка. Это используется для создания записей маршрута 53 псевдонима. |
s3_bucket_website_endpoint | Конечная точка веб -сайта, если ведро настроено с веб -сайтом. Если нет, это будет пустая строка. |
Модуль поддерживается Антоном Бабенко с помощью этих удивительных участников.
Apache 2 Licensed. Смотрите лицензию для полной информации.