O objetivo deste desafio foi aplicar os conhecimentos adquiridos em AWS CloudFormation para criar uma infraestrutura automatizada, documentando cada etapa do processo. O foco principal foi criar um bucket S3 e uma role IAM de forma segura, utilizando CloudFormation, e registrar todas as observações e prints no repositório.
Ao final do desafio, o repositório contém:
- Template CloudFormation (
template.yaml) funcional. - Documentação detalhada do processo (este README).
- Capturas de tela da execução no console AWS (
/images).
Durante o laboratório, utilizei os seguintes recursos da AWS:
-
Bucket S3
- Criado com nome único global para evitar conflitos.
- Configurado com
AccessControl: Private. - Versionamento desligado (
Suspended) para simplificação.
-
Role IAM
- Nome:
${StackName}-S3AccessRole. - Permissões limitadas para operar apenas no bucket criado:
s3:GetObjects3:PutObjects3:ListBucket
- Pode ser assumida por EC2 (ou outro serviço se necessário).
- Política inline limitada ao bucket criado, evitando acesso global.
- Nome:
O template CloudFormation garante que todos os recursos sejam criados de forma automática e replicável.
- Fiz login na AWS Console.
- Verifiquei que minha conta tinha permissões suficientes para criar:
- S3 Buckets
- IAM Roles
- CloudFormation Stacks
- Criei o arquivo
template.yamlcontendo:- Parâmetro para nome do bucket (
BucketName). - Recursos:
MyS3BucketeS3AccessRole. - Outputs para consultar ARN da Role e nome do bucket após execução.
- Parâmetro para nome do bucket (
- Acesse CloudFormation → Create stack → With new resources (standard).
- Selecionei Upload a template file e enviei
template.yaml. - Nome da stack:
dio-cloudformation-challenge-jullia. - Preenchi parâmetros necessários (nome do bucket único).
- Cliquei Create stack.
- Observei a aba Events para acompanhar a criação passo a passo.
- Confirmei os recursos criados em Resources.
- Verifiquei os outputs em Outputs:
- Nome do bucket S3.
- ARN da Role IAM.
- Tirei capturas de tela de todas as etapas e salvei em
/images.
- Validei a Role IAM e testei permissão de leitura/escrita no bucket (via console ou CLI).
- Confirmei que a Role não tinha permissões extras fora do bucket.
- Para evitar custos futuros, deletei a stack via CloudFormation → Delete Stack.
- Isso removeu bucket e a role IAM criados.
- Sempre usar nomes únicos globalmente para S3 Buckets.
- Evitar políticas globais (
*) e limitar a Role apenas ao recurso necessário. - Documentar prints e logs de execução para referência futura.
- Testar os recursos manualmente após a criação da stack.
- Excluir stacks que não estão em uso para evitar cobranças.
Este desafio consolidou meu aprendizado em CloudFormation, IAM e S3, além de reforçar boas práticas de documentação técnica e versionamento de projetos no GitHub. A experiência permitiu automatizar a criação de recursos de forma segura e replicável, essencial para projetos de infraestrutura como código (IaC).
Jullia Karolina de Paula
- 💻Estudante de Análise e Desenvolvimento de Sistemas
- 📍Brasil
- 🔗Linkedin:(https://www.linkedin.com/in/jullia-karolina-de-paula-89a93a283/)
- 📧Email: [email protected] | [email protected]
- Bootcamp Santander Code Girls 2025 - AWS - Desafio: Implementando Infraestrutura Automatizada com AWS CloudFormation