Saltar al contenido principal

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

policyComportamiento
mask_sensitiveEnmascara 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_sensitiveElimina completamente las columnas sensibles.
hash_sensitiveReemplaza con SHA-256 truncado a 12 caracteres (trazable pero no reversible).

Detección de columnas sensibles

godml combina dos mecanismos:

  1. Por contenido (PiiDetector): analiza una muestra de valores contra patrones (tarjeta, email, SSN, teléfono, IP, CURP, RFC, IBAN, coordenadas, etc.).
  2. 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