0Pricing
DevOps Bootcamp · Aula

Gerenciamento de Buckets S3 e IAM

Aprenda a provisionar e configurar buckets de armazenamento S3 e gerenciar recursos do AWS Identity and Access Management (IAM) com o Terraform.

Gerenciamento de Buckets S3 e IAM é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

S3 e Terraform: Armazenamento na Nuvem

O Amazon S3 (Simple Storage Service) oferece armazenamento de objetos altamente escalável, durável e disponível. Ele é perfeito para cópias de segurança, sites estáticos e arquivamento de dados.

Gerenciar buckets do S3 com o Terraform traz vários benefícios:

  • Automação: Crie e configure buckets programaticamente.
  • Controle de versões: Acompanhe as alterações nas configurações dos seus buckets.
  • Consistência: Garanta que todos os ambientes tenham configurações do S3 idênticas.

Seu Primeiro Bucket do S3

Vamos definir um bucket simples do S3. O recurso aws_s3_bucket é usado para isso.

Os nomes dos buckets devem ser exclusivos globalmente em todas as contas da AWS. Escolha um nome exclusivo!

Tente executar este exemplo:

resource "aws_s3_bucket" "my_unique_bucket" {
  bucket = "my-coddykit-unique-bucket-12345" # Replace with a globally unique name
}

output "bucket_id" {
  value = aws_s3_bucket.my_unique_bucket.id
}

Nomeação de Buckets e Região

Ao criar um bucket do S3, lembre-se destes pontos importantes:

  • Exclusividade global: Os nomes dos buckets devem ser exclusivos globalmente em todas as contas da AWS.
  • Região: Embora os nomes sejam globais, o bucket fica localizado em uma região específica da AWS (definida pela configuração do seu provedor da AWS).
  • Regras de nomeação: Os nomes devem estar em letras minúsculas, ter de 3 a 63 caracteres e podem conter hífens.

Escolher uma boa convenção de nomenclatura é essencial para manter a organização e a clareza.

Segurança e Recursos do S3

O S3 oferece recursos como controle de versões, para manter várias versões de um objeto, e bloqueios de acesso público, para aumentar a segurança. Para a maioria dos buckets, é fundamental bloquear o acesso público por padrão.

Este exemplo configura o controle de versões e garante que o acesso público esteja bloqueado.

Tente executar este exemplo:

resource "aws_s3_bucket" "my_versioned_bucket" {
  bucket = "coddykit-versioned-bucket-98765" # Replace with a unique name
}

