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:
- Uma conta na AWS é indispensável para acessar os serviços de armazenamento e computação em nuvem.
- O Terraform deve estar instalado em sua máquina, permitindo a criação e gerenciamento da infraestrutura via código.
- 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