Aplicação de três camadas: web, app, DB. O DB deve ser inacessível da internet sob qualquer circunstância.
→Sub-redes públicas para a camada web (ALB). Sub-redes privadas para as camadas de aplicação e DB. O security group do DB permite tráfego apenas do security group da camada de aplicação (não de intervalos CIDR).
Por quê: Tabelas de roteamento de sub-redes impõem acessibilidade; referências de security-group-para-security-group codificam o menor privilégio na camada do SG e sobrevivem a mudanças de IP.
Referência↗
Instância EC2 precisa acessar S3. Evitar credenciais embutidas.
→IAM role anexada via instance profile. O SDK recupera credenciais temporárias do IMDSv2.
Por quê: Chaves de acesso de longa duração em instâncias são a principal causa de vazamentos de credenciais. Roles são rotacionadas automaticamente, nunca persistidas.
Referência↗
Bloquear ataques SSRF que tentam ler metadados de instância EC2.
→Impor IMDSv2 (`HttpTokens=required`) no lançamento da instância. Rejeitar solicitações não autenticadas do IMDSv1.
Por quê: O IMDSv2 exige um token de sessão via PUT antes que o endpoint de metadados responda; ataques SSRF que apenas fazem GETs são bloqueados.
Referência↗
Serviço A na Conta A invoca Lambda na Conta B. Menor privilégio.
→Política baseada em recurso na Lambda de destino concedendo `lambda:InvokeFunction` ao principal da role da Conta A. O chamador assume sua própria role e invoca diretamente — não é necessário encadeamento de roles.
Por quê: Políticas de recurso são o padrão de cross-account mais simples para recursos com interface de serviço (Lambda, S3, SNS, SQS, KMS).
Referência↗
Outras contas AWS precisam fazer upload para um bucket S3 central.
→Política de bucket concedendo `s3:PutObject` a principals de contas externas. Adicionar requisito de ACL `bucket-owner-full-control` para que o proprietário do bucket retenha o controle dos objetos.
Por quê: Sem `bucket-owner-full-control` (ou `BucketOwnerEnforced` Object Ownership), os objetos carregados são de propriedade da conta que os escreveu.
Referência↗
Evitar que qualquer bucket S3 na organização se torne público.
→Ativar S3 Block Public Access no nível da conta (e em toda a organização via SCPs). Sobrescreve ACLs e políticas no nível do bucket.
Por quê: A configuração no nível da conta prevalece sobre as configurações por bucket — defesa contra configuração incorreta acidental.
Referência↗
Desenvolvedores devem criar IAM roles por conta própria, mas não podem conceder permissões além de um conjunto máximo definido.
→Limites de permissão (Permission Boundaries) no principal do desenvolvedor. Permissões efetivas = política de identidade ∩ limite.
Por quê: SCPs se aplicam no nível da conta/OU; os limites definem o escopo para principais individuais. Use limites para padrões de administração delegada.
Referência↗
Restringir uma OU a Regiões específicas para conformidade de residência de dados.
→Service Control Policy em Organizations negando qualquer ação onde `aws:RequestedRegion` não esteja na lista permitida.
Por quê: SCPs são o único mecanismo que pode negar ações que a própria conta permite. O IAM não pode negar o que um root da conta poderia conceder.
Referência↗
Single sign-on para a força de trabalho em várias contas AWS; integrar com IdP corporativo.
→AWS IAM Identity Center (antigo AWS SSO) com federação SAML/OIDC para o IdP corporativo. Conjuntos de permissões mapeiam para roles em contas membros.
Por quê: O Identity Center é a identidade canônica de força de trabalho multi-conta. Cognito é para usuários finais de aplicativos, não funcionários.
Referência↗
Escolher entre Cognito User Pool e Identity Pool.
→User Pool = registro / login / emissão de JWT para usuários de aplicativos. Identity Pool = troca de tokens por credenciais AWS temporárias. A maioria dos aplicativos usa ambos: User Pool autentica, Identity Pool autoriza acesso AWS.
Referência↗
Adicionar etapa de validação personalizada ao login do Cognito (ex: allowlist de domínio de e-mail).
→Triggers Lambda: Pré-cadastro, Pré-autenticação, Definir/Criar/Verificar Desafio de Autenticação. Validar ou rejeitar na Lambda.
Referência↗
Precisa de controle total sobre rotação de chaves, exclusão e trilha de auditoria por chave.
→Chave KMS gerenciada pelo cliente (CMK). As chaves gerenciadas pela AWS (`aws/<service>`) são mais simples, mas não oferecem controle de política de chave ou visibilidade sobre o uso individual da chave.
Por quê: CMKs permitem que você defina o escopo de acesso por chave no CloudTrail, configure políticas de chave para uso cross-account e desabilite/agende a exclusão.
Referência↗
A Conta B precisa descriptografar objetos S3 criptografados com a CMK da Conta A.
→Política de chave na CMK concede `kms:Decrypt` aos principais da Conta B. O IAM da Conta B também precisa de `kms:Decrypt` no ARN da chave. Ambas as partes são necessárias.
Por quê: KMS cross-account exige permissão explícita tanto na política de chave quanto na identidade IAM do chamador (ao contrário da maioria das políticas de recurso).
Referência↗
Criptografar dados em `us-east-1`; descriptografar em `us-west-2` após a replicação, sem recriptografar.
→Chave KMS multi-região. Principal em uma Região, réplica em outra, ambas com o mesmo material de chave e ID.
Por quê: Evita a etapa de re-empacotamento do texto cifrado para failover cross-Region ou DR.
Referência↗
Criptografar objetos grandes sem que as chamadas de API KMS por objeto dominem o custo.
→Envelope encryption. O KMS gera uma chave de dados (uma chamada de API); use a chave de dados para criptografar o payload localmente; armazene a chave de dados criptografada junto com o texto cifrado.
Por quê: O KMS é limitado por taxa e precificado por solicitação. O padrão de envelope é a forma canônica de criptografar dados > alguns KB.
Referência↗
Escolher entre Secrets Manager e SSM Parameter Store SecureString.
→Credenciais de DB com rotação automática, compartilhamento cross-account, segredos grandes → Secrets Manager. Flags de configuração, configurações de aplicativo, segredos simples, menor custo → SSM Parameter Store.
Por quê: O Secrets Manager possui Lambdas de rotação integradas para RDS/Aurora/DocumentDB/Redshift; o Parameter Store não possui rotação nativa, mas é gratuito para o nível Standard.
Referência↗
Rotacionar senha do RDS automaticamente a cada 30 dias.
→Secrets Manager com rotação gerenciada. O template Lambda integrado lida com a rotação de um único usuário contra o endpoint do RDS. Os aplicativos buscam o segredo no momento da conexão (em cache) — sem necessidade de redeploy do aplicativo.
Referência↗
Mitigar inundação HTTP da Camada 7 sem bloquear picos legítimos.
→Regra baseada em taxa do AWS WAF (ex: 2000 solicitações / 5 min por IP) no ALB ou CloudFront. Combinar com grupos de regras gerenciados para IPs conhecidos como maliciosos.
Por quê: Regras de taxa do WAF rastreiam por IP de origem; bloqueiam automaticamente quando o limite é excedido; liberam após a janela.
Referência↗
Aplicativo de missão crítica precisa de proteção de custo contra DDoS e suporte 24×7 da SRT.
→AWS Shield Advanced no CloudFront / ALB / NLB / Global Accelerator. Inclui proteção de custo (reembolsos por gastos de escalonamento durante ataque) + acesso à Shield Response Team.
Por quê: O Shield Standard é automático e gratuito; o Advanced adiciona proteções e SLA. O CloudFront é sempre a porta de entrada recomendada.
Referência↗
Escolher entre security group e NACL.
→Stateful, anexar a ENI, apenas permitir → security group (padrão). Stateless, nível de sub-rede, permitir + negar explicitamente → NACL. Use NACLs para regras de negação abrangentes (bloquear intervalos de IP); SGs para todo o resto.
Por quê: NACLs avaliam o tráfego de entrada e saída separadamente. SGs permitem automaticamente o tráfego de retorno.
Referência↗
EC2 em sub-rede privada deve alcançar S3/DynamoDB sem custo de saída de NAT.
→VPC gateway endpoint para S3 e DynamoDB. Gratuito, entrada na tabela de rotas, sem NAT.
Por quê: Os gateway endpoints são apenas para S3/DynamoDB. Economiza custos de processamento de dados do NAT e mantém o tráfego na backbone da AWS.
Referência↗
Sub-rede privada deve alcançar APIs de serviços AWS (KMS, Secrets Manager, ECR, etc.) de forma privada.
→VPC interface endpoint (PrivateLink) por serviço. ENI em sua VPC, cobrado por hora + por GB.
Por quê: Interface endpoints funcionam para quase todos os serviços AWS. Use para remover a saída do NAT para chamadas de serviço.
Referência↗
Provedor de SaaS expõe seu serviço na VPC para contas de clientes de forma privada, sem VPC peering ou manutenção de roteamento do cliente.
→Serviço de endpoint AWS PrivateLink suportado por um NLB. Clientes criam interface endpoints para consumir.
Por quê: Sem preocupações com sobreposição de CIDR, sem malha de peering, exposição unidirecional (o provedor não vê tráfego do cliente).
Referência↗
Conectar mais de 30 VPCs entre contas e on-premises em uma topologia hub-and-spoke.
→AWS Transit Gateway. Anexação única por VPC; tabelas de rotas segmentam o tráfego.
Por quê: O full-mesh peering requer N×(N-1)/2 conexões. O TGW escala linearmente e suporta cross-account via RAM.
Referência↗
Conectividade híbrida que precisa de largura de banda previsível, baixa latência e criptografia.
→Direct Connect com uma VPN Site-to-Site sobre o DX (MACsec ou IPsec). O DX sozinho é não criptografado; VPN sobre DX é privada + criptografada + baixo jitter.
Por quê: VPN simples pela internet é barata, mas tem latência variável. O DX sozinho é rápido, mas em texto simples na camada de enlace.
Referência↗
Detecção contínua de ameaças em VPC Flow Logs, DNS, CloudTrail, auditoria EKS, eventos de dados S3.
→Amazon GuardDuty. Em toda a organização via administrador delegado do Organizations.
Por quê: Detecção de ameaças gerenciada. Envia descobertas para o Security Hub ou EventBridge para automação de resposta.
Referência↗
Descobrir e classificar PII / PHI em buckets S3.
→Amazon Macie. Descoberta de dados sensíveis baseada em ML, com escopo S3, integra-se com Security Hub.
Referência↗
Varredura contínua de CVEs para EC2, imagens ECR, funções Lambda.
→Amazon Inspector v2. Auto-descobre recursos via Systems Manager Agent, varre contra CVEs publicadas.
Referência↗
Agregar descobertas de GuardDuty, Inspector, Macie, IAM Access Analyzer em um único painel.
→AWS Security Hub. CSPM com AWS Foundational Security Best Practices e padrões CIS.
Referência↗
Garantir que todos os volumes EBS sejam criptografados; remediar recursos não conformes automaticamente.
→Regras do AWS Config (`encrypted-volumes` gerenciadas) + runbook de automação do Systems Manager para remediação, acionado via ação de remediação do Config.
Referência↗
Log de auditoria único e à prova de adulteração em todas as contas da organização.
→Trilha de organização com validação de arquivo de log habilitada, gravada em um bucket S3 central com política de bucket negando exclusão.
Por quê: As trilhas da organização são habilitadas automaticamente em todas as contas membros (atuais e futuras). Hashes de validação comprovam que os logs não foram modificados.
Referência↗
Múltiplos departamentos precisam de acesso com escopo a diferentes prefixos em um bucket S3 compartilhado.
→S3 Access Points — um por departamento, cada um com sua própria política de acesso e (opcionalmente) restrição de VPC.
Por quê: Mais limpo do que uma política de bucket extensa; os access points têm seus próprios ARNs e nomes DNS.
Referência↗
Carga de trabalho PCI DSS — isolamento estrito de contas não PCI.
→Conta AWS dedicada dentro de uma OU do Organizations com SCPs restringindo o acesso a serviços/regiões. VPC separada, chaves KMS, IAM roles. Network Firewall ou GWLB para inspeção de saída.
Por quê: O limite da conta é o isolamento de raio de explosão mais forte na AWS.
Referência↗
Certificado TLS público para `*.example.com` no ALB e CloudFront. Renovar automaticamente.
→Certificado público do AWS Certificate Manager (ACM) com validação DNS no Route 53. Auto-renova 60 dias antes do vencimento.
Por quê: Gratuito para uso com serviços integrados da AWS. A validação por e-mail funciona, mas a validação DNS é preferível para automação.
Referência↗