Sensible Daten de-identifizieren und re-identifizieren
Der in diesem Dokument beschriebene Vorgang wird als Pseudonymisierung (oder Tokenisierung) bezeichnet. Dabei verwendet Sensitive Data Protection einen kryptografischen Schlüssel, um sensiblen Text in ein Token umzuwandeln (zu de-identifizieren). Um diesen Text wiederherzustellen (neu zu identifizieren), benötigen Sie den kryptografischen Schlüssel, der während der Anonymisierung verwendet wurde, und das Token.
Der Schutz sensibler Daten unterstützt sowohl reversible als auch nicht reversible kryptografische Methoden. Wenn Sie Inhalte neu identifizieren möchten, müssen Sie eine reversible Methode auswählen.
Die hier beschriebene kryptografische Methode wird als deterministische Verschlüsselung mit AES-SIV (Advanced Encryption Standard in Synthetic Initialization Vector mode) bezeichnet. Wir empfehlen diese Methode, da sie das höchste Sicherheitsniveau aller reversiblen kryptografischen Methoden bietet, die von Sensitive Data Protection unterstützt werden.
Die Schritte in diesem Dokument dauern 10 bis 20 Minuten, ausgenommen die Schritte unter Bevor Sie beginnen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Google Cloud Projekt erstellen oder auswählen
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Sensitive Data Protection API und die Cloud KMS API, falls sie noch nicht aktiviert sind:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Google Cloud Projekt erstellen oder auswählen
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Sensitive Data Protection API und die Cloud KMS API, falls sie noch nicht aktiviert sind:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable dlp.googleapis.com
cloudkms.googleapis.com
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines umschlossenen AES-Schlüssels, zum Anonymisieren sensibler Daten und zum Re-Identifizieren benötigen:
- Cloud KMS-Administrator (
roles/cloudkms.admin) - Cloud KMS CryptoKey-Verschlüsseler (
roles/cloudkms.cryptoKeyEncrypter) - DLP-Nutzer (
roles/dlp.user)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Schlüsselbund und Schlüssel erstellen
Bevor Sie mit dieser Anleitung beginnen, müssen Sie festlegen, wo Sensitive Data Protection Ihre Anfragen zur De‑ und Re‑Identifikation verarbeiten soll. Wenn Sie einen Cloud KMS-Schlüssel erstellen, müssen Sie ihn entweder in global oder in derselben Region speichern, die Sie für Ihre Sensitive Data Protection-Anfragen verwenden.
Andernfalls schlagen die Sensitive Data Protection-Anfragen fehl.
Eine Liste der unterstützten Standorte finden Sie unter Standorte für Sensitive Data Protection. Notieren Sie sich den Namen der ausgewählten Region (z. B. us-west1).
In diesem Verfahren wird global als Speicherort für alle API-Anfragen verwendet. Wenn Sie eine andere Region verwenden möchten, ersetzen Sie global durch den Namen der Region.
Erstellen Sie einen Schlüsselbund:
gcloud kms keyrings create "dlp-keyring" \ --location "global"Erstellen Sie einen Schlüssel:
gcloud kms keys create "dlp-key" \ --location "global" \ --keyring "dlp-keyring" \ --purpose "encryption"Listen Sie den Schlüsselbund und Schlüssel auf:
gcloud kms keys list \ --location "global" \ --keyring "dlp-keyring"Sie erhalten folgende Ausgabe:
NAME: projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: ENABLEDIn dieser Ausgabe ist
PROJECT_IDdie ID Ihres Projekts.Der Wert von
NAMEist der vollständige Ressourcenname Ihres Cloud KMS-Schlüssels. Notieren Sie sich diesen Wert, da er für die Anfragen zum Anonymisieren und Re-Identifizieren erforderlich ist.
Base64-codierten AES-Schlüssel erstellen
In diesem Abschnitt wird beschrieben, wie Sie einen AES-Schlüssel (Advanced Encryption Standard) erstellen und im base64-Format codieren.
Erstellen Sie einen AES-Schlüssel mit 128, 192 oder 256 Bit. Der folgende Befehl verwendet
openssl, um einen 256-Bit-Schlüssel im aktuellen Verzeichnis zu erstellen:openssl rand -out "./aes_key.bin" 32Die Datei
aes_key.binwird Ihrem aktuellen Verzeichnis hinzugefügt.Codieren Sie den AES-Schlüssel als base64-String:
base64 -i ./aes_key.binDie Ausgabe sollte in etwa so aussehen:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
AES-Schlüssel mit dem Cloud KMS-Schlüssel verpacken
In diesem Abschnitt wird beschrieben, wie Sie den Cloud KMS-Schlüssel verwenden, den Sie unter Schlüsselbund und Schlüssel erstellen erstellt haben, um den base64-codierten AES-Schlüssel zu umschließen, den Sie unter Base64-codierten AES-Schlüssel erstellen erstellt haben.
Verwenden Sie curl, um den AES-Schlüssel zu umschließen und die folgende Anfrage an die Cloud KMS API-Methode projects.locations.keyRings.cryptoKeys.encrypt zu senden:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key:encrypt" \
--request "POST" \
--header "Authorization:Bearer $(gcloud auth application-default print-access-token)" \
--header "content-type: application/json" \
--data "{\"plaintext\": \"BASE64_ENCODED_AES_KEY\"}"
Ersetzen Sie Folgendes:
PROJECT_IDist die Projekt-ID.BASE64_ENCODED_AES_KEY: Der base64-codierte String, der in Base64-codierten AES-Schlüssel erstellen zurückgegeben wird.
Die Antwort von Cloud KMS sieht in etwa wie die folgende JSON-Datei aus:
{
"name": "projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1",
"ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=",
"ciphertextCrc32c": "901327763",
"protectionLevel": "SOFTWARE"
}
In dieser Ausgabe ist PROJECT_ID die ID Ihres Projekts.
Notieren Sie sich den Wert von ciphertext in der Antwort.
Dies ist Ihr verpackter Schlüssel.
De-Identifikationsanfrage an die DLP API senden
In diesem Abschnitt wird beschrieben, wie Sie sensible Daten in Textinhalten de-identifizieren.
Zum Durcharbeiten dieser Aufgabe benötigen Sie Folgendes:
- Der vollständige Ressourcenname des Cloud KMS-Schlüssels, den Sie unter Schlüsselbund und Schlüssel erstellen erstellt haben.
- Der verpackte Schlüssel, den Sie in AES-Schlüssel mit dem Cloud KMS-Schlüssel verpacken erstellt haben.
Sie müssen die Beispielanfrage in einer JSON-Datei speichern. Wenn Sie Cloud Shell verwenden, erstellen Sie die Datei mit dem Cloud Shell-Editor. Klicken Sie zum Starten des Editors in der Cloud Shell-Symbolleiste auf Editor öffnen .
So de-identifizieren Sie sensible Daten in Textinhalten:
Erstellen Sie eine JSON-Anfragedatei mit dem Namen
deidentify-request.jsonund dem folgenden Text.{ "item": { "value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com." }, "deidentifyConfig": { "infoTypeTransformations": { "transformations": [ { "infoTypes": [ { "name": "EMAIL_ADDRESS" } ], "primitiveTransformation": { "cryptoDeterministicConfig": { "cryptoKey": { "kmsWrapped": { "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key", "wrappedKey": "WRAPPED_KEY" } }, "surrogateInfoType": { "name": "EMAIL_ADDRESS_TOKEN" } } } } ] } }, "inspectConfig": { "infoTypes": [ { "name": "EMAIL_ADDRESS" } ] } }Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID.WRAPPED_KEY: Der verpackte Schlüssel, den Sie in AES-Schlüssel mit dem Cloud KMS-Schlüssel verpacken erstellt haben.
Achten Sie darauf, dass der resultierende Wert von
cryptoKeyNameden vollständigen Ressourcennamen Ihres Cloud KMS-Schlüssels bildet.Weitere Informationen zu den Komponenten dieser JSON-Anfrage finden Sie unter
projects.locations.content.deidentify. Nachdem Sie diese Aufgabe abgeschlossen haben, können Sie mit verschiedenen Eingaben für diese Anfrage experimentieren. Sie könnencurlwie hier beschrieben verwenden. Alternativ können Sie den API Explorer auf der API-Referenzseite unter Diese Methode ausprobieren verwenden.Verwenden Sie
curl, um eineprojects.locations.content.deidentify-Anfrage zu stellen:curl -s \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/global/content:deidentify \ -d @deidentify-request.jsonErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.Wenn Sie einen Dateinamen an
curlübergeben möchten, verwenden Sie die Option-d(für „Daten“) und setzen Sie vor den Dateinamen ein@-Zeichen. Diese Datei muss sich im selben Verzeichnis befinden, in dem Sie den Befehlcurlausführen.Die Antwort, die Sie von Sensitive Data Protection erhalten, ähnelt dem folgenden JSON:
{ "item": { "value": "My name is Alicia Abernathy, and my email address is EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q." }, "overview": { "transformedBytes": "22", "transformationSummaries": [ { "infoType": { "name": "EMAIL_ADDRESS" }, "transformation": { "cryptoDeterministicConfig": { "cryptoKey": { "kmsWrapped": { "wrappedKey": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "cryptoKeyName": "projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key" } }, "surrogateInfoType": { "name": "EMAIL_ADDRESS_TOKEN" } } }, "results": [ { "count": "1", "code": "SUCCESS" } ], "transformedBytes": "22" } ] } }Im Feld
itemwird die E-Mail-Adresse durch ein Token wieEMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/qersetzt. Notieren Sie sich den Wert des Tokens in der Antwort. Wenn Sie die anonymisierten Inhalte wieder identifizieren möchten, übergeben Sie das gesamte Token in der Re-ID-Anfrage.
Anfrage zur Re-Identifizierung an die DLP API senden
In diesem Abschnitt wird beschrieben, wie tokenisierte Daten in Textinhalten re-identifiziert werden.
Zum Durcharbeiten dieser Aufgabe benötigen Sie Folgendes:
- Der vollständige Ressourcenname des Cloud KMS-Schlüssels, den Sie unter Schlüsselbund und Schlüssel erstellen erstellt haben.
- Der verpackte Schlüssel, den Sie in AES-Schlüssel mit dem Cloud KMS-Schlüssel verpacken erstellt haben.
- Das Token, das Sie in De-Identifikationsanfrage an die DLP API senden erhalten haben.
So re-identifizieren Sie tokenisierte Inhalte:
Erstellen Sie eine JSON-Anfragedatei mit dem Namen
reidentify-request.jsonund dem folgenden Text.{ "reidentifyConfig":{ "infoTypeTransformations":{ "transformations":[ { "infoTypes":[ { "name":"EMAIL_ADDRESS_TOKEN" } ], "primitiveTransformation":{ "cryptoDeterministicConfig":{ "cryptoKey":{ "kmsWrapped": { "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key", "wrappedKey": "WRAPPED_KEY" } }, "surrogateInfoType":{ "name":"EMAIL_ADDRESS_TOKEN" } } } } ] } }, "inspectConfig":{ "customInfoTypes":[ { "infoType":{ "name":"EMAIL_ADDRESS_TOKEN" }, "surrogateType":{ } } ] }, "item":{ "value": "My name is Alicia Abernathy, and my email address is TOKEN." } }Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID.WRAPPED_KEY: Der verpackte Schlüssel, den Sie in AES-Schlüssel mit dem Cloud KMS-Schlüssel verpacken erstellt haben.TOKEN: Das Token, das Sie in Anfrage zum Anonymisieren an die DLP API senden erhalten haben, z. B.EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q.
Achten Sie darauf, dass der resultierende Wert von
cryptoKeyNameden vollständigen Ressourcennamen Ihres Cloud KMS-Schlüssels bildet.Weitere Informationen zu den Komponenten dieser JSON-Anfrage finden Sie unter
projects.locations.content.reidentify. Nachdem Sie diese Aufgabe abgeschlossen haben, können Sie mit verschiedenen Eingaben für diese Anfrage experimentieren. Sie könnencurlwie hier beschrieben verwenden. Alternativ können Sie den API Explorer auf dieser API-Referenzseite unter Diese Methode ausprobieren verwenden.Verwenden Sie
curl, um eineprojects.locations.content.reidentify-Anfrage zu stellen:curl -s \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/global/content:reidentify \ -d @reidentify-request.jsonErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.Wenn Sie einen Dateinamen an
curlübergeben möchten, verwenden Sie die Option-d(für „Daten“) und setzen Sie vor den Dateinamen ein@-Zeichen. Diese Datei muss sich im selben Verzeichnis befinden, in dem Sie den Befehlcurlausführen.Die Antwort, die Sie von Sensitive Data Protection erhalten, ähnelt dem folgenden JSON:
{ "item": { "value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com." }, "overview": { "transformedBytes": "70", "transformationSummaries": [ { "infoType": { "name": "EMAIL_ADDRESS" }, "transformation": { "cryptoDeterministicConfig": { "cryptoKey": { "kmsWrapped": { "wrappedKey": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "cryptoKeyName": "projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key" } }, "surrogateInfoType": { "name": "EMAIL_ADDRESS_TOKEN" } } }, "results": [ { "count": "1", "code": "SUCCESS" } ], "transformedBytes": "70" } ] } }Im
item-Feld wird das E-Mail-Adresstoken durch die tatsächliche E-Mail-Adresse aus dem ursprünglichen Text ersetzt.Sie haben jetzt sensible Daten in Textinhalten mithilfe der deterministischen Verschlüsselung de-identifiziert und re-identifiziert.
Bereinigen
Löschen Sie das Projekt von Google Cloud zusammen mit den Ressourcen, damit Ihrem Konto von Google Cloud die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
Schlüsselversion löschen
Wenn Sie den in dieser Aufgabe erstellten Schlüssel nicht mehr verwenden möchten, löschen Sie seine Version.
Listen Sie die für Ihren Schlüssel verfügbaren Versionen auf:
gcloud kms keys versions list \
--location "global" \
--keyring "dlp-keyring" \
--key "dlp-key"
Führen Sie folgenden Befehl aus, um eine Version zu löschen:
gcloud kms keys versions destroy KEY_VERSION \
--location "global" \
--keyring "dlp-keyring" \
--key "dlp-key"
Ersetzen Sie KEY_VERSION durch die Nummer der Version, die gelöscht werden soll, z. B. 1.
Projekt löschen
Wenn Sie für diese Aufgabe ein neues Projekt erstellt haben, können Sie zusätzliche Kosten am einfachsten vermeiden, indem Sie das Projekt löschen.
So löschen Sie ein Google Cloud -Projekt:
gcloud projects delete PROJECT_ID
Anmeldedaten widerrufen
Optional: Widerrufen Sie Anmeldedaten von der gcloud-CLI.
gcloud auth revoke
Nächste Schritte
- Weitere Informationen zum De-Identifizieren sensibler Inhalte finden Sie unter Sensible Daten de-identifizieren.
- Informationen dazu, wie ein Workflow zur De-Identifizierung in reale Bereitstellungen passt, finden Sie unter Personenidentifizierbare Informationen in umfangreichen Datasets mit Sensitive Data Protection de-identifizieren und re-identifizieren.
- Konzeptionelle Informationen zur Tokenisierung von Daten mit einem kryptografischen Schlüssel finden Sie unter Pseudonymisierung.