S3 Simple Storage Service — armazenamento de objetos
O Amazon S3 (Simple Storage Service) armazena objetos (arquivos) em buckets com nome globalmente único. No CRM, o S3 costuma guardar anexos de clientes, exportações, assets de integração, backups e às vezes artefatos de build consumidos pelo CloudFront .
Termo Significado Bucket Container lógico, ex. crm-prod-uploads Object key “Caminho” do arquivo, ex. tenants/123/foto.png Versioning Histórico de sobrescritas (útil para auditoria e restore) Storage class Standard, IA, Glacier — trade-off custo vs acesso
Não existe hierarquia real de pastas: / no key é convenção para organização e prefixos em políticas IAM.
Caso Padrão típico Upload de usuário API gera URL pré-assinada (PUT) ou recebe arquivo e grava via SDK Documentos / anexos Key por tenant + ID do registro Export CSV/Excel Objeto temporário + link pré-assinado GET com expiração Assets estáticos Bucket público via CloudFront OU bucket privado + OAC Logs / backup Lifecycle para Glacier ou expiração após N dias
Método Quando IAM role da task ECS Produção — credenciais temporárias automáticas Presigned URL Cliente browser/mobile envia ou baixa direto sem passar bytes pela API Bucket policy Regras no bucket (ex. só CloudFront OAI/OAC pode ler)
A Task Definition associa a task role com política mínima: s3:GetObject, PutObject, DeleteObject apenas no prefixo necessário.
Controle Recomendação Block Public Access Habilitado por padrão; exceção só com CloudFront OAC bem configurado Encryption SSE-S3 ou SSE-KMS em repouso HTTPS Obrigatório em trânsito (SDK e presigned URLs) CORS Configurar só origens do painel se upload for direto do browser
Regra exemplo Efeito Abort incomplete multipart uploads Limpa uploads falhos após 7 dias Transição para Standard-IA Objetos não acessados há 90 dias Expiration Apaga exports temporários após 30 dias
Origem Padrão Bucket privado + OAC CloudFront lê objetos; usuário não acessa S3 direto Bucket website Legado; preferir OAC
Ver detalhes em CloudFront .
Operação Uso PutObjectGravar arquivo GetObjectLer HeadObjectMetadados sem baixar corpo ListObjectsV2Listar prefixo (cuidado com buckets grandes) CopyObject“Mover” entre keys/buckets
S3 Request Metrics e Storage Lens para volume e custo.
Alarmes em 4xx/5xx do CloudFront quando S3 é origem.
Versioning + MFA delete em buckets críticos de produção.
URLs públicas permanentes para dados de cliente são anti-padrão; prefira presigned URLs com TTL curto ou entrega via CloudFront com autenticação na borda quando necessário.
Serviço Relação ECS Task role acessa bucket CF CDN na frente de bucket estático Route 53 CNAME para CloudFront que aponta ao bucket