Por que Você Precisa de Detecção Automática de PII
Se você trabalha com finanças, saúde ou qualquer setor regulado, já conhece a dor de identificar dados sensíveis espalhados pelos seus buckets S3. Nomes, endereços, números de apólice, IDs de membros—classificar isso manualmente não escala, e frameworks de compliance como LGPD e HIPAA exigem que você saiba exatamente onde os dados pessoais estão.
O Amazon Macie oferece descoberta gerenciada de dados sensíveis pronta para uso, mas e os identificadores específicos do seu negócio? Um motor padrão não vai reconhecer o formato do seu número de apólice interno. É aí que entram os identificadores personalizados.
Neste guia, você vai construir um pipeline completo orientado a eventos que:
- Dispara no momento em que um arquivo chega no S3
- Escaneia com identificadores Macie nativos e personalizados
- Gera relatórios de compliance em CSV e JSON com timestamp
- Envia alertas SNS em tempo real para achados de alta severidade
Vamos lá!

Construindo o Pipeline: Passo a Passo
Visão Geral da Arquitetura
O pipeline usa cinco serviços principais da AWS:
| Serviço | Função |
|---|---|
| S3 | Camada de armazenamento com três buckets (raw, staged, scanned) |
| EventBridge | Detecta uploads e dispara o workflow |
| Step Functions | Orquestra todo o ciclo de vida do scan |
| Macie | Detecta PII com identificadores nativos + personalizados |
| SNS | Envia alertas em tempo real |
O padrão de três buckets isola dados por estado de processamento—dados não escaneados nunca se misturam com dados validados.
Passo 1: Deploy da Stack CloudFormation
Baixe o template e faça o deploy usando a AWS CLI:
# Deploy da stack com prefixo personalizado
aws cloudformation create-stack \
--stack-name pii-pipeline \
--template-body file://template.yaml \
--parameters ParameterKey=BucketNamePrefix,ParameterValue=minhaempresa \
ParameterKey=CustomIdentifierPatterns,ParameterValue="\\bPOL-\\d{8}\\b" \
ParameterKey=NotificationEmail,ParameterValue=seguranca@minhaempresa.com
Resultado esperado: Stack atinge CREATE_COMPLETE em 3–5 minutos.
Passo 2: Configurar Identificadores Personalizados
A stack provisiona automaticamente os identificadores personalizados a partir do parâmetro CustomIdentifierPatterns. Verifique se eles aparecem no console do Macie em Settings > Custom data identifiers.
Passo 3: Testar o Pipeline
Envie um arquivo de teste para o bucket raw:
# Upload de arquivo para disparar o pipeline
aws s3 cp dados-teste.csv s3://minhaempresa-raw-bucket/
Em segundos, uma execução do Step Functions inicia. A máquina de estados executa cinco estados:
- TriggerScan - Copia arquivo para staging, cria job no Macie
- WaitForMacie - Pausa 60 segundos para processamento
- CheckStatus - Consulta API
DescribeClassificationJob - GetFindings - Recupera resultados, gera relatórios, publica SNS
- MoveFiles - Move original para scanned, limpa staging
Passo 4: Verificar Relatórios
Cada scan produz dois arquivos com timestamp no bucket scanned:
# Listar relatórios gerados
aws s3 ls s3://minhaempresa-scanned-bucket/reports/
# Saída: 2025-01-15-143022-findings.csv
# Saída: 2025-01-15-143022-findings.json
Para achados de alta severidade, você também recebe um email de notificação SNS com detalhes.

Considerações Críticas e Hardening para Produção
Quotas e Throttling
Fique atento aos limites do Macie antes de escalar:
- Identificadores personalizados: Até 10.000 por conta, mas máximo 30 por job de classificação
- Throttle do CreateClassificationJob: 0,1 requisições/segundo (1 job a cada 10 segundos)
Para workloads de alto volume, agrupe múltiplos objetos em um único job Macie para evitar limites de API.
Hardening de Segurança
Antes de ir para produção, implemente:
- Criptografia: Ative SSE-S3 ou KMS via parâmetro
KmsKeyArn - Isolamento multi-tenant: Deploy de stacks separadas por tenant com
BucketNamePrefixdistinto - Trilha de auditoria: Ative CloudTrail S3 para rastrear cada acesso a objeto
- Cross-account: Configure regras EventBridge para fontes de dados em múltiplas contas
Limitações Conhecidas
- Duração variável do scan: Jobs podem levar 15–20+ minutos dependendo do volume e tipo de dados
- Sem retry nativo para jobs Macie: Você precisa usar a lógica de retry do Step Functions
- Expiração automática do staging: Objetos expiram após 7 dias por padrão—ajuste se precisar de retenção maior
Próximos Passos para Aprendizado
Agora que seu pipeline funciona, considere estender:
- Roteie findings JSON para Athena para análise de tendências e crie dashboards QuickSight
- Adicione um branch de remediação no Step Functions para quarentena de arquivos de alto risco
- Publique findings no AWS Security Hub para gestão unificada de postura
Para contexto mais profundo sobre automação confiável, veja nosso guia sobre engenharia de agentes de IA previsíveis com feedback loops. E se você está avaliando ferramentas de IA empresarial, veja como o Claude Opus 4.6 no Azure está definindo novos padrões para agentes autônomos.

Conclusão
Você agora tem um pipeline de detecção de PII totalmente automatizado que responde a uploads S3 em segundos, executa scans completos com identificadores nativos e personalizados, e produz relatórios de compliance prontos para auditoria sem intervenção manual.
O ponto principal: combinar a classificação gerenciada do Macie com seus próprios identificadores personalizados—orquestrados por Step Functions e disparados via EventBridge—dá a você visibilidade completa sobre dados sensíveis na sua organização.
Próximo passo: Clone o repositório GitHub de exemplo e faça deploy em um ambiente sandbox. Comece com um dataset pequeno, verifique os relatórios, e depois escale com identificadores personalizados adicionais para os formatos únicos da sua organização.