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é comme détecteur ou comme 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 présentation de l'API, pour créer un détecteur d'infoType de dictionnaire personnalisé, vous devez définir un objet CustomInfoType
qui contient 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éfautVERY_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 un niveau de sensibilité par défaut deHIGH
.Les scores de sensibilité sont utilisés dans les profils de données. Lorsque vous créez un profil de vos 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. Cet objet JSON inclut un chemin d'accès à un fichier dictionnaire de type texte 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 indications sur la manière dont Sensitive Data Protection identifie des correspondances avec les mots et expressions du dictionnaire. Ces points 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, les chiffres et les autres caractères alphabétiques 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 le nom
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 générer des résultats inattendus. Il peut s'agir d'emoji, de symboles scientifiques ou d'écritures historiques, par exemple.
Les lettres, les chiffres et les autres caractères alphabétiques sont définis comme suit:
- Lettres: caractères appartenant aux catégories générales
Lu
,Ll
,Lt
,Lm
ouLo
dans la spécification Unicode - Chiffres: caractères de la catégorie générale
Nd
dans la spécification Unicode - Autres caractères alphabétiques: caractères de la catégorie générale
Nl
dans la spécification Unicode ou de la propriété contributriceOther_Alphabetic
, comme défini par la norme Unicode
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 informations de localisation peuvent être considérées comme sensibles dans un ensemble de données particulier, mais ne sont pas identifiées par les détecteurs intégrés de la 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 code JSON indique à la protection des données sensibles d'ignorer les adresses e-mail spécifiées, mais de remplacer les autres adresses détectées par une chaîne correspondant à son infoType (EMAIL_ADDRESS
dans le cas présent):
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é de 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 le champ d'application 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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 la page Bibliothèques clientes de 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" ] } } } ] } ...
Étape suivante
En savoir plus sur les grands dictionnaires personnalisés