Les dictionnaires personnalisés permettent de façon simple, mais efficace, de trouver une liste de mots ou d'expressions. Vous pouvez utiliser un dictionnaire personnalisé en tant que détecteur ou en tant que liste d'exceptions pour les détecteurs intégrés. Vous pouvez également utiliser des dictionnaires personnalisés pour augmenter la couverture des détecteurs d'infoTypes intégrés afin qu'ils identifient davantage de correspondances.
Cette section explique comment créer un détecteur de dictionnaire personnalisé standard à partir d'une liste de mots.
Anatomie d'un détecteur d'infoType de dictionnaire personnalisé
Comme résumé dans la section Présentation de l'API, pour créer un détecteur d'infoType de dictionnaire personnalisé, vous devez définir un objet CustomInfoType
contenant les éléments suivants:
- Le nom que vous souhaitez attribuer au détecteur d'infoType personnalisé, dans un objet
InfoType
. - Une valeur
Likelihood
facultative. Si vous omettez ce champ, les correspondances avec les éléments du dictionnaire renvoient une probabilité par défaut deVERY_LIKELY
. - Des objets
DetectionRule
facultatifs ou des règles relatives aux mots clés. Ces règles permettent d'ajuster la probabilité des résultats dans un espace de proximité donné avec certains mots clés spécifiés. Pour en savoir plus sur les règles relatives aux mots clés, consultez la page Personnaliser la probabilité de correspondance. Une valeur
SensitivityScore
facultative. Si vous omettez ce champ, les correspondances avec les éléments du dictionnaire renvoient le niveau de sensibilité par défautHIGH
.Les scores de sensibilité sont utilisés dans les profils de données. Lors du profilage des données, la protection des données sensibles utilise les scores de sensibilité des infoTypes pour calculer le niveau de sensibilité.
Un élément
Dictionary
au formatWordList
contenant une liste de mots à rechercher ou un chemin d'accèsCloudStoragePath
à un fichier texte unique comportant une liste de mots délimités par un retour à la ligne.
En tant qu'objet JSON, un détecteur d'infoType de dictionnaire personnalisé qui inclut tous les composants facultatifs se présente tel qu'indiqué ci-dessous. Ce fichier JSON inclut un chemin d'accès à un fichier texte de dictionnaire stocké dans Cloud Storage. Pour afficher une liste de mots intégrée, consultez la section Exemples plus loin dans cet article.
{
"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"
}
}
}
],
...
}
Caractéristiques des correspondances avec le dictionnaire
Vous trouverez ci-dessous des conseils sur la manière dont la protection des données sensibles établit une correspondance avec les mots et les expressions du dictionnaire. Les points suivants s'appliquent aux dictionnaires personnalisés standards et volumineux:
- Les mots du dictionnaire sont insensibles à la casse. Si votre dictionnaire inclut le nom
Abby
, il y aura correspondance avec les nomsabby
,ABBY
,Abby
, etc. - Tous les caractères (dans les dictionnaires ou dans les contenus à analyser) autres que les lettres et les chiffres figurant dans le plan multilingue de base d'Unicode sont considérés comme des espaces lors de la recherche de correspondances. Si votre dictionnaire recherche
Abby Abernathy
, il y aura correspondance avecabby abernathy
,Abby, Abernathy
,Abby (ABERNATHY)
, etc. - Les caractères entourant une correspondance doivent être d'un type différent (lettres ou chiffres) des caractères adjacents au sein du mot. Si votre dictionnaire recherche le nom
Abi
, il y aura correspondance avec les trois premiers caractères deAbi904
, mais pas deAbigail
. - Les mots du dictionnaire contenant des caractères du plan multilingue supplémentaire de la norme Unicode peuvent produire des résultats inattendus. comme le chinois, le japonais, le coréen ou les emoji.
Examples
Liste simple de mots
Supposons que vous disposiez de données indiquant la chambre d'hôpital dans laquelle des patients ont été traités lors d'une visite. Ces emplacements peuvent être considérés comme sensibles dans un ensemble de données particulier, mais ils ne peuvent pas être récupérés par les détecteurs intégrés au service de protection des données sensibles.
Les chambres sont répertoriées comme suit :
- "RM-Orange"
- "RM-Yellow"
- "RM-Green"
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
L'exemple JSON suivant définit un dictionnaire personnalisé qui vous permet de supprimer l'identification des numéros de chambre.
Entrée 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"
]
}
}
}
]
}
}
Sortie JSON :
Si vous envoyez cette entrée JSON via la méthode POST à content:deidentify
, vous obtenez la réponse JSON suivante :
{
"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"
}
]
}
}
La protection des données sensibles a correctement identifié les numéros de chambre spécifiés dans le message WordList
du dictionnaire personnalisé. Vous remarquerez que les éléments sont correctement identifiés même lorsque le trait d'union -
est absent, ce qui est le cas pour la valeur "rm green".
Liste d'exceptions
Supposons que vous disposiez de données de journaux comprenant des identifiants client (comme des adresses e-mail) et que vous souhaitiez masquer ces informations. Cependant, ces journaux incluent également les adresses e-mail de vos développeurs, et vous ne voulez pas les masquer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
L'exemple JSON suivant crée un dictionnaire personnalisé répertoriant un sous-ensemble d'adresses e-mail dans le message WordList
(Jack@example.org et jill@example.org) et leur attribue le nom d'infoType personnalisé DEVELOPER_EMAIL
. Ce fichier JSON indique à la protection des données sensibles d'ignorer les adresses e-mail spécifiées, tout en remplaçant toutes les autres adresses e-mail détectées par une chaîne correspondant à son infoType (dans ce cas, EMAIL_ADDRESS
):
Entrée 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"
}
}
]
}
]
}
}
Sortie JSON :
Si vous envoyez cette entrée JSON via la méthode POST à content:deidentify
, vous obtenez la réponse JSON suivante :
{
"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'adresse e-mail user1@example.com a correctement été identifiée comme correspondant à l'infoType EMAIL_ADDRESS
et jack@example.org comme une adresse e-mail correspondant à l'infoType personnalisé DEVELOPER_EMAIL
. Notez que l'adresse e-mail jack@example.org est restée intacte, car il a été demandé de ne transformer que l'infoType EMAIL_ADDRESS
.
Étendre le champ d'application d'un détecteur d'infoType intégré
Imaginons une situation dans laquelle un détecteur d'infoType intégré ne renvoie pas les bonnes valeurs. Par exemple, vous souhaitez renvoyer des correspondances avec des noms de personnes, mais le détecteur PERSON_NAME
intégré à la protection des données sensibles ne parvient pas à renvoyer les correspondances sur certains noms courants dans votre ensemble de données.
La protection des données sensibles vous permet d'étendre la portée des détecteurs d'infoTypes intégrés en incluant un détecteur intégré dans la déclaration d'un détecteur d'infoType personnalisé, comme illustré dans l'exemple suivant. Cet extrait montre comment configurer la protection des données sensibles pour que le détecteur d'infoType intégré PERSON_NAME
identifie également le nom "Quasimodo" :
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez Bibliothèques clientes pour la protection des données sensibles.
Pour vous authentifier auprès de la protection des données sensibles, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
... "inspectConfig":{ "customInfoTypes":[ { "infoType":{ "name":"PERSON_NAME" }, "dictionary":{ "wordList":{ "words":[ "quasimodo" ] } } } ] } ...
Étapes suivantes
En savoir plus sur les grands dictionnaires personnalisés