Pular para o conteúdo principal

Módulo de bucket

O módulo que cria bucket privado, versionado e criptografado, com as três variáveis, o output aninhado e o que ele decide por você.

Cria um bucket com o que a casa já decidiu: privado, versionado, criptografado com KMS e com expiração de versão antiga. Três variáveis, e as duas primeiras são obrigatórias.

Antes de começar

Sessão assumida no ambiente alvo e a versão do módulo escolhida. Fixe a versão: source sem version resolve para a mais recente a cada init.

Os passos

  1. Declarar

    module "relatorios" {
    source = "panlabs/bucket/aws"
    version = "3.1.0"

    nome = "relatorios"
    proposito = "saída do job semanal de relatório"
    retencao = 90
    }
  2. Planejar

    Um bucket novo cria entre seis e oito recursos. Número muito diferente disso significa que a composição está pegando mais do que você pediu.

    terraform init -upgrade
    terraform plan -out plano.bin
  3. Aplicar

    Em dev, direto; nos outros dois, pela esteira.

    terraform apply plano.bin

Verificação

panlabs infra conferir bucket relatorios
# nome relatorios-dev
# acesso privado (bloqueio de acesso público: 4/4)
# versionamento habilitado

O que ele decide por você

DecisãoValorPor quê
Acesso públicobloqueado nas 4 chavestrês de quatro é a forma comum de um bucket "privado" não ser
Versionamentoligadorecuperação de escrita errada não tem substituto
CriptografiaKMSsse-s3 não permite política por chave
Sufixo de ambienteautomáticonome de bucket é imutável, e o erro só aparece depois do apply

O output é um objeto aninhado, e a anatomia dele está em O output de um módulo.

nome recebe o sufixo do ambiente sozinho. Escrever relatorios-dev produz relatorios-dev-dev, e como nome de bucket é imutável a correção é destruir e recriar.

retencao = 0 desliga a expiração de versão antiga e precisa de justificativa no pull request. Bucket versionado sem expiração cresce para sempre, e o custo aparece três trimestres depois.