I dizionari personalizzati offrono la possibilità semplice, ma efficace, di trovare corrispondenze con un elenco di parole o frasi. Puoi utilizzare un dizionario personalizzato come rilevatore o come elenco di eccezioni per i rilevatori integrati. Puoi anche utilizzare dizionari personalizzati per migliorare i rilevatori di infoType integrati in modo da trovare ulteriori risultati.
Questa sezione descrive come creare un rilevatore di dizionario personalizzato standard da un elenco di parole.
Anatomia di un rilevatore infoType personalizzato del dizionario
- Il nome che vuoi assegnare al rilevatore infoType personalizzato, all'interno di un oggetto
InfoType. - Un valore
Likelihoodfacoltativo. Se ometti questo campo, le corrispondenze con gli elementi del dizionario restituiranno una probabilità predefinita diVERY_LIKELY. - Facoltativo
DetectionRuleoggetti o regole hotword. Queste regole modificano la probabilità dei risultati entro una determinata prossimità delle hotword specificate. Scopri di più sulle regole per le hotword in Personalizza la probabilità di corrispondenza. Un valore
SensitivityScorefacoltativo. Se ometti questo campo, le corrispondenze con gli elementi del dizionario restituiranno un livello di sensibilità predefinito pari aHIGH.I punteggi di sensibilità vengono utilizzati nei profili dati. Quando esegue la profilazione dei dati, Sensitive Data Protection utilizza i punteggi di sensibilità degli infoType per calcolare il livello di sensibilità.
Un
Dictionary, comeWordListcontenente un elenco di parole da analizzare o unCloudStoragePatha un singolo file di testo contenente un elenco di parole da analizzare delimitate da un ritorno a capo.
Come oggetto JSON, un rilevatore infoType personalizzato del dizionario che include tutti i componenti facoltativi ha il seguente aspetto. Questo JSON include un percorso a un file di testo del dizionario archiviato in Cloud Storage. Per visualizzare un elenco di parole in linea, consulta la sezione Esempi più avanti in questo argomento.
{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_INFOTYPE_NAME"
},
"likelihood":"LIKELIHOOD_LEVEL",
"detectionRules":[
{
"hotwordRule":{
HOTWORD_RULE
}
},
...
],
"sensitivityScore":{
"score": "SENSITIVITY_SCORE"
},
"dictionary":
{
"cloudStoragePath":
{
"path": "gs://PATH_TO_TXT_FILE"
}
}
}
],
...
}
Specifiche di corrispondenza del dizionario
Di seguito sono riportate indicazioni su come Sensitive Data Protection trova corrispondenze con parole e frasi del dizionario. Questi punti si applicano sia ai dizionari personalizzati normali che a quelli di grandi dimensioni:
- Le parole del dizionario non fanno distinzione tra maiuscole e minuscole. Se il dizionario include
Abby, corrisponderà aabby,ABBY,Abbye così via. - Tutti i caratteri, nei dizionari o nei contenuti da scansionare, diversi da lettere, cifre e altri caratteri alfabetici contenuti nel Basic Multilingual Plane Unicode vengono considerati spazi vuoti durante la scansione delle corrispondenze. Se il tuo dizionario
esegue la scansione di
Abby Abernathy, troverà corrispondenze conabby abernathy,Abby, Abernathy,Abby (ABERNATHY)e così via. - I caratteri che circondano qualsiasi corrispondenza devono essere di un tipo diverso (lettere o cifre) rispetto ai caratteri adiacenti all'interno della parola. Se il dizionario esegue la scansione di
Abi, troverà una corrispondenza con i primi tre caratteri diAbi904, ma non diAbigail. - Le parole del dizionario contenenti caratteri nel Supplementary Multilingual Plane dello standard Unicode possono produrre risultati imprevisti. Esempi di questi caratteri sono emoji, simboli scientifici e scritture storiche.
Lettere, cifre e altri caratteri alfabetici sono definiti come segue:
- Lettere: caratteri con categorie generali
Lu,Ll,Lt,LmoLonella specifica Unicode - Cifre: caratteri con categoria generale
Ndnella specifica Unicode - Altri caratteri alfabetici: caratteri con categoria generale
Nlnella specifica Unicode o con proprietà contributivaOther_Alphabeticcome definito dallo standard Unicode
Esempi
Elenco di parole semplice
Supponiamo che tu abbia dati che includono la stanza d'ospedale in cui è stato curato un paziente durante una visita. Queste località possono essere considerate sensibili in un determinato set di dati, ma non vengono rilevate dai rilevatori integrati di Sensitive Data Protection.
Le stanze sono state elencate come:
- "RM-Orange"
- "RM-Yellow"
- "RM-Green"
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Il seguente esempio JSON definisce un dizionario personalizzato che puoi utilizzare per anonimizzare i numeri di stanza personalizzati.
Input JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"Patient was seen in RM-YELLOW then transferred to rm green."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_ROOM_ID"
},
"dictionary":{
"wordList":{
"words":[
"RM-GREEN",
"RM-YELLOW",
"RM-ORANGE"
]
}
}
}
]
}
}
Output JSON:
Quando inviamo l'input JSON a content:deidentify, viene restituita la seguente risposta JSON:
{
"item":{
"value":"Patient was seen in [CUSTOM_ROOM_ID] then transferred to [CUSTOM_ROOM_ID]."
},
"overview":{
"transformedBytes":"17",
"transformationSummaries":[
{
"infoType":{
"name":"CUSTOM_ROOM_ID"
},
"transformation":{
"replaceWithInfoTypeConfig":{
}
},
"results":[
{
"count":"2",
"code":"SUCCESS"
}
],
"transformedBytes":"17"
}
]
}
}
Sensitive Data Protection ha identificato correttamente i numeri delle stanze specificati nel messaggio WordList del dizionario personalizzato. Tieni presente che gli elementi vengono abbinati anche quando mancano le maiuscole/minuscole e il trattino (-), come nel secondo esempio, "rm green".
Elenco di eccezioni
Supponiamo che tu abbia dati di log che includono identificatori dei clienti, come indirizzi email, e che tu voglia oscurare queste informazioni. Tuttavia, questi log includono anche gli indirizzi email degli sviluppatori interni, che non vuoi oscurare.
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
L'esempio JSON seguente crea un dizionario personalizzato che elenca un sottoinsieme di indirizzi email all'interno del messaggio WordList (jack@example.org e jill@example.org) e assegna loro il nome infoType personalizzato DEVELOPER_EMAIL. Questo JSON indica a Sensitive Data Protection di ignorare gli indirizzi email specificati, sostituendo al contempo tutti gli altri indirizzi email rilevati con una stringa corrispondente al relativo infoType (in questo caso, EMAIL_ADDRESS):
Input JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"jack@example.org accessed customer record of user5@example.com"
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
},
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"DEVELOPER_EMAIL"
},
"dictionary":{
"wordList":{
"words":[
"jack@example.org",
"jill@example.org"
]
}
}
}
],
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
"ruleSet": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"rules": [
{
"exclusionRule": {
"excludeInfoTypes": {
"infoTypes": [
{
"name": "DEVELOPER_EMAIL"
}
]
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
}
Output JSON:
Quando inviamo questo JSON tramite POST a content:deidentify, viene restituita la seguente risposta JSON:
{
"item":{
"value":"jack@example.org accessed customer record of [EMAIL_ADDRESS]"
},
"overview":{
"transformedBytes":"17",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceWithInfoTypeConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"17"
}
]
}
}
L'output ha identificato correttamente user1@example.com come corrispondente al rilevatore infoType EMAIL_ADDRESS e jack@example.org come corrispondente al rilevatore infoType personalizzato DEVELOPER_EMAIL. Tieni presente che, poiché abbiamo scelto di trasformare solo EMAIL_ADDRESS, jack@example.org è rimasto invariato.
Potenzia un rilevatore di infoType integrato
Considera uno scenario in cui un rilevatore di infoType integrato non restituisce i valori corretti. Ad esempio, vuoi restituire corrispondenze sui nomi delle persone, ma il rilevatore PERSON_NAME integrato di Sensitive Data Protection non riesce a restituire corrispondenze su alcuni nomi di persone comuni nel tuo set di dati.
Sensitive Data Protection ti consente di migliorare i rilevatori infoType integrati includendo un rilevatore integrato nella dichiarazione di un rilevatore infoType personalizzato, come mostrato nell'esempio seguente. Questo snippet illustra come configurare Sensitive Data Protection in modo che il rilevatore di infoType integrato PERSON_NAME corrisponda anche al nome "Quasimodo:"
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta Librerie client di Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura 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 eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
...
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PERSON_NAME"
},
"dictionary":{
"wordList":{
"words":[
"quasimodo"
]
}
}
}
]
}
...
Passaggi successivi
Scopri di più sui dizionari personalizzati di grandi dimensioni.