Como Criar um Bucket S3 Usando Terraform

Aprenda a configurar um S3 Bucket com Terraform de forma prática e eficiente. Este guia detalha cada passo para você hospedar um site estático na AWS, utilizando o Terraform, uma ferramenta open-source de infraestrutura como código. Ideal para quem busca gerenciar serviços de nuvem de maneira consistente e automatizada, este artigo oferece um roteiro completo, desde os pré-requisitos até a aplicação da configuração. Prepare-se para otimizar seu fluxo de trabalho e garantir a escalabilidade de seus projetos na nuvem.

Pré-requisitos para a Configuração

Antes de iniciar a configuração do seu S3 Bucket, é crucial garantir que você possui todos os pré-requisitos necessários. Este passo assegura que o processo ocorra de maneira suave e sem interrupções. Abaixo, detalhamos cada um dos requisitos essenciais:

  1. Uma conta na AWS é indispensável para acessar os serviços de armazenamento e computação em nuvem.
  2. O Terraform deve estar instalado em sua máquina, permitindo a criação e gerenciamento da infraestrutura via código.
  3. A AWS CLI precisa estar configurada com suas credenciais, possibilitando a autenticação e interação com os serviços da AWS.

Definindo o S3 Bucket com Terraform

O primeiro passo é definir o S3 Bucket na sua configuração do Terraform. Este bucket será utilizado para hospedar um site estático. Veja o código de exemplo:

resource "aws_s3_bucket" "portfolibucket" {
  bucket = "portfolio-17-03-2025-bucket"
  website {
    index_document = "bucket1.html"
  }

  tags = {
    Name = "portfolio-17-03-2025-bucket"
    Environment = "Dev"
  }
}

resource "aws_s3_bucket_object" "index" {
  bucket = aws_s3_bucket.portfolibucket.id
  key    = "bucket1.html"
  source = "bucket1.html"
  content_type = "text/html"
}

Nesta configuração, definimos um S3 bucket chamado portfolio-17-03-2025-bucket e especificamos que ele hospedará um site estático com bucket1.html como o documento de índice. Também adicionamos algumas tags para melhor organização.

Configurando o Bloco de Acesso Público

Agora, vamos configurar um bloco de acesso público para controlar as configurações de acesso público do bucket. Veja o exemplo de código:

resource "aws_s3_bucket_public_access_block" "public_access" {
  bucket = aws_s3_bucket.portfolibucket.id

  block_public_acls       = false
  block_public_policy     = false
  ignore_public_acls      = false
  restrict_public_buckets = false

  depends_on = [ aws_s3_bucket.portfolibucket ]
}

Esta configuração garante que as configurações de acesso público do bucket sejam gerenciadas de acordo com nossos requisitos. Para garantir a segurança dos seus dados, é fundamental saber como se proteger contra ameaças como as mencionadas pelo FBI que alerta usuários de Gmail, Outlook e VPN sobre ameaças do ransomware Medusa.

Definindo a Política do Bucket

Vamos definir uma política de bucket para permitir acesso público de leitura aos objetos no bucket. Observe o código:

resource "aws_s3_bucket_policy" "allow_access_from_another_account" {
  bucket = aws_s3_bucket.portfolibucket.id

  policy = <<EOF
  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::${aws_s3_bucket.portfolibucket.id}/*"
      }
    ]
  }
EOF

  depends_on = [ aws_s3_bucket_public_access_block.public_access ]
}

Esta política permite que qualquer pessoa leia os objetos no bucket, o que é necessário para hospedar um site público.

Exibindo o Endpoint do Website

Finalmente, vamos exibir o endpoint do website para que possamos acessá-lo facilmente após a implantação. Confira o código:

output "website_endpoint" {
  value = "http://${aws_s3_bucket.portfolibucket.website_endpoint}"
}

Impedindo a Destruição da VPC

Vamos impedir que minha VPC seja destruída. Observe o exemplo de código:

resource "aws_vpc" "myvpc" {
  cidr_block = "172.16.0.0/16"

  lifecycle {
    prevent_destroy = true
  }
}

Esta configuração cria uma VPC com um bloco CIDR de 172.16.0.0/16.

Aplicando a Configuração do S3 Bucket com Terraform

Com todos os recursos definidos, agora podemos aplicar a configuração usando o Terraform. Utilize os seguintes comandos:

terraform init
terraform apply --auto-approve

Isso criará o S3 bucket, configurará o bloco de acesso público, definirá a política do bucket e impedirá a destruição da sua VPC. Para quem está começando, entender como iniciar seu primeiro projeto de IA com o método RICE pode ser um bom ponto de partida.

Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.

Via Dev.to

Leave a Comment

Exit mobile version