← Torna ai progetti

Privacy engineering · PoC sintetico

Data Governance & Masking

Classificazione PII e pseudonimizzazione coerente su dati relazionali sintetici.

Esplora l’architettura

Contesto

Il tirocinio presso Spindox ha riguardato Data Governance e Data Masking. Il caso tecnico qui documentato è un proof of concept personale su dati sintetici: i risultati non descrivono sistemi o attività interne a Spindox.

Problema

Mascherare identificativi sensibili campo per campo può interrompere join, vincoli e corrispondenze tra sistemi. Copiare dati non protetti in ambienti di sviluppo o analisi aumenta invece l’esposizione delle persone.

Obiettivo

Inventariare e classificare le colonne PII, applicare pseudonimi coerenti a dati relazionali collegati e verificare che il dataset protetto conservi le proprietà tecniche previste.

Responsabilità personali

Ho sviluppato e documentato il repository del proof of concept: flusso CLI, regole di classificazione e mascheramento, controlli sul database protetto e test automatici. Non descrivo qui responsabilità o deliverable interni all’azienda.

Architettura

Processo del PoC sintetico

  1. 01Generazione
  2. 02Inventario
  3. 03Profiling
  4. 04Classificazione
  5. 05Mascheramento
  6. 06Validazione
Sequenza implementata nella CLI locale. I controlli riguardano soltanto il dataset sintetico.

Implementazione documentata

Il flusso locale genera dati sintetici, inventaria schemi e relazioni, profila e classifica i campi, applica le regole di pseudonimizzazione e valida gli schemi protetti. Le policy sono versionate in YAML; le mappature dei valori restano in memoria durante il batch.

Decisioni e compromessi

  • Coerenza tra tabelle

    Gli pseudonimi deterministici usano una chiave esterna, normalizzazione e namespace. Le chiavi tecniche autorizzate restano stabili per preservare le relazioni. Questo mantiene una possibilità di collegamento: si tratta di pseudonimizzazione, non di anonimizzazione.

  • Revisione delle ambiguità

    Una classificazione ambigua non viene mascherata con una regola indovinata: l’esecuzione richiede una scelta esplicita. Il controllo manuale aumenta il lavoro operativo, ma rende la decisione tracciabile.

Controlli e verifiche

Il repository documenta test su conteggi, vincoli, relazioni tra tabelle, gruppi di coerenza, drift dello schema e idempotenza deterministica sul carico sintetico.

Evidenze e risultati documentati

  • Inventario sintetico

    20 tabelle sorgente e 20 protette; 109 colonne inventariate e classificate nel carico di riferimento.

  • Controlli documentati

    La suite del repository verifica relazioni, vincoli, assenza di drift dello schema e idempotenza deterministica sul dataset sintetico.

Limiti e miglioramenti

La verifica riguarda solo dati sintetici. Non dimostra accuratezza su dati reali, prestazioni aziendali o conformità normativa. Autenticazione, gestione operativa dei segreti e osservabilità di produzione richiedono lavoro ulteriore.

Tecnologie

  • Python 3.12
  • PostgreSQL 16
  • YAML
  • pytest

Fonti e perimetro

Le quantità e i controlli derivano dal repository personale del proof of concept. Non sono misure del tirocinio Spindox; codice, documenti e dati aziendali non sono inclusi.

Il repository non è attualmente accessibile pubblicamente; il collegamento al codice sarà aggiunto solo quando sarà pubblicabile.