I dizionari personalizzati offrono la possibilità semplice ma potente 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 ampliare i rilevatori di infoType integrati in modo da trovare corrispondenze aggiuntive.
Questa sezione descrive come creare un rilevatore di dizionari personalizzato normale da un elenco di parole.
Anatomia di un rilevatore di infoType personalizzato del dizionario
Come riassunto nella
panoramica dell'API, per creare un
detector di infoType personalizzato del dizionario, definisci un
oggetto CustomInfoType
che contiene quanto segue:
- Il nome che vuoi assegnare al rilevatore di InfoType personalizzato, all'interno di un oggetto
InfoType
. - Un valore
Likelihood
facoltativo. Se ometti questo campo, le corrispondenze con le voci del dizionario restituiranno una probabilità predefinita diVERY_LIKELY
. - Facoltativo
DetectionRule
oggetti o regole per la hotword. Queste regole modificano la probabilità di risultati entro una determinata prossimità di hotword specificate. Scopri di più sulle regole della hotword in Personalizzazione della probabilità di corrispondenza. Un valore
SensitivityScore
facoltativo. Se ometti questo campo, le corrispondenze con le voci del dizionario restituiranno un livello di sensibilità predefinito diHIGH
.I punteggi di sensibilità vengono utilizzati nei profili dei 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
a un singolo file di testo contenente un elenco di parole da cercare delimitate da interruzioni di riga.
Come oggetto JSON, un rilevatore di tipi di infoType personalizzati 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 della corrispondenza del dizionario
Di seguito sono riportate indicazioni su come Sensitive Data Protection abbina 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 tuo dizionario include
Abby
, la corrispondenza verrà trovata perabby
,ABBY
,Abby
e 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 di Unicode, sono considerati spazi durante la scansione per trovare corrispondenze. Se il dizionario
cerca
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
cerca
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 caratteri storici.
Lettere, cifre e altri caratteri alfabetici sono definiti come segue:
- Lettere: caratteri con categorie generali
Lu
,Ll
,Lt
,Lm
oLo
nella specifica Unicode - Cifre: caratteri con categoria generale
Nd
nella specifica Unicode - Altri caratteri alfabetici: caratteri con categoria generale
Nl
nella specifica Unicode o con proprietà contributivaOther_Alphabetic
come definito dallo standard Unicode
Esempi
Elenco di parole semplice
Supponiamo di avere dati che includono la stanza d'ospedale in cui è stato curato un paziente durante una visita. Queste posizioni potrebbero essere considerate sensibili in un determinato set di dati, ma non vengono rilevate dai rilevatori integrati di Sensitive Data Protection.
Le stanze erano elencate come:
- "RM-Orange"
- "RM-Yellow"
- "RM-Green"
C#
Per scoprire come installare e utilizzare la libreria client per Sensitive Data Protection, consulta la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Il seguente esempio JSON definisce un dizionario personalizzato che potresti utilizzare per de-identificare i numeri di camera 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 di stanza
specificati nel messaggio
WordList
del dizionario personalizzato. Tieni presente che gli elementi vengono abbinati anche quando mancano le maiuscole e la lineetta (-
), come nel secondo esempio, "rm green".
Elenco delle eccezioni
Supponiamo di avere dati di log che includono identificatori dei clienti come indirizzi email e di voler 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura 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 del tipo di infoType personalizzato DEVELOPER_EMAIL
. Questo JSON indica
a Sensitive Data Protection di ignorare gli indirizzi email specificati, sostituendo
qualsiasi altro indirizzo email rilevato con una stringa corrispondente
al suo 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 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 corrispondenza del rilevatore di infoType EMAIL_ADDRESS
e jack@example.org come corrispondenza del rilevatore di infoType personalizzato DEVELOPER_EMAIL
. Tieni presente che, poiché abbiamo scelto di trasformare solo EMAIL_ADDRESS
, jack@example.org è rimasto invariato.
Aumentare un rilevatore di infoType integrato
Prendi in considerazione uno scenario in cui un rilevatore di infoType integrato non restituisce i
valori corretti. Ad esempio, vuoi restituire corrispondenze sui nomi di 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 aumentare i rilevatori di infoType integrati
includendo un rilevatore integrato nella dichiarazione per un rilevatore di infoType personalizzato, come mostrato nell'esempio seguente. Questo snippet mostra 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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 la sezione Librerie client Sensitive Data Protection.
Per eseguire l'autenticazione in Sensitive Data Protection, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, 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.