AWS SAA-C03/04 - Armazenamento S32 min
S3 Segurança e Controle de Acesso
Responda com suas palavras antes de ler o resto da nota.
- Que problema isso resolve?
- Quando usar / quando NÃO usar?
- Qual o principal trade-off (custo, latência, operação)?
- Que sinal no enunciado aponta pra isso?
- Com o que isso é confundido na prova?
Conceito
Camadas de controle, da mais forte pra mais granular:
| Camada | Papel |
|---|---|
| Block Public Access | Chave-mestra. Vence bucket policy e ACL. Ligada por padrão |
| Bucket policy | Política de recurso com Principal — cross-account, condição de IP/VPC |
| IAM policy | O que cada identidade pode fazer |
| ACL | Legado — a AWS recomenda desabilitar (Object Ownership: Bucket owner enforced) |
| Presigned URL | Acesso temporário a um objeto, sem credencial |
| VPC Endpoint | Restringe origem à sua VPC |
Criptografia em repouso
| Modo | Chave gerenciada por | Auditoria por uso | Nota |
|---|---|---|---|
| SSE-S3 (AES-256) | AWS | Não individual | Padrão automático desde 2023 |
| SSE-KMS | Você (CMK) | Sim, no CloudTrail | Sujeito a limite de requisições do KMS |
| SSE-C | Você envia a chave em cada request | — | S3 não guarda a chave |
| DSSE-KMS | Dupla camada KMS | Sim | Requisito gov/militar |
Em trânsito: HTTPS. Pra obrigar HTTPS, use bucket policy com Deny + aws:SecureTransport: false.
Condições de bucket policy que a prova usa
aws:SourceIp (faixa de IP) · aws:SourceVpce (só via VPC Endpoint) · aws:SecureTransport (forçar TLS) · s3:x-amz-server-side-encryption (recusar upload sem criptografia) · aws:PrincipalOrgID (só contas da minha Organization)
Presigned URL
Gerada com as suas credenciais, dá acesso temporário a um objeto específico. É a resposta para "permitir que um usuário anônimo baixe/suba um arquivo sem tornar o bucket público".
Trade-offs
Bucket policy centraliza a regra no bucket, o que é ótimo pra auditar e fácil de errar pra mais: um Principal: "*" mal escrito abre tudo. Block Public Access existe justamente como rede de segurança acima disso.
SSE-KMS dá auditoria por chamada e esbarra em throttling do KMS em bucket de altíssimo volume — o S3 Bucket Keys reduz drasticamente essas chamadas e o custo.
Sinais de prova
- "Permitir download temporário sem tornar público" → Presigned URL
- "Só a minha VPC pode acessar o bucket" → bucket policy com
aws:SourceVpce - "Auditar cada uso da chave" → SSE-KMS + CloudTrail
- "Recusar upload não criptografado" → bucket policy com condição
s3:x-amz-server-side-encryption - "Forçar HTTPS" →
Denycomaws:SecureTransport: false - "Bucket ficou público" → Block Public Access + AWS Config pra detectar
- "Custo de KMS explodiu com S3" → S3 Bucket Keys
- "S3 só acessível via CloudFront" → OAC (Origin Access Control)
Relacionado
Parte de 04 - MOC Armazenamento S3 · Documentação AWS