I dizionari personalizzati offrono la possibilità semplice ma efficace di abbinare 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 che corrispondano a risultati aggiuntivi.
Questa sezione descrive come creare un rilevatore di dizionari personalizzato regolare da un elenco di parole.
Struttura di un rilevatore infoType personalizzato di un dizionario
Come riepilogato nella
panoramica delle API, per creare
un rilevatore infoType personalizzato dizionario, devi definire un
oggetto CustomInfoType
contenente quanto segue:
- Il nome che vuoi assegnare al rilevatore infoType personalizzato, all'interno di un oggetto
InfoType
. - Un valore
Likelihood
facoltativo. Se ometti questo campo, le corrispondenze agli elementi del dizionario restituiranno la probabilità predefinita diVERY_LIKELY
. - Oggetti
DetectionRule
o regole hotword facoltativi. Queste regole regolano la probabilità degli esiti all'interno di una determinata vicinanza di hotword specificate. Scopri di più sulle regole hotword in Personalizzazione della probabilità di corrispondenza. Un valore
SensitivityScore
facoltativo. Se ometti questo campo, le corrispondenze agli elementi del dizionario restituiranno un livello di sensibilità predefinito diHIGH
.I punteggi di sensibilità vengono utilizzati nei profili di dati. Durante la profilazione dei dati, Sensitive Data Protection utilizza i punteggi di sensibilità degli infoType per calcolare il livello di sensibilità.
Un
Dictionary
, comeWordList
contenente un elenco di parole da cercare o unCloudStoragePath
in un singolo file di testo contenente un elenco di parole delimitate da una nuova riga da cercare.
Come oggetto JSON, un rilevatore infoType personalizzato di 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 incorporate, 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 corrispondenti al dizionario
Di seguito sono riportate alcune indicazioni su come Sensitive Data Protection associa parole e frasi del dizionario. Le seguenti indicazioni valgono sia per i dizionari personalizzati standard che per quelli di grandi dimensioni:
- Le parole del dizionario non fanno distinzione tra maiuscole e minuscole. Se il tuo dizionario include
Abby
, troverà una corrispondenza suabby
,ABBY
,Abby
e così via. - Tutti i caratteri, nei dizionari o nei contenuti da scansionare, diversi dalle lettere e dalle cifre contenute nel piano multilingue di base Unicode, vengono considerati come spazi vuoti durante la ricerca di corrispondenze. Se il tuo dizionario
cerca
Abby Abernathy
, troverà corrispondenze suabby abernathy
,Abby, Abernathy
,Abby (ABERNATHY)
e così via. - I caratteri che circondano qualsiasi corrispondenza devono essere di tipo diverso (lettere o cifre) rispetto ai caratteri adiacenti all'interno della parola. Se il tuo dizionario
cerca
Abi
, corrisponderà ai primi tre caratteri diAbi904
, ma non aAbigail
. - Le parole del dizionario contenenti caratteri nel piano multilingue supplementare dello standard Unicode possono generare risultati imprevisti. Esempi di tali caratteri sono cinese, giapponese, coreano ed emoji.
Esempi
Semplice elenco di parole
Supponiamo che tu disponga di dati che includono la stanza d'ospedale in cui è stato curato un paziente durante una visita. Queste località potrebbero essere considerate sensibili in un determinato set di dati, ma non verrebbero rilevate dai rilevatori integrati di Sensitive Data Protection.
Le stanze erano elencate come:
- "RM-Arancione"
- "RM-Giallo"
- "RM-Verde"
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 Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
REST
Il seguente codice JSON di esempio 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 POSTiamo l'input JSON in 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 di stanza
specificati nel messaggio
WordList
del dizionario personalizzato. Tieni presente che gli elementi vengono trovati anche quando mancano le maiuscole e le minuscole e il trattino (-
), come nel secondo esempio, "rm green".
Elenco eccezioni
Supponi di avere dati di log che includono identificatori dei clienti come gli indirizzi email e di voler oscurare queste informazioni. Tuttavia, questi log includono anche gli indirizzi email degli sviluppatori interni e non è consigliabile oscurarli.
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 Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
REST
Il seguente esempio JSON 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
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 POSTizziamo questo JSON in content:deidentify
, restituisce 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 utente1@example.com come corrispondenza dal
rilevatore infoType EMAIL_ADDRESS
e jack@example.org come corrispondente
dal 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 infoType integrato non restituisce i valori corretti. Ad esempio, vuoi restituire corrispondenze per nomi di persone, ma il rilevatore PERSON_NAME
integrato di Sensitive Data Protection non riesce a restituire corrispondenze per alcuni nomi di persone comuni nel tuo set di dati.
Sensitive Data Protection consente di potenziare i rilevatori di infoType integrati
includendo un rilevatore integrato nella dichiarazione per un rilevatore di 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 Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori 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 eseguire l'autenticazione in Sensitive Data Protection, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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.