Capítulo 4.6 — PII, DLP e tenant isolation¶
🎯 Objetivo¶
Aterrar proteção de dados pessoais (PII), Data Loss Prevention (DLP) e isolamento entre tenants como controles operacionais, com clareza sobre o que cada um faz e o que não faz.
🧠 Conceitos¶
- PII (Personally Identifiable Information). Dado que identifica uma pessoa direta ou indiretamente. Inclui nome, e-mail, telefone, documento, endereço, IP em alguns regimes.
- DLP (Data Loss Prevention). Conjunto de controles para detectar e bloquear movimentação inadequada de dados sensíveis. Em IA, é especialmente relevante na fronteira aplicação -> modelo externo e modelo -> log.
- Tenant isolation. Garantia de que dados de um cliente não vazam para outro. Em SaaS multi-tenant é requisito básico; em IA, é frequentemente o ponto onde a arquitetura falha em silêncio.
🛡️ Controles mínimos¶
- Classificação de dados desde a coleta: público, interno, confidencial, restrito.
- Masking / tokenização de PII quando o dado é usado para treino, eval ou debugging.
- DLP antes de enviar ao modelo externo. Redaction ou rejeição quando classe sensível é detectada.
- Logs redigidos. Prompts, tool args, retrieval outputs passam por redaction antes de persistir.
- Retenção limitada. Tempo claro de vida; deleção automática.
- Segregação por tenant. No storage, no índice vector, na memória, na fila, na observabilidade.
- Chaves por tenant quando o regime exige (envelope encryption).
- Políticas regionais (residência de dados): EU stays in EU, BR stays in BR quando aplicável.
- Auditoria de acesso a dados sensíveis, com alerta para padrões anômalos.
🚨 Modos de falha clássicos¶
- Tenant filter no prompt em vez do storage. Documentado em Cap. 2.6 (RAG).
- Cache semântico sem isolamento por tenant. Resposta de um cliente entregue a outro com query similar.
- DLP que bloqueia poucas classes (e-mail, telefone) mas ignora outras (número de pedido, ID de contrato).
- Backup que não respeita região. Compliance vira pendência recorrente.
- Logs com prompts crus em "ambiente de dev" que terminam em bucket público.
⚠️ Limites honestos¶
- DLP heurístico tem falsos positivos e falsos negativos. Ele reduz risco, mas não substitui design que minimize dado sensível na fronteira.
- Tokenização reversível não é o mesmo que anonimização real. Para compartilhar dados externamente, considere k-anonimização, diferencial privacy ou pseudonimização irreversível, dependendo do uso.
- Tenant isolation por filtro é mais fraco do que por segregação física do storage. Em tenants de risco alto, prefira separação real.
📌 Checklist¶
- [ ] PII é classificada e tem ciclo de vida documentado?
- [ ] DLP roda na fronteira aplicação ↔ modelo externo?
- [ ] Logs são redigidos antes de persistir?
- [ ] Tenant isolation é aplicada em todas as camadas (storage, índice, memória, cache, fila, observabilidade)?
- [ ] Residência de dados é respeitada em todos os ambientes, inclusive backup?