SKILL.md
piianonymizerpresidio
Microsoft Presidio analiza texto en busca de PII (nombres, DNIs, fechas de nacimiento, IBANs, emails) y los reemplaza por tokens antes de que lleguen a los logs o a cualquier sistema de almacenamiento secundario.
When to use
Usar como middleware de logging y antes de cualquier export de datos a sistemas externos (Loki, Jaeger, Grafana). Aplicar también sobre los campos textuales extraídos por OCR antes de persistirlos en auditoría.
Instructions
- Instalar:
pip install presidio-analyzer presidio-anonymizer - Descargar modelo spaCy:
python -m spacy download escorenewslg(español) yencoreweblg(inglés). - Inicializar en
backend/core/privacy.py:
``python from presidioanalyzer import AnalyzerEngine from presidioanonymizer import AnonymizerEngine analyzer = AnalyzerEngine() anonymizer = AnonymizerEngine() ``
- Función de enmascarado:
``python def anonymizetext(text: str, language: str = "es") -> str: results = analyzer.analyze(text=text, language=language) return anonymizer.anonymize(text=text, analyzerresults=results).text ``
- Añadir processor personalizado en structlog que aplique
anonymize_text()al campomessagede cada log entry. - Configurar entidades a detectar:
PERSON,IDNUMBER,DATETIME,IBANCODE,EMAILADDRESS,PHONE_NUMBER. - Para campos de OCR (nombre, DOB, número de documento), aplicar antes de INSERT en PostgreSQL.
Notes
- Presidio opera completamente offline — no envía datos a ningún servicio externo.
- El modelo spaCy es el más preciso para español; para rendimiento en producción usar
escorenews_sm. - Los campos MRZ y embeddings NO deben llegar nunca a los logs — filtrarlos antes de la capa de anonimización.