Blog
LGPD em produtolgpd

Checklist técnico de LGPD para produtos com IA: dados mínimos, retenção e rastreabilidade

Checklist técnico e decisões de arquitetura para adequação à LGPD em produtos que usam IA — foco em dados mínimos, retenção e rastreabilidade.

Autor

Alexandre Satochi Yamamoto

10 de maio de 2026
8 min de leitura
Checklist técnico de LGPD para produtos com IA: dados mínimos, retenção e rastreabilidade

Não adianta ter uma política de privacidade impecável se, no código, o input do usuário vaza para logs de debug com nome completo, e-mail e histórico médico dentro de um mesmo JSON. Essa é a realidade que encontro com frequência em auditorias técnicas de produtos de IA. A LGPD não é um documento jurídico pendurado na parede — é uma restrição de arquitetura. E quando o produto envolve modelos de linguagem, a superfície de exposição de dados pessoais cresce de forma silenciosa. O que parece um texto inocente de currículo pode conter dados sensíveis implícitos, e cada camada de processamento (seu backend, a API do provedor, os logs de telemetria) se torna um ponto de vazamento potencial. Este artigo não é um checklist genérico. É um relato de engenharia sobre como transformar privacidade em decisões de design reais, com trade-offs, riscos e aprendizados práticos.

O erro mais comum que vejo é tratar a LGPD como um anexo do product backlog, algo que se resolve com um sprint de adequação depois do lançamento. Na prática, corrigir a arquitetura de dados retroativamente custa de 3 a 5 vezes mais caro, sem contar o risco reputacional de um incidente. Em produtos de IA, a complexidade é maior porque os dados pessoais não estão apenas em campos de formulário — eles estão no conteúdo gerado e processado. Um e-mail corporativo, um relatório médico, uma descrição de cargo: tudo isso é dado pessoal, e tudo isso trafega por provedores terceiros. A pergunta que não cala é: você sabe exatamente onde cada byte desses dados está agora, quem o acessou e quando será deletado?

Onde os dados realmente morrem? A armadilha dos logs e das APIs

Em um SaaS convencional, o fluxo de dados é relativamente linear: cadastro → banco → exibição. Em um produto com IA, o dado do usuário é enviado para um modelo externo, processado, retornado, armazenado em cache, logado em várias camadas e, muitas vezes, replicado em backups. Cada um desses estágios é um repositório em potencial. A fonte original menciona logs de operação como um problema, mas quero aprofundar um ponto que considero crítico: a dificuldade de pseudonimizar logs em tempo real sem perder a utilidade para depuração.

Já implementei sistemas onde tentamos substituir nomes por hashes no momento do log. O problema é que o hash de um nome comum (como "João Silva") pode ser reversível por dicionário. Além disso, se o log precisa correlacionar sessões de um mesmo usuário para troubleshooting, o hash de um identificador único (como user_id) é suficiente, mas se o log contém o texto completo do input, a pseudonimização parcial (substituir apenas campos conhecidos) não cobre dados implícitos. A solução que adotamos em um projeto de geração de contratos foi usar uma política de retenção agressiva (7 dias) para logs de input/output, e para logs de depuração técnica, manter apenas metadados (latência, modelo usado, status code), nunca o conteúdo. Isso exige um esforço extra de logging, mas reduz drasticamente a superfície.

Separação de dados de conta vs. dados de operação: uma decisão de schema

Na fonte, há uma recomendação de separar dados de conta (e-mail, plano) de dados de operação (inputs de IA). Quero reforçar que isso não é apenas uma boa prática de design — é uma decisão de engenharia com impacto direto em compliance. Se você armazena tudo na mesma tabela (ex: users com colunas email, name, last_input, generated_document), fica quase impossível implementar exclusão seletiva. Quando um usuário solicita a exclusão dos dados de operação (mas mantém a conta), você precisa fazer um update parcial que pode ser frágil. Com tabelas separadas (accounts e documents), a exclusão é um DELETE simples, e a portabilidade também é mais fácil: exporte apenas os dados de operação.

Outro ponto que a fonte não aprofunda é o impacto em backups. Se você faz dump de todo o banco de dados de produção sem considerar a política de retenção, dados excluídos podem persistir por anos. Em um cliente que atendi, descobrimos que um backup de 3 anos atrás ainda continha inputs de usuários deletados, porque o processo de backup era apenas pg_dump sem nenhum script de limpeza. A solução que implementamos foi usar backups incrementais com um ciclo de vida que espelha a política de retenção do banco principal, e para dados de operação, uma rotina que executa um DELETE lógico com soft delete e exclusão física agendada. Isso não é trivial, mas é necessário.

Minimização de dados: o que a engenharia pode fazer que o jurídico não consegue

