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 Objekt CustomInfoType
, 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 die StandardwahrscheinlichkeitVERY_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 StandardvertraulichkeitsstufeHIGH
zurückgegeben.Sensibilitätsbewertungen werden in Datenprofilen verwendet. Beim Erstellen von Datenprofilen verwendet der Schutz sensibler Daten die Sensibilitätsbewertungen der infoTypes, um das Sensibilitätsniveau 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 Hinweise dazu, wie der Schutz sensibler Daten den Abgleich mit Wörtern und Wortgruppen im Wörterbuch vornimmt. 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, Ziffern und anderen alphabetischen Zeichen 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örter in Wörterbüchern, die Zeichen aus der Supplementary Multilingual Plane des Unicode-Standards enthalten, können zu unerwarteten Ergebnissen führen. Beispiele für solche Zeichen sind Emojis, wissenschaftliche Symbole und historische Schriften.
Buchstaben, Ziffern und andere alphabetische Zeichen sind so definiert:
- Buchstaben: Zeichen mit den allgemeinen Kategorien
Lu
,Ll
,Lt
,Lm
oderLo
in der Unicode-Spezifikation - Ziffern: Zeichen mit der allgemeinen Kategorie
Nd
in der Unicode-Spezifikation - Andere alphabetische Zeichen: Zeichen mit der allgemeinen Kategorie
Nl
in der Unicode-Spezifikation oder mit der beitragenden EigenschaftOther_Alphabetic
gemäß Unicode-Standard
Beispiele
Einfache Wortliste
Angenommen, Sie haben Daten, die angeben, in welchem Krankenhauszimmer ein Patient während eines Besuchs behandelt wurde. Diese Orte können in einem bestimmten Datensatz als vertraulich angesehen werden, sie werden jedoch 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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-Befehl weist den Schutz sensibler Daten an, die angegebenen E-Mail-Adressen zu ignorieren, während alle anderen erkannten E-Mail-Adressen durch einen String ersetzt werden, 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 in der Funktion zum Schutz sensibler Daten integrierte PERSON_NAME
-Detektor gibt keine Übereinstimmungen für einige Personennamen zurück, die in Ihrem Dataset häufig anzutreffen sind.
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 Code-Snippet veranschaulicht, wie Sie den Schutz sensibler Daten so konfigurieren, dass der integrierte infoType-Detektor PERSON_NAME
zusätzlich den Abgleich gegen den Namen „Quasimodo“ vornimmt:
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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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 die Standardanmeldedaten für Anwendungen ein, um sich bei Sensitive Data Protection 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