Por que a Detecção Automatizada de PII é Essencial
Em setores regulados como finanças, saúde e governo, dados contendo informações pessoais identificáveis (PII) fluem por todos os aplicativos — desde sistemas de sinistros até feeds de parceiros. A conformidade com GDPR, HIPAA, CCPA e PCI DSS exige que você saiba exatamente onde a PII reside e como ela é protegida. A classificação manual não escala, e ferramentas padrão muitas vezes perdem identificadores específicos do domínio, como números de apólice ou IDs de prontuário.
O Amazon Macie oferece descoberta gerenciada de dados sensíveis, mas você pode estendê-la com identificadores personalizados adaptados ao seu negócio. Neste guia, você vai construir um pipeline orientado a eventos que escaneia cada arquivo no momento em que chega ao Amazon S3, usando identificadores integrados e personalizados, e gera relatórios prontos para auditoria e alertas em tempo real.
O que Você Vai Construir
- EventBridge dispara em novos uploads no S3
- Step Functions orquestra o ciclo de vida da varredura
- Macie detecta PII com identificadores integrados + personalizados
- Lambda fornece a lógica de computação entre as etapas
- SNS envia notificações para achados de alta gravidade
Visão Geral da Arquitetura
A solução usa um padrão de três buckets para isolar dados por estado de processamento: raw, staged e scanned. Isso garante que dados não escaneados nunca se misturem com dados validados. Veja o fluxo:
- Um arquivo chega no bucket raw.
- O EventBridge detecta o upload e inicia um workflow no Step Functions.
- O Step Functions copia o arquivo para um bucket staged e cria um job de classificação no Macie.
- O Macie escaneia usando identificadores gerenciados e personalizados.
- O Lambda gera relatórios CSV e JSON com timestamp no bucket scanned.
- O SNS notifica seu time de segurança se PII de alta gravidade for encontrada.

Implementação Passo a Passo
Pré-requisitos
- Conta AWS com acesso administrativo
- AWS CLI v2 instalado
- Amazon Macie habilitado na região desejada
- E-mail válido para alertas SNS
Passo 1: Implante o Stack do CloudFormation
Baixe o template CloudFormation de exemplo e implante via CLI ou Console.
Opção A: AWS CLI
# Implante o stack com seus parâmetros desejados
aws cloudformation create-stack \
--stack-name pii-pipeline \
--template-body file://template.yaml \
--parameters ParameterKey=CustomIdentifierPatterns,ParameterValue='{"PolicyNumber":"\\d{3}-\\d{2}-\\d{4}"}' \
--capabilities CAPABILITY_IAM
Opção B: Console
- Vá para CloudFormation > Create Stack > With new resources
- Envie o template e preencha os parâmetros
- Aguarde
CREATE_COMPLETE(3–5 minutos)
Passo 2: Confirme a Assinatura do SNS
Você receberá um e-mail para confirmar a assinatura. Clique em Confirm subscription — caso contrário, os alertas não chegarão até você.
Passo 3: Verifique os Identificadores Personalizados
Após a implantação, verifique no console do Macie se seus identificadores personalizados estão ativos. Por exemplo, um regex personalizado para IDs de pacientes ou números de contrato aparecerá ao lado dos identificadores gerenciados.
Passo 4: Teste o Pipeline
Envie um arquivo de teste para o bucket raw:
# Envie um arquivo de teste para o bucket raw
aws s3 cp sample-data.csv s3://pii-raw-bucket/
Observe a execução do Step Functions começar em segundos. O inspetor de gráfico mostra cada estado: TriggerScan, WaitForMacie, CheckStatus, GetFindings, MoveFiles. Os jobs do Macie podem levar de 15 a 20 minutos, dependendo do tamanho dos dados e da quantidade de identificadores.
Passo 5: Revise os Relatórios
Quando o workflow concluir, você verá dois arquivos com timestamp no bucket scanned:
report-YYYYMMDD-HHMMSS.csv– resumo dos achadosreport-YYYYMMDD-HMSS.json– detalhes dos achados
O SNS envia um e-mail de notificação se PII de alta gravidade for detectada, permitindo que seu time responda imediatamente.
Exemplo de Código: Função Lambda para Geração de Relatórios
A função Lambda a seguir (Python) analisa os achados do Macie e escreve relatórios:
# Função Lambda para analisar achados do Macie e gerar relatórios CSV/JSON
import json
import boto3
from datetime import datetime
s3 = boto3.client('s3')
def lambda_handler(event, context):
# Recupera os achados do Macie do evento
findings = event['findings']
# Gera dados de relatório com timestamp
report_data = []
for finding in findings:
report_data.append({
'finding_id': finding['id'],
'type': finding['type'],
'severity': finding['severity']['description'],
'bucket': finding['resourcesAffected']['s3Bucket']['name'],
'key': finding['resourcesAffected']['s3Object']['key'],
'timestamp': datetime.utcnow().isoformat()
})
# Escreve relatório JSON no S3
json_report = json.dumps(report_data, indent=2)
s3.put_object(
Bucket='pii-scanned-bucket',
Key=f"reports/report-{datetime.utcnow().strftime('%Y%m%d-%H%M%S')}.json",
Body=json_report
)
# Escreve relatório CSV no S3
csv_lines = ['finding_id,type,severity,bucket,key']
for item in report_data:
csv_lines.append(f"{item['finding_id']},{item['type']},{item['severity']},{item['bucket']},{item['key']}")
s3.put_object(
Bucket='pii-scanned-bucket',
Key=f"reports/report-{datetime.utcnow().strftime('%Y%m%d-%H%M%S')}.csv",
Body='\n'.join(csv_lines)
)
return {'statusCode': 200, 'body': 'Relatórios gerados'}
Limitações e Cuidados
- Quotas do Macie: Você pode ter até 10.000 identificadores personalizados por conta, mas apenas 30 por job de classificação. Se precisar de mais, divida em vários jobs.
- Duração do job: A varredura pode levar de 15 a 20 minutos ou mais para arquivos grandes. Isso não é tempo real no sentido estrito — é quase em tempo real.
- Custo: Cada job de classificação incorre em custos do Macie. Para cargas de trabalho de alto volume, agrupe objetos para reduzir chamadas de API.
- Segurança: Este exemplo não inclui medidas de endurecimento de produção. Sempre habilite criptografia padrão no S3, criptografia no SNS e eventos de dados do CloudTrail.
Próximos Passos
Para estender esta solução, considere:
- Integração com data lake: Roteie os relatórios JSON para Athena ou QuickSight para análise de tendências.
- Workflows de remediação: Adicione um branch no Step Functions para quarentena de arquivos quando PII de alta gravidade for encontrada.
- Ambientes multi-conta: Use regras de EventBridge entre contas para centralizar a varredura.
- Processamento em lote: Modifique o trigger para agrupar objetos em um único job do Macie para otimização de custos.
Para mais sobre automação com IA, confira nosso artigo sobre Beyond the Chatbot: Como o Agent Lee da Cloudflare Redefine Interação com Plataformas — e se você trabalha com agentes de IA, veja ADK Go 1.0: Agentes de IA de Produção com Observabilidade.
Conclusão
Automatizar a detecção de PII com Amazon Macie e Step Functions não é só sobre conformidade — é sobre construir confiança. Este pipeline dá visibilidade em tempo real sobre dados sensíveis, reduz esforço manual e garante que você esteja pronto para auditorias. Implante, personalize seus identificadores e estenda-o para atender às necessidades da sua organização.
Referências
