Benutzerdefinierte Wörterbücher bieten die einfache, aber leistungsstarke Möglichkeit, eine Liste von Wörtern oder Wortgruppen abzugleichen. Sie können ein benutzerdefiniertes Wörterbuch als Detektor oder als Ausnahmeliste für integrierte Detektoren verwenden. Sie können auch benutzerdefinierte Wörterbücher verwenden, um integrierte infoType-Detektoren so zu ergänzen, dass zusätzliche Ergebnisse gefunden werden.
In diesem Abschnitt wird beschrieben, wie Sie einen regulären benutzerdefinierten Wörterbuchdetektor aus einer Liste von Wörtern erstellen.
Anatomie eines benutzerdefinierten infoType-Wörterbuchdetektors
Wie in der API-Übersicht dargestellt, definieren Sie zum Erstellen eines benutzerdefinierten infoType-Wörterbuchdetektors ein CustomInfoType
-Objekt, das Folgendes enthält:
- Der Name, den Sie dem benutzerdefinierten infoType-Detektor innerhalb eines
InfoType
-Objekts geben möchten. - Einen optionalen Wert
Likelihood
. Wenn Sie dieses Feld weglassen, wird bei Übereinstimmungen mit den Wörterbuchelementen eine Standardwahrscheinlichkeit vonVERY_LIKELY
zurückgegeben. - Optionale Objekte
DetectionRule
oder Hotword-Regeln. Diese Regeln passen die Wahrscheinlichkeit von Ergebnissen innerhalb einer gegebenen Nähe von angegebenen Hotwords an. Weitere Informationen zu Hotword-Regeln finden Sie im Abschnitt Übereinstimmungswahrscheinlichkeit anpassen. Einen optionalen Wert
SensitivityScore
. Wenn Sie dieses Feld weglassen, wird bei Übereinstimmungen mit den Wörterbuchelementen die standardmäßige EmpfindlichkeitsstufeHIGH
zurückgegeben.Empfindlichkeitswerte werden in Datenprofilen verwendet. Bei der Profilerstellung für Ihre Daten verwendet der Schutz sensibler Daten die Vertraulichkeitswerte der infoTypes, um die Vertraulichkeitsstufe zu berechnen.
Ein
Dictionary
, entweder alsWordList
mit einer Liste von Wörtern, nach denen gesucht werden soll, oder alsCloudStoragePath
zu einer einzelnen Textdatei mit einer durch Zeilenumbruch getrennten Liste von Wörtern, nach denen gesucht werden soll.
Ein benutzerdefinierter infoType-Detektor für Wörterbücher, der alle optionalen Komponenten enthält, sieht als JSON-Objekt so aus: Diese JSON-Datei enthält einen Pfad zu einer Wörterbuchtextdatei, die in Cloud Storage gespeichert ist. Eine Inline-Wortliste finden Sie weiter unten in diesem Thema im Abschnitt Beispiele.
{
"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"
}
}
}
],
...
}
Details zum Wörterbuchabgleich
Im Folgenden finden Sie Informationen dazu, wie der Schutz sensibler Daten mit Wörtern und Wortgruppen im Wörterbuch übereinstimmt. Diese Punkte gelten sowohl für reguläre als auch für große benutzerdefinierte Wörterbücher:
- Bei Wörtern in Wörterbüchern wird nicht zwischen Groß- und Kleinschreibung unterschieden. Wenn Ihr Wörterbuch
Abby
enthält, wird es aufabby
,ABBY
,Abby
usw. abgestimmt. - Alle Zeichen, ob in Wörterbüchern oder zu scannenden Inhalten, die nicht zu den in der Unicode Basic Multilingual Plane enthaltenen Buchstaben und Ziffern zählen, werden beim Scannen auf Übereinstimmungen wie Leerzeichen behandelt. Wenn Ihr Wörterbuch nach
Abby Abernathy
sucht, findet esabby abernathy
,Abby, Abernathy
,Abby (ABERNATHY)
und so weiter als Übereinstimmungen. - Die Zeichen in direkter Nachbarschaft zu einer Übereinstimmung müssen von einem anderen Typ sein (Buchstaben oder Ziffern) als die benachbarten Zeichen innerhalb des Worts. Wenn Ihr Wörterbuch nach
Abi
sucht, werden die ersten drei Zeichen vonAbi904
, aber nicht vonAbigail
als Übereinstimmung erkannt. - Wörterbuchwörter, die Zeichen in der Supplementary Multilingual Plane des Unicode-Standards enthalten, können unerwartete Ergebnisse liefern. Beispiele für solche Zeichen sind Chinesisch, Japanisch, Koreanisch und Emojis.
Beispiele
Einfache Wortliste
Angenommen, Sie haben Daten, die angeben, in welchem Krankenhauszimmer ein Patient während eines Besuchs behandelt wurde. Diese Speicherorte können in einem bestimmten Datensatz als sensibel eingestuft werden, werden aber nicht von den integrierten Detektoren des Schutzes sensibler Daten erfasst.
Die Zimmer wurden aufgelistet als:
- "RM-Orange"
- "RM-Yellow"
- "RM-Green"
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
REST
Im folgenden JSON-Beispiel wird ein benutzerdefiniertes Wörterbuch erstellt, mit dem Sie benutzerdefinierte Zimmernummern de-identifizieren können.
JSON-Eingabe:
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"
]
}
}
}
]
}
}
JSON-Ausgabe:
Wenn wir die JSON-Eingabe an content:deidentify
senden, wird die folgende JSON-Antwort zurückgegeben:
{
"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"
}
]
}
}
Der Schutz sensibler Daten hat die in der Nachricht WordList
des benutzerdefinierten Wörterbuchs angegebenen Zimmernummern korrekt identifiziert. Beachten Sie, dass Elemente auch dann übereinstimmen, wenn die Groß- und Kleinschreibung variiert und der Bindestrich (-
) fehlt, wie im zweiten Beispiel bei "rm green".
Ausnahmeliste
Angenommen, Sie haben Log-Daten, die Kunden-IDs wie E-Mail-Adressen enthalten, und Sie möchten diese Informationen entfernen. Diese Logs enthalten jedoch auch die E-Mail-Adressen interner Entwickler, die Sie dabei nicht löschen möchten.
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
REST
Im folgenden JSON-Beispiel wird ein benutzerdefiniertes Wörterbuch erstellt, das eine Teilmenge der E-Mail-Adressen aus der WordList
-Nachricht (jack@example.org und jill@example.org) auflistet und diesen den benutzerdefinierten infoType-Namen DEVELOPER_EMAIL
zuweist. Dieser JSON-Code weist den Schutz sensibler Daten an, die angegebenen E-Mail-Adressen zu ignorieren und alle anderen erkannten E-Mail-Adressen durch einen String zu ersetzen, der dem infoType entspricht (in diesem Fall EMAIL_ADDRESS
):
JSON-Eingabe:
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"
}
}
]
}
]
}
}
JSON-Ausgabe:
Wenn wir diese JSON-Nachricht an content:deidentify
senden, wird die folgende JSON-Antwort zurückgegeben:
{
"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"
}
]
}
}
Die Ausgabe hat user1@example.com korrekt als übereinstimmend mit dem infoType-Detektor EMAIL_ADDRESS
und jack@example.org als übereinstimmend mit dem benutzerdefinierten infoType-Detektor DEVELOPER_EMAIL
erkannt. Beachten Sie, dass jack@example.org unverändert beibehalten wird, weil nur EMAIL_ADDRESS
gepasst wurde.
Integrierten infoType-Detektor erweitern
Stellen Sie sich ein Szenario vor, in dem ein integrierter infoType-Detektor nicht die korrekten Werte zurückgibt. Sie möchten beispielsweise Übereinstimmungen für Personennamen zurückgeben, aber der integrierte PERSON_NAME
-Detektor für den Schutz sensibler Daten gibt keine Übereinstimmungen für einige Personennamen zurück, die in Ihrem Dataset häufig vorkommen.
Mit dem Schutz sensibler Daten können Sie integrierte infoType-Detektoren dadurch erweitern, dass Sie einen integrierten Detektor in die Deklaration für einen benutzerdefinierten infoType-Detektor einschließen, wie im folgenden Beispiel gezeigt. Dieses Snippet veranschaulicht, wie Sie den Schutz sensibler Daten so konfigurieren, dass der integrierte infoType-Detektor PERSON_NAME
zusätzlich zum Namen "Quasimodo" passt:
C#
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für den Schutz sensibler Daten finden Sie unter Clientbibliotheken für den Schutz sensibler Daten.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich beim Schutz sensibler Daten zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
REST
... "inspectConfig":{ "customInfoTypes":[ { "infoType":{ "name":"PERSON_NAME" }, "dictionary":{ "wordList":{ "words":[ "quasimodo" ] } } } ] } ...
Nächste Schritte
Weitere Informationen zu großen benutzerdefinierten Wörterbüchern