resource "aws_s3_bucket_versioning" "my_versioned_bucket_versioning" {
  bucket = aws_s3_bucket.my_versioned_bucket.id
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_public_access_block" "my_versioned_bucket_public_access_block" {
  bucket = aws_s3_bucket.my_versioned_bucket.id

  block_public_acls       = true
  block_public_and_cross_account_access = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

output "bucket_name_versioned" {
  value = aws_s3_bucket.my_versioned_bucket.bucket
}

AWS IAM: Identidade e Acesso

O AWS IAM (Identity and Access Management) é um serviço web que ajuda você a controlar com segurança o acesso aos recursos da AWS. Ele é fundamental para a segurança.

Com o IAM, você pode:

  • Gerenciar usuários e seus acessos programático e pelo console.
  • Conceder permissões detalhadas a recursos específicos da AWS.
  • Controlar quem pode fazer o quê na sua conta da AWS.

O Terraform permite definir e gerenciar recursos do IAM assim como buckets do S3.

Provisionamento de um Usuário do IAM

Vamos criar um novo usuário do IAM usando o Terraform. Um usuário do IAM representa uma pessoa ou um serviço que interage com a AWS.

Esse usuário ainda não terá nenhuma permissão; vamos adicioná-las em seguida.

Tente executar este exemplo:

resource "aws_iam_user" "coddykit_user" {
  name = "coddykit-app-user"
  path = "/system/"
  tags = {
    Department = "DevOps"
  }
}

output "iam_user_name" {
  value = aws_iam_user.coddykit_user.name
}

output "iam_user_arn" {
  value = aws_iam_user.coddykit_user.arn
}

Entendendo as Políticas do IAM

As políticas do IAM são documentos que definem permissões. Elas especificam quais ações são permitidas ou negadas em quais recursos e sob quais condições.

As políticas são escritas em JSON e podem ser associadas a usuários, grupos ou funções.

  • Políticas baseadas em identidade: Associadas a uma identidade do IAM (usuário, grupo ou função).
  • Políticas baseadas em recursos: Associadas a um recurso (como um bucket do S3 ou uma fila do SQS).

Concedendo Permissões do S3

Agora, vamos criar uma política que concede ao nosso usuário do IAM acesso somente leitura a um bucket específico do S3 e, em seguida, associá-la.

O recurso aws_iam_policy define a política, e aws_iam_user_policy_attachment associa-a ao usuário.

Tente executar este exemplo:

resource "aws_s3_bucket" "policy_target_bucket" {
  bucket = "coddykit-policy-bucket-112233" # Unique name
}

resource "aws_iam_user" "s3_reader_user" {
  name = "coddykit-s3-reader"
}

data "aws_iam_policy_document" "s3_read_only_policy" {
  statement {
    actions = [
      "s3:GetObject",
      "s3:ListBucket"
    ]
    resources = [
      aws_s3_bucket.policy_target_bucket.arn,
      "${aws_s3_bucket.policy_target_bucket.arn}/*"
    ]
  }
}

resource "aws_iam_policy" "s3_read_only" {
  name        = "CoddyKitS3ReadOnlyPolicy"
  description = "Grants read-only access to a specific S3 bucket"
  policy      = data.aws_iam_policy_document.s3_read_only_policy.json
}

resource "aws_iam_user_policy_attachment" "attach_s3_read_only" {
  user       = aws_iam_user.s3_reader_user.name
  policy_arn = aws_iam_policy.s3_read_only.arn
}

output "s3_reader_user_name" {
  value = aws_iam_user.s3_reader_user.name
}

output "s3_read_only_policy_arn" {
  value = aws_iam_policy.s3_read_only.arn
}

Organização com Grupos do IAM

Para facilitar o gerenciamento, especialmente quando há muitos usuários, você pode usar grupos do IAM. Um grupo é uma coleção de usuários do IAM.

Em vez de associar políticas a usuários individuais, você pode associá-las a um grupo, e todos os usuários desse grupo herdarão essas permissões.

Isso simplifica o gerenciamento de permissões e facilita seguir o princípio do menor privilégio.

Verificação Rápida: S3 e IAM

Quais das afirmações a seguir sobre o gerenciamento de buckets do AWS S3 e usuários e políticas do IAM com o Terraform são TRUE?

Recapitulação: S3 e IAM

Excelente trabalho! Nesta lição, você aprendeu a gerenciar buckets do AWS S3 e recursos do IAM usando o Terraform.

  • Provisionamos buckets do S3, configuramos o controle de versões e bloqueamos o acesso público.
  • Criamos usuários do IAM e associamos políticas personalizadas para conceder permissões específicas.
  • Agora você entende a importância do S3 para armazenamento e do IAM para o controle seguro de acesso na AWS, tudo definido como código!

Em seguida, vamos explorar técnicas avançadas de gerenciamento de estado.

Perguntas Frequentes

A aula “Gerenciamento de Buckets S3 e IAM” é grátis?

Sim — o texto completo de “Gerenciamento de Buckets S3 e IAM” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Gerenciamento de Buckets S3 e IAM”?

Aprenda a provisionar e configurar buckets de armazenamento S3 e gerenciar recursos do AWS Identity and Access Management (IAM) com o Terraform. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Gerenciamento de Buckets S3 e IAM”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Configuração do Provedor AWS
  2. Provisionamento de Instâncias EC2
  3. Gerenciamento de Buckets S3 e IAM
  4. Configurando VPC e redes
← Voltar para DevOps Bootcamp