Conta de nuvem segura e orçamento antes do primeiro recurso
Objetivos desta aula
- Entender o modelo de responsabilidade compartilhada da nuvem
- Proteger a conta raiz e criar uma identidade de trabalho com menor privilégio
- Configurar credenciais locais com perfil nomeado ou SSO
- Criar orçamento com alerta para não tomar susto na fatura
- Adotar disciplina de tags e de destruição de recursos de estudo
1. O que muda quando a infraestrutura é alugada
Na nuvem, o provedor cuida do data center, do hardware e da virtualização; você continua responsável por identidade, configuração, rede, dados e custo. Esse é o modelo de responsabilidade compartilhada. Quase todo vazamento noticiado vem do lado do cliente: permissão ampla, bucket público, credencial vazada.
2. A primeira tarefa não é criar servidor
Em uma conta nova, a ordem correta é: ativar MFA na conta raiz, guardar as credenciais raiz fora do computador de trabalho, criar uma identidade separada para o dia a dia e configurar alerta de custo. Só depois se provisiona qualquer recurso.
3. Conta raiz: o que ela é e por que não se usa
A raiz é o dono da conta e não tem limite de permissão — não é possível restringi-la. Use-a apenas para tarefas exclusivas dela (encerrar a conta, mudar plano de suporte, dados de cobrança). Para o restante, identidade normal.
4. Identidade: usuário IAM ou Identity Center (SSO)
O padrão atual das empresas é IAM Identity Center, que entrega credenciais temporárias por login. Chaves de acesso de longa duração (aquele par de Access Key ID e Secret) são práticas para estudar, mas são o item mais vazado do mercado. Se usar chaves, trate-as como senha e rotacione.
5. Menor privilégio na prática
Uma policy é um documento JSON que diz quais ações são permitidas em quais recursos. O princípio do menor privilégio é começar restrito e abrir conforme a necessidade real, não o contrário. Para estudar, um perfil administrativo em uma conta isolada e descartável é aceitável; em conta com dados reais, nunca.
6. Perfis nomeados no CLI
Configure --profile cloudshop em vez de credencial padrão solta. Perfis deixam explícito em qual conta você está agindo — proteção simples contra o clássico "apliquei na conta errada". Confirme sempre com aws sts get-caller-identity antes de um comando destrutivo.
7. Como a nuvem cobra
Três padrões de cobrança explicam quase toda fatura: por tempo ligado (instância, banco, NAT Gateway), por volume armazenado (disco, objetos, backup, snapshot) e por tráfego (saída para a internet e entre zonas). O recurso mais esquecido por estudantes é o NAT Gateway, que cobra por hora mesmo sem tráfego.
8. Orçamento e alerta
Crie um budget mensal pequeno (por exemplo 5 USD) com alerta em 80% do valor, tanto no gasto real quanto no previsto. O alerta não impede o gasto: ele compra tempo para você agir. Combine com um painel de custo revisado toda semana.
9. Tags: sem elas não existe controle de custo
Marque todo recurso com projeto, ambiente, dono e validade. Tags permitem responder "quanto custou o CloudShop em setembro?" e localizar o que pode ser destruído. Padronize as chaves desde o primeiro recurso — corrigir tags depois é trabalho manual e caro.
10. Disciplina de destruição
Todo recurso criado para estudo tem data de morte. Ao final de cada laboratório de nuvem: rode o destroy, confira no console que nada sobrou e verifique itens que ficam órfãos (volumes, snapshots, IPs elásticos, balanceadores, logs). Registre no diário quanto o laboratório custou.
11. Reagindo a um vazamento de credencial
Se uma chave for exposta: desative-a imediatamente, crie outra, revise o que foi executado na auditoria (CloudTrail), procure recursos criados sem sua autorização e troque também tokens relacionados. Velocidade importa — chaves públicas são exploradas em minutos por robôs.
12. Checagem final da aula
Você deve ter: MFA ativo na raiz, identidade de trabalho separada, aws sts get-caller-identity respondendo com o perfil correto, budget de 5 USD com alerta por e-mail e a convenção de tags escrita em docs/tags.md.
Na prática
Perfil, identidade e orçamento
bash
aws configure --profile cloudshop
# AWS Access Key ID / Secret / regiao (ex.: us-east-1) / output json
export AWS_PROFILE=cloudshop
aws sts get-caller-identity
# { "UserId": "AIDA...", "Account": "123456789012", "Arn": "arn:aws:iam::123456789012:user/estudo" }
# Orcamento de 5 USD por mes com alerta em 80%
aws budgets create-budget --account-id "$(aws sts get-caller-identity --query Account --output text)" \
--budget '{"BudgetName":"estudo-cloudshop","BudgetLimit":{"Amount":"5","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}' \
--notifications-with-subscribers '[{"Notification":{"NotificationType":"ACTUAL","ComparisonOperator":"GREATER_THAN","Threshold":80,"ThresholdType":"PERCENTAGE"},"Subscribers":[{"SubscriptionType":"EMAIL","Address":"voce@exemplo.com"}]}]'
# Sem saida = criado. Confirme com: aws budgets describe-budgets --account-id <conta>Nota de segurança: ~/.aws/credentials guarda chaves em texto puro. Prefira AWS IAM Identity Center (SSO) e nunca comite esse arquivo.
Credenciais temporárias com Identity Center (SSO)
bash
aws configure sso --profile cloudshop-sso
# SSO start URL: https://sua-org.awsapps.com/start
# Abre o navegador para autenticar e escolher a conta/permissao
aws sso login --profile cloudshop-sso # renova o token quando expirar
aws sts get-caller-identity --profile cloudshop-sso
# Arn: arn:aws:sts::123456789012:assumed-role/AWSReservedSSO_.../voce
# Observe "assumed-role": e uma credencial temporaria, nao uma chave permanenteTags padrão e caça a recursos esquecidos
bash
# Convencao de tags do projeto (docs/tags.md)
# projeto=cloudshop | ambiente=dev|prod | dono=estudo | validade=2026-10-01
# Recursos ligados que mais geram custo silencioso
aws ec2 describe-instances --filters Name=instance-state-name,Values=running \
--query 'Reservations[].Instances[].[InstanceId,InstanceType,Tags[?Key==`projeto`].Value|[0]]' --output table
aws ec2 describe-nat-gateways --filter Name=state,Values=available --query 'NatGateways[].NatGatewayId'
aws ec2 describe-volumes --filters Name=status,Values=available --query 'Volumes[].VolumeId' # discos orfaos
aws ec2 describe-addresses --query 'Addresses[?AssociationId==null].PublicIp' # IPs pagos sem usoNota de segurança: Rode essa varredura com um perfil somente-leitura quando possível; auditoria não precisa de permissão de escrita.
Se uma chave vazar: resposta imediata
bash
# 1) Desativar a chave comprometida
aws iam update-access-key --access-key-id AKIAEXEMPLO --status Inactive --user-name estudo
# 2) Criar uma nova e atualizar o perfil local
aws iam create-access-key --user-name estudo
# 3) Auditar o que foi feito com ela nas ultimas horas
aws cloudtrail lookup-events --max-results 20 \
--lookup-attributes AttributeKey=Username,AttributeValue=estudo \
--query 'Events[].[EventTime,EventName,SourceIPAddress]' --output table
# 4) Excluir a chave antiga depois de confirmar que nada dependia dela
aws iam delete-access-key --access-key-id AKIAEXEMPLO --user-name estudoPor que isso importa
Vagas de nuvem cobram responsabilidade financeira. Saber demonstrar controle de custo diferencia candidato júnior de candidato confiável.
Erro comum
Usar a conta raiz para tudo e deixar NAT Gateway ou RDS ligados após o laboratório.
Dica de produção
Marque todos os recursos com tags (projeto, ambiente, dono, validade). Sem tags, não existe FinOps.
Alerta de segurança
Chave de acesso vazada em repositório público é explorada em minutos. Se acontecer, revogue imediatamente e audite CloudTrail.
Pergunta de entrevista
Como você evitaria que um ambiente de teste gerasse custo indevido em uma conta compartilhada?
Glossário
- MFA
- Autenticação em múltiplos fatores: segundo fator além da senha.
- Budget
- Limite de gasto monitorado, com alertas configuráveis por percentual.
- Conta raiz
- Identidade dona da conta de nuvem, sem limite de permissão; usada apenas em tarefas exclusivas.
- IAM
- Serviço de identidade e acesso da AWS: usuários, papéis e políticas de permissão.
- Menor privilégio
- Conceder apenas as permissões necessárias para a tarefa, nada além.
- Identity Center (SSO)
- Serviço que entrega credenciais temporárias por login, substituindo chaves permanentes.
- CloudTrail
- Registro de auditoria das chamadas de API feitas na conta de nuvem.
- FinOps
- Prática de gerenciar custo de nuvem com dados, responsáveis e metas.
- NAT Gateway
- Recurso que dá saída à internet para redes privadas e cobra por hora ligada e por tráfego.
Conexão com o CloudShop
Criar o orçamento que protegerá a conta usada nos módulos 6 e 7.
Quiz da aula
1. Qual é a primeira ação em uma conta de nuvem nova?
2. No modelo de responsabilidade compartilhada, o que é sua responsabilidade?
3. Qual recurso costuma gerar custo mesmo sem uso aparente em laboratórios?
4. Por que preferir credenciais temporárias (SSO) a chaves de acesso permanentes?
Minhas anotações
Salvo automaticamente neste navegador.