La generalizzazione è il processo di assunzione di un valore distintivo e la sua astrazione in un valore più generale e meno distintivo. La generalizzazione tenta di preservare l'utilità dei dati riducendo al contempo la loro identificabilità.
Esistono molti livelli di generalizzazione a seconda del tipo di dati. Il grado di generalizzazione necessario è un valore che puoi misurare in un set di dati o in una popolazione reale utilizzando tecniche come quelle incluse nell'analisi dei rischi di Sensitive Data Protection.
Una tecnica di generalizzazione comune supportata da Sensitive Data Protection è il bucketing. Con il bucketing, raggruppi i record in bucket più piccoli nel tentativo di ridurre al minimo il rischio che un malintenzionato associ informazioni sensibili a informazioni di identificazione. In questo modo, puoi mantenere il significato e l'utilità, ma oscurerai anche i singoli valori che hanno un numero troppo ridotto di partecipanti.
Scenario di bucketing 1
Considera questo scenario di bucketing numerico: un database memorizza i punteggi di soddisfazione degli utenti, che vanno da 0 a 100. Il database ha il seguente aspetto:
user_id | punteggio |
---|---|
1 | 100 |
2 | 100 |
3 | 92 |
… | … |
Esaminando i dati, ti accorgi che alcuni valori vengono utilizzati raramente dagli utenti. Infatti, esistono alcuni punteggi che si mappano a un solo utente. Ad esempio, la maggior parte degli utenti sceglie 0, 25, 50, 75 o 100. Tuttavia, cinque utenti hanno scelto 95 e solo un utente ha scelto 92. Anziché conservare i dati non elaborati, puoi generalizzare questi valori in gruppi ed eliminare i gruppi con un numero troppo ridotto di partecipanti. A seconda di come vengono utilizzati, la generalizzazione dei dati in questo modo potrebbe contribuire a impedire la reidentificazione.
Puoi scegliere di rimuovere queste righe di dati outlier oppure puoi tentare di preservarne l'utilità utilizzando il bucketing. Per questo esempio, raggruppiamo tutti i valori in base a quanto segue:
- Da 0 a 25: "Basso"
- 26-75: "Medio"
- 76-100: "Alto"
Il raggruppamento in Sensitive Data Protection è una delle molte trasformazioni primitive disponibili per l'anonimizzazione. La seguente configurazione JSON illustra come implementare questo scenario di raggruppamento nell'API DLP. Questo JSON potrebbe essere incluso in una richiesta al metodo
content.deidentify
:
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per autenticarti a Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
REST
... { "primitiveTransformation": { "bucketingConfig": { "buckets": [ { "min": { "integerValue": "0" }, "max": { "integerValue": "25" }, "replacementValue": { "stringValue": "Low" } }, { "min": { "integerValue": "26" }, "max": { "integerValue": "75" }, "replacementValue": { "stringValue": "Medium" } }, { "min": { "integerValue": "76" }, "max": { "integerValue": "100" }, "replacementValue": { "stringValue": "High" } } ] } } } ...
Scenario di bucketing 2
Il bucketing può essere utilizzato anche su stringhe o valori enumerati. Supponiamo che tu voglia condividere i dati sugli stipendi e includere i titoli professionali. Tuttavia, alcuni titoli di lavoro, come CEO o ingegnere distinto, possono essere collegati a una persona o a un piccolo gruppo di persone. Questi titoli di lavoro possono essere facilmente associati ai dipendenti che li detengono.
Anche in questo caso può essere utile il bucketing. Invece di includere titoli di lavoro esatti, generalizzali e raggruppali. Ad esempio, "Ingegnere senior", "Ingegnere junior" e "Ingegnere esperto" diventano generici e raggruppati in "Ingegnere". La tabella seguente illustra il raggruppamento di titoli di lavoro specifici in famiglie di titoli di lavoro.
Altri scenari
In questi esempi abbiamo applicato la trasformazione ai dati strutturati. La suddivisione in bucket può essere utilizzata anche per gli esempi non strutturati, a condizione che il valore possa essere classificato con un infoType predefinito o personalizzato. Di seguito sono riportati alcuni scenari di esempio:
- Classificare le date e raggrupparle in intervalli di anni
- Classifica i nomi e raggruppali in base alla prima lettera (A-M, N-Z)
Risorse
Per scoprire di più sulla generalizzazione e sul bucketing, consulta Anonimizzazione dei dati sensibili nel contenuto testuale.
Per la documentazione dell'API, consulta:
projects.content.deidentify
methodBucketingConfig
transformation: raggruppa i valori in base a intervalli personalizzati.FixedSizeBucketingConfig
transformation: raggruppa i valori in base a intervalli di dimensioni fisse.