Cloud Data Loss Prevention può rilevare, classificare e anonimizzare i dati sensibili all'interno dei dati strutturati. Quando anonimizzi i contenuti come tabella, la struttura e le colonne forniscono a Cloud DLP ulteriori indizi che potrebbero consentire di fornire risultati migliori per alcuni casi d'uso. Ad esempio, puoi analizzare una singola colonna per un determinato tipo di dati anziché l'intera struttura della tabella.
Questo argomento fornisce esempi di come configurare l'anonimizzazione dei dati sensibili nel testo strutturato. L'anonimizzazione viene abilitata tramite le trasformazioni dei record. Queste trasformazioni vengono applicate ai valori all'interno di dati di testo tabulari identificati come infoType specifico o a un'intera colonna di dati tabulari.
Questo argomento fornisce anche esempi di trasformazioni dei dati tabulari utilizzando il metodo di hash crittografico. I metodi di trasformazione crittografica sono univoci per via del requisito di una chiave di crittografia.
Il JSON fornito nei seguenti esempi può essere inserito in qualsiasi richiesta di anonimizzazione all'interno dell'attributo "deidentifyConfig"
(DeidentifyConfig
). Fai clic sul link "Esempio di Explorer API" per provare il codice JSON di esempio in Explorer API.
Trasforma una colonna senza ispezione
Per trasformare una colonna specifica in cui i contenuti sono già noti, puoi saltare l'ispezione e specificare direttamente una trasformazione. Nell'esempio seguente, la tabella blocca la colonna "PUNTEGGIO DI FELICITÀ" in incrementi di 10.
Input | Tabella trasformata | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Java
Per scoprire come installare e utilizzare la libreria client per Cloud DLP, consulta la pagina relativa alle librerie client di Cloud DLP.
Per eseguire l'autenticazione in Cloud DLP, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
"deidentifyConfig":{
"recordTransformations":{
"fieldTransformations":[
{
"fields":[
{
"name":"HAPPINESS SCORE"
}
],
"primitiveTransformation":{
"fixedSizeBucketingConfig":{
"bucketSize":10,
"lowerBound":{
"integerValue":"0"
},
"upperBound":{
"integerValue":"100"
}
}
}
}
]
}
}
Trasforma una colonna in base al valore di un'altra colonna
Puoi trasformare una colonna in base al valore di un'altra. Questo esempio oscura "PUNTEGGIO DI FELICITÀ" per tutti i pazienti sopra gli 89 anni.
Input | Tabella trasformata | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Java
Per scoprire come installare e utilizzare la libreria client per Cloud DLP, consulta la pagina relativa alle librerie client di Cloud DLP.
Per eseguire l'autenticazione in Cloud DLP, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
"deidentifyConfig":{
"recordTransformations":{
"fieldTransformations":[
{
"fields":[
{
"name":"HAPPINESS SCORE"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"*"
}
},
"condition":{
"expressions":{
"conditions":{
"conditions":[
{
"field":{
"name":"AGE"
},
"operator":"GREATER_THAN",
"value":{
"integerValue":"89"
}
}
]
}
}
}
}
]
}
}
Trasforma i risultati trovati nelle colonne
Puoi trasformare i risultati che costituiscono solo una parte del contenuto di una cella o tutto il contenuto. In questo esempio, tutte le istanze di PERSON_NAME
sono anonimizzate.
Input | Tabella trasformata | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Java
Per scoprire come installare e utilizzare la libreria client per Cloud DLP, consulta la pagina relativa alle librerie client di Cloud DLP.
Per eseguire l'autenticazione in Cloud DLP, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
"deidentifyConfig":{
"recordTransformations":{
"fieldTransformations":[
{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
}
}
]
},
"fields":[
{
"name":"PATIENT"
},
{
"name":"FACTOID"
}
]
}
]
}
}
Elimina una riga in base ai contenuti di una colonna
Puoi rimuovere una riga interamente in base ai contenuti visualizzati in qualsiasi colonna. Questo esempio sopprime il record di "Charles Dickens", in quanto questo paziente ha più di 89 anni.
Input | Tabella trasformata | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Java
Per scoprire come installare e utilizzare la libreria client per Cloud DLP, consulta la pagina relativa alle librerie client di Cloud DLP.
Per eseguire l'autenticazione in Cloud DLP, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
"deidentifyConfig":{
"recordTransformations":{
"recordSuppressions":[
{
"condition":{
"expressions":{
"conditions":{
"conditions":[
{
"field":{
"name":"AGE"
},
"operator":"GREATER_THAN",
"value":{
"integerValue":"89"
}
}
]
}
}
}
}
]
}
}
Trasforma i risultati solo quando sono soddisfatte condizioni specifiche su un altro campo
In questo esempio, i risultati relativi a PERSON_NAME
vengono oscurati solo se la colonna "AGE" indica che il paziente ha più di 89 anni.
Input | Tabella trasformata | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Java
Per scoprire come installare e utilizzare la libreria client per Cloud DLP, consulta la pagina relativa alle librerie client di Cloud DLP.
Per eseguire l'autenticazione in Cloud DLP, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
"deidentifyConfig":{
"recordTransformations":{
"fieldTransformations":[
{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
}
}
]
},
"fields":[
{
"name":"PATIENT"
},
{
"name":"FACTOID"
}
],
"condition":{
"expressions":{
"conditions":{
"conditions":[
{
"field":{
"name":"AGE"
},
"operator":"GREATER_THAN",
"value":{
"integerValue":"89"
}
}
]
}
}
}
}
]
}
}
Trasforma i risultati utilizzando una trasformazione crittografica dell'hash
I seguenti esempi JSON utilizzano le trasformazioni infoType per indicare all'API DLP di ispezionare l'intera struttura della tabella per infoType specifici e quindi di criptare i valori corrispondenti utilizzando una transizione temporanea.CryptoKey
L'esempio seguente mostra l'anonimizzazione di due infoType utilizzando una trasformazione hash crittografica.
Input:
userid | commenti |
---|---|
user1@example.org | il mio indirizzo email è utente1@example.org e il numero di telefono è 858-555-0222 |
user2@example.org | il mio indirizzo email è utente2@example.org e il numero di telefono è 858-555-0223 |
user3@example.org | il mio indirizzo email è utente3@example.org e il numero di telefono è 858-555-0224 |
Tabella trasformata:
userid | commenti |
---|---|
1kSfj3Op64MH1BiznupEpX0BdQrHMm62X6abgsPH5zM= | la mia email è 1kSfj3Op64MH1BiznupEpX0BdQrHMm62X6abgsPH5zM= e il telefono è hYXPcsJNBCe1rr51sHiVw2KhtoyMe4HEFKNHWFcDVm0= |
4ESy7+rEN8NVaUJ6J7kwvcgW8wcm0cm5gbBAcu6SfdM= | la mia email è 4ESy7+rEN8NVaUJ6J7kwvcgW8wcm0cm5gbBAcu6SfdM= e il telefono è KKqW1tQwgvGiC6iWJHhLiz2enNSEFRzhmLOf9fSTxRw= |
bu1blyd/mbjLmpF2Rdi6zpgsLatSwpJLVki2fMeudM0= | il mio indirizzo email è bu1blyd/mbjLmpF2Rdi6zpgsLatSwpJLVki2fMeudM0= e il telefono è eNt7qtZVLmxRb8z8NBR/+z00In07CI3hEMStbwofWoc= |
{
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
},
{
"name":"PHONE_NUMBER"
}
]
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
},
{
"name":"PHONE_NUMBER"
}
],
"primitiveTransformation":{
"cryptoHashConfig":{
"cryptoKey":{
"transient":{
"name":"[TRANSIENT-CRYPTO-KEY]"
}
}
}
}
}
]
}
},
"item":{
"table":{
"headers":[
{
"name":"userid"
},
{
"name":"comments"
}
],
"rows":[
{
"values":[
{
"stringValue":"abby_abernathy@example.org"
},
{
"stringValue":"my email is abby_abernathy@example.org and phone is 858-555-0222"
}
]
},
{
"values":[
{
"stringValue":"bert_beauregard@example.org"
},
{
"stringValue":"my email is bert_beauregard@example.org and phone is 858-555-0223"
}
]
},
{
"values":[
{
"stringValue":"cathy_crenshaw@example.org"
},
{
"stringValue":"my email is cathy_crenshaw@example.org and phone is 858-555-0224"
}
]
}
]
}
}
}
Trasforma i risultati utilizzando due trasformazioni crittografiche hash separate
Questo esempio mostra come utilizzare chiavi crittografiche diverse in trasformazioni diverse all'interno di un'unica configurazione di anonimizzazione. Innanzitutto, viene dichiarata una trasformazione del campo "userid". Tale trasformazione non include trasformazioni di infoType, quindi il campo "userid" in ogni riga viene trasformato, indipendentemente dal suo tipo di dati. Quindi viene dichiarata un'altra trasformazione del campo, questa nel campo "commenti".
Input:
userid | commenti |
---|---|
user1@example.org | il mio indirizzo email è utente1@example.org e il numero di telefono è 858-555-0222 |
abbyabernathy1 | il mio ID utente è abbyabernathy1 e il mio indirizzo email è aabernathy@example.com |
Tabella trasformata:
userid | commenti |
---|---|
5WvS4+aJtCCwWWG79cmRNamDgyvJ+CkuwNpA2gaR1VQ= | la mia email è vjqGLaA6+NUUnZAWXpI72lU1GfwQdOKu7XqWaJPcvQQ= e il telefono è BY+mSXXTu6mOoX5pr0Xbse60uelsSHmwRCq6HcscKtk= |
t0dOmHvkT0VsM++SVmESVKHenLkmhBmFezH3hSDldDg= | il mio userid è abbyabernathy1 e la mia e-mail è TQ3ancdUn9zgwO5qe6ahkmVrBuNhvlMknxjPjIt0N2w= |
{
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
},
{
"name":"PHONE_NUMBER"
}
]
},
"deidentifyConfig":{
"recordTransformations":{
"fieldTransformations":[
{
"fields":[
{
"name":"userid"
}
],
"primitiveTransformation":{
"cryptoHashConfig":{
"cryptoKey":{
"transient":{
"name":"[TRANSIENT-CRYPTO-KEY-1]"
}
}
}
}
},
{
"fields":[
{
"name":"comments"
}
],
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_NUMBER"
},
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"cryptoHashConfig":{
"cryptoKey":{
"transient":{
"name":"[TRANSIENT-CRYPTO-KEY-2]"
}
}
}
}
}
]
}
}
]
}
},
"item":{
"table":{
"headers":[
{
"name":"userid"
},
{
"name":"comments"
}
],
"rows":[
{
"values":[
{
"stringValue":"user1@example.org"
},
{
"stringValue":"my email is user1@example.org and phone is 858-333-2222"
}
]
},
{
"values":[
{
"stringValue":"abbyabernathy1"
},
{
"stringValue":"my userid is abbyabernathy1 and my email is aabernathy@example.com"
}
]
}
]
}
}
}