Compliance Service
godml aplica automáticamente las políticas de compliance antes del entrenamiento — ningún dato sensible llega al modelo sin ser tratado.
Configuración
governance:
owner: tu-equipo # obligatorio si defines 'governance'
compliance: pci-dss # única norma soportada hoy
policy: mask_sensitive # qué hacer con datos sensibles
Políticas disponibles
policy | Comportamiento |
|---|---|
mask_sensitive | Enmascara conservando un prefijo legible: emails (jo**@example.com), fechas (2024-**-**), códigos postales (90**), y una máscara genérica (45**************) para el resto — no un ***MASKED*** fijo. |
drop_sensitive | Elimina completamente las columnas sensibles. |
hash_sensitive | Reemplaza con SHA-256 truncado a 12 caracteres (trazable pero no reversible). |
Detección de columnas sensibles
godml combina dos mecanismos:
- Por contenido (
PiiDetector): analiza una muestra de valores contra patrones (tarjeta, email, SSN, teléfono, IP, CURP, RFC, IBAN, coordenadas, etc.). - Por nombre de columna (heurística): activa si el nombre contiene alguna de estas palabras (case-insensitive) —
["name", "email", "address", "ssn", "card", "cvv", "zip", "postal", "dob", "birth"]
Si una columna coincide por nombre pero no por contenido, se le aplica la máscara genérica (no la específica de email/fecha/zip).
Dataset compliant
Guarda el dataset después de aplicar compliance:
dataset:
uri: ./data/raw.csv
compliant_output: ./data/clean_pci.csv # ← guardado aquí; también reemplaza dataset.uri para el entrenamiento
target: amount_fraud
governance:
owner: tu-equipo
compliance: pci-dss
policy: mask_sensitive
El archivo clean_pci.csv puede ser auditado para demostrar compliance.
Ejemplo (verificado)
Dataset original:
customer_id | email | credit_card | amount | fraud
1 | john@example.com | 4532015112830366 | 150.00 | 0
2 | mary@example.com | 5425233430109903 | 2500 | 1
Después de mask_sensitive:
customer_id | email | credit_card | amount | fraud
1 | jo**@example.com | 45************** | 150.00 | 0
2 | ma**@example.com | 54************** | 2500 | 1
Después de drop_sensitive:
customer_id | amount | fraud
1 | 150.00 | 0
2 | 2500 | 1
Después de hash_sensitive:
customer_id | email | credit_card | amount | fraud
1 | 855f96e983f1 | 9b089351f897 | 150.00 | 0
2 | f1904cf1a9d7 | be6a3050f261 | 2500 | 1
El modelo entrena con amount/fraud tratados (o sin email/credit_card si usas drop_sensitive) — sin PII cruda.
Con SageMaker
El compliance también se aplica en el PreprocessingStep de SageMaker, antes de que los datos lleguen al container de entrenamiento:
provider: sagemaker
governance:
owner: tu-equipo
compliance: pci-dss
policy: drop_sensitive
→ Modelos