A fonte fala sobre coletar apenas o estritamente necessário. Gostaria de adicionar uma camada prática: a minimização deve ser implementada na camada de API, não apenas no front-end. Já vi casos em que o front-end enviava um objeto completo com CPF mesmo que o backend não usasse — o campo estava lá "por precaução". Uma política de validação de entrada no backend, que rejeita campos não esperados, é uma barreira técnica que impede o acúmulo acidental. Além disso, em produtos de IA, muitas vezes o usuário cola um texto longo que contém dados sensíveis. A minimização aqui não é sobre pedir menos, mas sobre processar menos: se o modelo só precisa de um resumo, você pode extrair apenas as entidades relevantes (usando NER) e descartar o texto original antes de enviar ao provedor. Isso reduz a exposição e ainda pode melhorar a latência.

Outra decisão técnica que vale a pena discutir é a base legal. A fonte sugere priorizar execução de contrato ou legítimo interesse sobre consentimento. Concordo, mas com uma ressalva: o legítimo interesse para treinamento de modelos é um terreno nebuloso. A ANPD já sinalizou que o uso de dados para melhoria de IA pode não se enquadrar como legítimo interesse, a menos que haja uma expectativa razoável do usuário. Em produtos B2B, muitas vezes o contrato cobre o tratamento, mas em B2C, especialmente com dados sensíveis implícitos, o consentimento explícito ainda é a base mais segura. A engenharia precisa se adaptar: se a base é consentimento, o sistema deve ser capaz de revogar o tratamento de forma granular (ex: parar de usar o input para treinamento, mas manter o serviço funcionando). Isso exige um desenho de permissões no nível de feature.

Rastreabilidade: a base para demonstrar conformidade

A fonte toca no ponto de que "a ANPD pode solicitar demonstração de processos implementados". Isso é mais real do que parece. Em uma fiscalização, você precisará mostrar não só a política, mas os logs de acesso, as evidências de exclusão, os contratos com operadores. A rastreabilidade começa com um sistema de logging centralizado que registra: quem acessou qual dado, quando, e por quê. Para produtos de IA, isso inclui o registro de cada chamada de API para o provedor externo, com o hash do input (não o input original) e a resposta gerada. Usei a biblioteca structlog em Python para estruturar eventos de privacidade, e armazenamos em um banco separado, imutável (append-only), com acesso restrito a compliance e engenharia sênior. Isso dá uma trilha auditável sem expor dados pessoais.

Um risco que não vi na fonte é sobre a retenção de embeddings. Muitos sistemas de IA geram vetores de representação dos inputs e os armazenam em bancos vetoriais para busca semântica. Esses embeddings podem conter informações pessoais reconstruíveis? Estudos recentes mostram que sim, especialmente se o modelo foi treinado com dados sensíveis. Se você armazena embeddings, precisa tratá-los como dados pessoais — aplicar pseudonimização, política de retenção e inclusão no mapeamento de tratamento. Na prática, isso é complexo, mas ignorar não é opção.

O que aprendi na trincheira: erros e contramedidas

O erro mais frequente que testemunhei é acreditar que a cláusula "não armazenamos dados para treinamento" no contrato do provedor resolve tudo. A verdade é que mesmo que o provedor não use os dados para treinar, o dado trafega, fica em cache temporário, e pode ser inspecionado por equipes de suporte do provedor. Isso é um tratamento de dados, e precisa ser informado ao usuário. Além disso, a política do provedor pode mudar da noite para o dia. Recomendo que a engenharia monitore as atualizações de termos de serviço automaticamente (via RSS ou webhook) e mantenha um contrato que exija notificação prévia de mudanças.

Outro erro comum é não tratar backups como parte da política de retenção. Em um projeto de startup, os backups eram armazenados em um bucket S3 com lifecycle policy de 1 ano, enquanto a política de retenção do produto era de 90 dias. Resultado: dados de operação de usuários que já haviam solicitado exclusão estavam disponíveis em backups de 6 meses atrás. A solução foi implementar exclusão lógica com TTL em todos os bancos, e usar snapshots transientes com retenção curta para dados de operação, enquanto backups de conta (sem dados de operação) podem ter retenção mais longa para recuperação de desastres.

Privacidade como diferencial de engenharia

Transformar LGPD em um requisito de arquitetura não é apenas sobre evitar multas. É sobre construir confiança com o usuário final. Quando um usuário sabe que seu input de IA não será usado para treinar modelos sem consentimento, e que pode excluir seus dados a qualquer momento com um clique, a retenção e a satisfação aumentam. Produtos que tratam privacidade como um feature, e não como um fardo, se destacam em um mercado cada vez mais regulado.

O próximo passo prático que sugiro é: pegue o mapeamento de dados do seu produto, liste todos os pontos onde dados pessoais são armazenados, processados ou transmitidos. Inclua logs, backups, cache, provedores externos, e até mesmo o console do desenvolvedor (se você usa ferramentas como Sentry ou Datadog, elas também podem conter dados pessoais). Para cada ponto, defina uma política de retenção, um método de pseudonimização e um controle de acesso. Depois, automatize a verificação dessas políticas com testes de integração. Se o teste falhar, o deploy não passa. Essa é a engenharia que a LGPD exige.