I dizionari personalizzati offrono la possibilità semplice ma efficace di trovare una corrispondenza 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 i dizionari personalizzati per aumentare i rilevatori di infoType integrati in modo da trovare corrispondenze con altri risultati.
Questa sezione descrive come creare un normale rilevatore di dizionari personalizzati da un elenco di parole.
Anatomia di un rilevatore di infoType personalizzato del dizionario
Come descritto nella
panoramica dell'API, per creare un
rilevaore 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 agli elementi del dizionario restituiranno una probabilità predefinita diVERY_LIKELY
. - (Facoltativo)
Oggetti
DetectionRule
o regole hotword. Queste regole regolano la probabilità di risultati in una determinata vicinanza a parole chiave specifiche. Scopri di più sulle regole per le hotword in Personalizzare la 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 dei dati. Quando esegue il profilo dei tuoi dati, Sensitive Data Protection utilizza i punteggi di sensibilità degli infoType per calcolare il livello di sensibilità.
Un
Dictionary
, come unWordList
contenente un elenco di parole da cercare o unCloudStoragePath
a un singolo file di testo contenente un elenco di parole da cercare delimitato da riga nuova.
Come oggetto JSON, un rilevatore di infoType personalizzato del dizionario che include tutti gli componenti facoltativi è simile al seguente. 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 di 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"
}
}
}
],
...
}
Dettagli sulla corrispondenza del dizionario
Di seguito sono riportate indicazioni su come Sensitive Data Protection abbina le parole e le frasi del dizionario. Questi punti si applicano sia ai dizionari personalizzati regolari che a quelli di grandi dimensioni:
- Le parole del dizionario non fanno distinzione tra maiuscole e minuscole. Se il tuo dizionario include
Abby
, verrà trovata una corrispondenza 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 piano multilingue di base Unicode sono considerati spazi vuoti durante la ricerca di corrispondenze. Se il dizionario cerca
Abby Abernathy
, corrisponderà aabby abernathy
,Abby, Abernathy
,Abby (ABERNATHY)
e così via. - I caratteri che circondano una corrispondenza devono essere di tipo diverso (lettere o cifre) rispetto ai caratteri adiacenti all'interno della parola. Se il dizionario cerca
Abi
, corrisponderà ai primi tre caratteri diAbi904
, ma non diAbigail
. - Le parole del dizionario contenenti caratteri nel piano multilinguale supplementare dello standard Unicode possono produrre risultati imprevisti. Esempi di questi caratteri sono emoji, simboli scientifici e scritture storiche.
Le lettere, i numeri 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 semplici
Supponiamo di avere dati che includono la stanza dell'ospedale in cui è stato curato un paziente durante una visita. Queste posizioni potrebbero essere considerate sensibili in un determinato set di dati, ma non sono elementi che verrebbero rilevati dai rilevatori integrati di Sensitive Data Protection.
Le camere sono state indicate 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 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
L'esempio JSON seguente definisce un dizionario personalizzato che puoi utilizzare per eliminare l'identificazione dei 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 tramite POST 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 camera
specificati nel messaggio
WordList
del dizionario personalizzato. Tieni presente che gli elementi vengono trovati anche quando mancano le maiuscole e il trattino (-
), come nel secondo esempio, "rm green".
Elenco di eccezioni
Supponiamo che tu abbia dati dei log che includono identificatori dei clienti, come gli indirizzi email, e che tu voglia oscurare queste informazioni. Tuttavia, questi log includono anche gli indirizzi email degli sviluppatori interni e non vuoi oscurarli.
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
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 li assegna al nome personalizzato infoType DEVELOPER_EMAIL
. Questo JSON indica a Sensitive Data Protection di ignorare gli indirizzi email specificati, sostituendo contemporaneamente 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 di infoType EMAIL_ADDRESS
e jack@example.org come corrispondente al rilevatore di infoType personalizzato DEVELOPER_EMAIL
. Tieni presente che, poiché abbiamo scelto di trasformare solo EMAIL_ADDRESS
, jack@example.org è stato lasciato invariato.
Migliorare 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 per i 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 ti consente di aumentare i rilevatori di infoType integrati includendo un rilevatore integrato nella dichiarazione di un rilevatore di infoType personalizzato, come mostrato nell'esempio seguente. Questo snippet illustra come configurare Sensitive Data Protection in modo che il rilevatore di tipo di infoType PERSON_NAME
integrato 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 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
... "inspectConfig":{ "customInfoTypes":[ { "infoType":{ "name":"PERSON_NAME" }, "dictionary":{ "wordList":{ "words":[ "quasimodo" ] } } } ] } ...
Passaggi successivi
Scopri di più sui dizionari personalizzati di grandi dimensioni.