Pular para conteúdo

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?