S3: Buckets S3 com acesso público

Esta regra identifica buckets Amazon S3 que não possuem as configurações de bloqueio de acesso público devidamente habilitadas.

Especificamente, a regra sinaliza buckets onde:

  • BlockPublicAcls está desativado ou

  • BlockPublicPolicy está desativado

O objetivo é detectar buckets potencialmente expostos ao acesso público.


Contexto da regra e impacto no negócio

O Amazon S3 é frequentemente utilizado para armazenar:

  • Dados sensíveis.

  • Backups.

  • Arquivos internos.

  • Dados financeiros.

  • Informações pessoais.

A AWS fornece o recurso Public Access Block para evitar exposição acidental.

Quando o bloqueio não está totalmente habilitado:

  • ACLs públicas podem ser aplicadas.

  • Policies públicas podem ser associadas ao bucket.

  • Dados podem se tornar acessíveis externamente.

Impactos no negócio:

  • Vazamento de dados.

  • Incidentes de segurança.

  • Multas regulatórias (LGPD, GDPR, etc.).

  • Dano reputacional.

  • Custos com resposta a incidentes.

Grande parte dos incidentes históricos de vazamento em cloud envolveu buckets S3 expostos publicamente.


Detalhamento técnico da regra

A regra executa análise global da conta AWS.

O S3 é um serviço global, portanto não há segmentação por região.


Como a regra é executada

  1. Autentica na conta AWS.

  2. Lista todos os buckets via list_buckets.

  3. Aplica filtros de tag (inclusão/exclusão).

  4. Para cada bucket:

    • Executa get_public_access_block.

    • Avalia a configuração:

      • BlockPublicAcls

      • BlockPublicPolicy

  5. Se ambas estiverem habilitadas, o bucket não é sinalizado.

  6. Caso qualquer uma esteja desabilitada, o bucket é sinalizado.


Lógica aplicada

Um bucket será considerado em não conformidade quando:

Se ambas forem:

O bucket é considerado protegido nesta implementação.


Campos analisados

Bucket:

  • Name

  • CreationDate

  • TagSet

Configuração de acesso público:

  • PublicAccessBlockConfiguration

    • BlockPublicAcls

    • BlockPublicPolicy


Parâmetros considerados na busca

APIs utilizadas:

  • s3:ListBuckets

  • s3:GetPublicAccessBlock

  • s3:GetBucketTagging

Condição técnica:

  • Avaliação direta da configuração de bloqueio de acesso público.


Período Avaliado (Filtro Temporal)

Período Avaliado (Filtro Temporal): 15 dias.

Padrão e configurado para analisar Buckets com mais de 15 dias com acesso público.

Esse parâmetro de avaliação pode ser ajustado nas configurações das regras.


Intervalo de Análise

Execução padrão: a cada 8 horas.


Aderência às melhores práticas

Não possui cálculo de savings direto.

Está alinhada com:

  • AWS Security Best Practices

  • AWS Well-Architected Framework – Pilar de Segurança

  • CIS AWS Foundations Benchmark

  • Princípio de proteção por padrão (Secure by Default)


Riscos associados

  • Exposição pública não intencional.

  • Permissão para criação de ACL pública.

  • Permissão para aplicação de policy pública.

  • Possível acesso anônimo a dados.


Exemplo prático

Bucket com configuração:

Resultado:

  • ACLs públicas podem ser aplicadas.

  • Bucket é sinalizado como não aderente.


Dicas de uso e boas práticas para o usuário

  • Habilitar todas as configurações de Public Access Block:

    • BlockPublicAcls

    • IgnorePublicAcls

    • BlockPublicPolicy

    • RestrictPublicBuckets

  • Revisar policies existentes antes de alterar.

  • Implementar SCPs para forçar bloqueio em nível organizacional.

  • Monitorar eventos via AWS CloudTrail.

  • Revisar buckets legados criados antes da política de bloqueio padrão.

Possíveis exceções legítimas:

  • Buckets intencionalmente públicos para hosting de site estático.

  • Distribuição de arquivos públicos controlados.

Recomenda-se validar a necessidade de exposição pública antes de qualquer alteração.

Last updated