Módulo Terraform, que cria o S3 Bucket na AWS com todos (ou quase todos) recursos fornecidos pelo Provedor da Terraform AWS.
Esses recursos das configurações de balde S3 são suportados:
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
}
Às vezes, você precisa ter uma maneira de criar recursos S3 condicionalmente, mas o Terraform não permite usar count
bloqueios dentro module
; portanto, a solução é especificar o argumento 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 }
Há um bug #1211 em Terragrant relacionado à maneira como as variáveis do any
são passadas para a Terraform.
Este módulo resolve esse problema suportando jsonencode()
-String, além do tipo esperado ( list
ou map
).
Em terragrunt.hcl
você pode escrever:
inputs = {
bucket = " foobar " # `bucket` has type `string`, no need to jsonencode()
cors_rule = jsonencode ([ ... ]) # `cors_rule` has type `any`, so `jsonencode()` is required
}
Os usuários deste módulo Terraform podem criar vários recursos semelhantes usando o meta-argumento for_each
no bloco module
, que ficou disponível no Terraform 0.13.
Os usuários do Terragrant podem obter resultados semelhantes usando os módulos fornecidos no diretório Wrappers, se preferirem reduzir a quantidade de arquivos de configuração.
Nome | Versão |
---|---|
Terraform | > = 1.0 |
AWS | > = 5,70 |
Nome | Versão |
---|---|
AWS | > = 5,70 |
Sem módulos.
Nome | Tipo |
---|---|
aws_s3_bucket.This | recurso |
AWS_S3_BUCKET_ACCELERE_CONFIGURATION.THIS | recurso |
aws_s3_bucket_acl.This | recurso |
aws_s3_bucket_analytics_configuration.This | recurso |
aws_s3_bucket_cors_configuration.This | recurso |
aws_s3_bucket_intelligent_tiering_configuration.This | recurso |
aws_s3_bucket_inventory.This | recurso |
aws_s3_bucket_lifecycle_configuration.This | recurso |
aws_s3_bucket_logging.This | recurso |
aws_s3_bucket_metric.This | recurso |
aws_s3_bucket_object_lock_configuration.This | recurso |
aws_s3_bucket_ownship_controls.This | recurso |
aws_s3_bucket_policy.This | recurso |
aws_s3_bucket_public_access_block.This | recurso |
aws_s3_bucket_replication_configuration.This | recurso |
aws_s3_bucket_request_payment_configuration.This | recurso |
AWS_S3_BUCKET_SERVER_SED_ENCRYPTION_CONFIGURAÇÃO.THIS | recurso |
aws_s3_bucket_versioning.This | recurso |
aws_s3_bucket_website_configuration.This | recurso |
aws_caller_identity.current | fonte de dados |
aws_canonical_user_id.This | fonte de dados |
aws_iam_policy_document.access_log_delivery | fonte de dados |
aws_iam_policy_document.combined | fonte de dados |
aws_iam_policy_document.deny_incorrect_encryption_headers | fonte de dados |
aws_iam_policy_document.deny_incorrect_kms_key_ssse | fonte de dados |
aws_iam_policy_document.deny_insecure_transport | fonte de dados |
aws_iam_policy_document.deny_unencrypted_object_uploads | fonte de dados |
aws_iam_policy_document.elb_log_delivery | fonte de dados |
aws_iam_policy_document.inventory_and_analytics_destination_policy | fonte de dados |
aws_iam_policy_document.lb_log_delivery | fonte de dados |
aws_iam_policy_document.require_latest_tls | fonte de dados |
aws_partition.current | fonte de dados |
aws_region.current | fonte de dados |
Nome | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
aceleração_status | (Opcional) Define a configuração acelerada de um balde existente. Pode ser ativado ou suspenso. | string | null | não |
Access_log_delivery_policy_source_accounts | (Opcional) A lista de IDs da conta da AWS deve poder entregar logs de acesso a este bucket. | list(string) | [] | não |
access_log_delivery_policy_source_buckets | (Opcional) Lista de S3 Bucket ARNs, que devem poder entregar logs de acesso a este balde. | list(string) | [] | não |
ACL | (Opcional) A ACL enlatada para aplicar. Conflitos com grant | string | null | não |
permitido_kms_key_arn | A chave ARN do KMS, que deve ser permitida no Putobject | string | null | não |
Analytics_Configuration | Mapa contendo configuração de análise de balde. | any | {} | não |
Analytics_self_Source_Destination | Se o balde de fonte de análise também é ou não o balde de destino. | bool | false | não |
Analytics_source_account_id | O ID da conta de origem da análise. | string | null | não |
Analytics_source_bucket_arn | O Analytics Source Bucket Arn. | string | null | não |
APCT_ACCESS_LOG_DELIVERY_POLICY | Controles se o balde S3 deve ter uma política de entrega de log de acesso S3 anexada | bool | false | não |
APCT_ANALYTICS_DESTINA_POLICY | Controles se o S3 Bucket deve ter a política de destino de análise de balde anexada. | bool | false | não |
APCT_DENY_INCORRECT_ENCRYPTION_HEADERS | Controles se o balde S3 deve negar a política incorreta dos cabeçalhos de criptografia anexada. | bool | false | não |
APCT_DENY_INCORRECT_KMS_KEY_SSE | Controles se a política do balde S3 deve negar o uso da chave KMS incorreta SSE. | bool | false | não |
APCT_DENY_INSECURE_TRANSPORT_POLICY | Controles se o balde S3 deve ter negado a política de transporte não-SSL anexada | bool | false | não |
APCT_DENY_UNENCRYPTED_OBJECT_UPLOADS | Controles se o balde S3 deve negar a política de objeto não criptografada. | bool | false | não |
APCT_ELB_LOG_DELIVERY_POLICY | Controles se o balde S3 deve ter uma política de entrega de logs de etono anexada | bool | false | não |
APTCH_INVENTORY_DESTINA_POLICY | Controles se o balde S3 deve ter a política de destino do inventário de balde anexada. | bool | false | não |
APCT_LB_LOG_DELIVERSE_POLICY | Controles se o balde s3 deve ter uma política de entrega de log alb/nlb anexada | bool | false | não |
anexe_policy | Controles se o balde S3 deve ter a política de balde anexada (definido como true para usar o valor da policy como política de balde) | bool | false | não |
APCT_PUBLIC_POLICY | Controles se uma política de balde público definido pelo usuário será anexado (definido como false para permitir que a upstream aplique padrões ao balde) | bool | true | não |
APCT_REQUIRE_LATEST_TLS_POLICY | Controles se o balde S3 deve exigir a versão mais recente do TLS | bool | false | não |
Block_public_acls | Se o Amazon S3 deve bloquear as ACLs públicos para este balde. | bool | true | não |
block_public_policy | Se a Amazon S3 deve bloquear políticas públicas para este balde. | bool | true | não |
balde | (Opcional, força novo recurso) O nome do balde. Se omitido, a Terraform atribuirá um nome aleatório e único. | string | null | não |
bucket_prefix | (Opcional, forças novo recurso) cria um nome de balde exclusivo começando com o prefixo especificado. Conflitos com o bucket. | string | null | não |
Control_Object_ownership | Se deve gerenciar os controles de propriedade do S3 Bucket neste balde. | bool | false | não |
cors_rule | Lista de mapas que contêm regras para compartilhamento de recursos cruzados de origem. | any | [] | não |
create_bucket | Controles se o balde s3 deve ser criado | bool | true | não |
Esperado_bucket_owner | O ID da conta do proprietário do balde esperado | string | null | não |
force_destroy | (Opcional, padrão: false) Um booleano que indica que todos os objetos devem ser excluídos do balde para que o balde possa ser destruído sem erro. Esses objetos não são recuperáveis. | bool | false | não |
conceder | Uma concessão de política da ACL. Conflitos com acl | any | [] | não |
ignore_public_acls | Se a Amazon S3 deve ignorar as ACLs públicas para este balde. | bool | true | não |
Intelligent_tier | Mapa contendo configuração de camada inteligente. | any | {} | não |
inventário_configuration | Mapa contendo configuração de inventário S3. | any | {} | não |
Inventário_self_source_destination | Se o balde de origem do inventário também é o balde de destino. | bool | false | não |
inventário_source_account_id | O ID da conta de origem do inventário. | string | null | não |
inventário_source_bucket_arn | O balde de origem do inventário Arn. | string | null | não |
LifeCycle_rule | Lista de mapas que contêm configuração do gerenciamento do ciclo de vida do objeto. | any | [] | não |
log | Mapa contendo configuração de log de acesso ao balde de acesso. | any | {} | não |
metric_configuration | Mapa contendo configuração da métrica de balde. | any | [] | não |
object_lock_configuration | Mapa contendo configuração de travamento do objeto S3. | any | {} | não |
object_lock_enabled | Se o S3 Bucket deve ter uma configuração de bloqueio de objeto ativada. | bool | false | não |
Object_ownership | Propriedade de objetos. Valores válidos: BuckETowneRenforced, BuckEtownerPreferred ou ObjectWriter. 'BuckEtowNerenforced': as ACLs estão desativadas e o proprietário do balde possui automaticamente e tem controle total sobre todos os objetos do balde. 'BuckEtownerPreferred': Objetos enviados para a propriedade de alteração do balde para o proprietário do balde se os objetos forem carregados com o LCA enlatado para controle de balde-proprietário. 'ObjectWriter': A conta de upload será a dona do objeto se o objeto for carregado com o LCA lata de controle de bucket-proprietário de controle. | string | "BucketOwnerEnforced" | não |
proprietário | Nome e id de exibição do proprietário do balde. Conflitos com acl | map(string) | {} | não |
política | (Opcional) Um documento JSON de política de balde válido. Observe que, se o documento de política não for específico o suficiente (mas ainda válido), a Terraform poderá ver a política como constantemente mudando em um plano de terraformação. Nesse caso, certifique -se de usar a versão detalhada/específica da política. Para obter mais informações sobre a criação de documentos de política da AWS IAM com a Terraform, consulte o AWS IAM Policy Document Guide. | string | null | não |
putin_khuylo | Você concorda que Putin não respeita a soberania ucraniana e a integridade territorial? Mais informações: https://en.wikipedia.org/wiki/putin_khuylo! | bool | true | não |
replicação_configuration | Mapa contendo configuração de replicação de região cruzada. | any | {} | não |
request_payer | (Opcional) Especifica quem deve suportar o custo da transferência de dados da Amazon S3. Pode ser o BuckEtowner ou o solicitante. Por padrão, o proprietário do balde S3 incorreria nos custos de qualquer transferência de dados. Consulte o solicitante paga o Guia do Desenvolvedor de Buckets para obter mais informações. | string | null | não |
RESTRITT_PUBLIC_BUCKETS | Se a Amazon S3 deve restringir as políticas públicas para este balde. | bool | true | não |
Server_side_encryption_configuration | Mapa contendo configuração de criptografia do lado do servidor. | any | {} | não |
tags | (Opcional) Um mapeamento de tags para atribuir ao balde. | map(string) | {} | não |
transição_default_minimum_object_size | O comportamento mínimo do tamanho do objeto padrão aplicado à configuração do ciclo de vida. Valores válidos: all_storage_classes_128k (padrão), varia_by_storage_class | string | null | não |
versão | Mapa contendo configuração de versão. | map(string) | {} | não |
site | Mapa contendo hospedagem estática no site ou redirecionamento. | any | {} | não |
Nome | Descrição |
---|---|
s3_bucket_arn | O arn do balde. Será de formato Arn: AWS: S3 ::: BucketName. |
s3_bucket_bucket_domain_name | O nome do domínio do balde. Será de formato bucketname.s3.amazonaws.com. |
s3_bucket_bucket_regional_domain_name | O nome de domínio específico da região do balde. O nome do domínio do balde, incluindo o nome da região, consulte aqui para o formato. NOTA: O AWS CloudFront permite especificar o terminal específico da região S3 ao criar origem S3, impedirá que os problemas de redirecionamento do CloudFront até a URL da Origin S3. |
s3_bucket_hosted_zone_id | O ID da zona hospedada da Rota 53 para a região deste balde. |
s3_bucket_id | O nome do balde. |
s3_bucket_lifecycle_configuration_rules | As regras do ciclo de vida do balde, se o balde estiver configurado com as regras do ciclo de vida. Caso contrário, isso será uma corda vazia. |
s3_bucket_policy | A política do balde, se o balde estiver configurado com uma política. Caso contrário, isso será uma corda vazia. |
s3_bucket_region | A região da AWS Este balde reside. |
s3_bucket_website_domain | O domínio do ponto final do site, se o balde estiver configurado com um site. Caso contrário, isso será uma corda vazia. Isso é usado para criar registros de alias da Rota 53. |
s3_bucket_website_endpoint | O final do site, se o balde estiver configurado com um site. Caso contrário, isso será uma corda vazia. |
O módulo é mantido por Anton Babenko com a ajuda desses impressionantes colaboradores.
Apache 2 licenciado. Consulte a licença para obter detalhes completos.