Kurzanleitung: Sensiblen Text de-identifizieren und neu identifizieren

In dieser Kurzanleitung erfahren Sie, wie Sie mit Cloud Data Loss Prevention (DLP) sensible Daten in Textinhalten de-identifizieren und neu identifizieren. Dabei werden Sie durch die Nutzung des Cloud Key Management Service geführt, um einen verpackten Schlüssel zu erstellen. Sie benötigen diesen Schlüssel in Ihren De-Identifikations- und Re-Identifikationsanfragen.

Der in dieser Kurzanleitung beschriebene Prozess wird als Pseudonymisierung (oder Tokenisierung) bezeichnet. Bei diesem Vorgang verwendet Cloud DLP einen kryptografischen Schlüssel, um sensiblen Text in ein Token umzuwandeln (de-identifizieren). Zur Wiederherstellung (Re-Identifikation) dieses Textes benötigen Sie den kryptografischen Schlüssel, den Sie während der De-Identifikation und des Tokens verwendet haben.

Cloud DLP unterstützt sowohl reversible als auch nicht umkehrbare kryptografische Methoden. Um Inhalte neu zu identifizieren, müssen Sie eine umkehrbare Methode auswählen.

Die hier beschriebene kryptografische Methode wird als deterministische Verschlüsselung mit AES-SIV (Advanced Encryption Standard im synthetischen Initialisierungsvektor) bezeichnet. Wir empfehlen dies für alle umsetzbaren kryptografischen Methoden, die Cloud DLP unterstützt, da sie die höchste Sicherheitsstufe bieten.

Sie können die Schritte in diesem Thema in 10 bis 20 Minuten ausführen, ohne die Schritte Hinweise auszuführen.

Hinweis

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Cloud DLP and Cloud KMS APIs aktivieren.

    Aktivieren Sie die APIs

  5. Erstellen Sie ein Dienstkonto:

    1. Wechseln Sie in der Cloud Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“
    2. Wählen Sie ein Projekt aus.
    3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Cloud Console füllt das Feld Dienstkonto-ID basierend auf diesem Namen aus.

      Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

    4. Klicken Sie auf Erstellen und fortfahren.
    5. Klicken Sie auf das Feld Rolle auswählen.

      Klicken Sie unter Schnellzugriff auf Einfach und dann auf Inhaber.

    6. Klicken Sie auf Weiter.
    7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.

      Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

  6. Dienstkontoschlüssel erstellen

    1. Klicken Sie in der Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
    2. Klicken Sie auf Schlüssel.
    3. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
    4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
    5. Klicken Sie auf Schließen.
  7. Legen Sie für die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS den Pfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable noch einmal festlegen.

  8. Installieren und initialisieren Sie das Cloud SDK.
  9. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  10. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  11. Cloud DLP and Cloud KMS APIs aktivieren.

    Aktivieren Sie die APIs

  12. Erstellen Sie ein Dienstkonto:

    1. Wechseln Sie in der Cloud Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“
    2. Wählen Sie ein Projekt aus.
    3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Cloud Console füllt das Feld Dienstkonto-ID basierend auf diesem Namen aus.

      Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

    4. Klicken Sie auf Erstellen und fortfahren.
    5. Klicken Sie auf das Feld Rolle auswählen.

      Klicken Sie unter Schnellzugriff auf Einfach und dann auf Inhaber.

    6. Klicken Sie auf Weiter.
    7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.

      Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

  13. Dienstkontoschlüssel erstellen

    1. Klicken Sie in der Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
    2. Klicken Sie auf Schlüssel.
    3. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
    4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
    5. Klicken Sie auf Schließen.
  14. Legen Sie für die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS den Pfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable noch einmal festlegen.

  15. Installieren und initialisieren Sie das Cloud SDK.

Schritt 1: Schlüsselbund und Schlüssel erstellen

Entscheiden Sie vor Beginn dieses Verfahrens, wo Cloud DLP Ihre De-Identifikations- und Re-Identifikationsanfragen 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 Cloud DLP-Anfragen verwenden. Andernfalls schlagen die Cloud DLP-Anfragen fehl.

Eine Liste der unterstützten Standorte finden Sie unter Cloud DLP-Standorte. Notieren Sie sich den Namen der ausgewählten Region (z. B. us-west1).

Dieses Verfahren verwendet global als Speicherort für alle API-Anfragen. Wenn Sie eine andere Region verwenden möchten, ersetzen Sie global durch den Namen der Region.

  1. Schlüsselbund erstellen

    gcloud kms keyrings create "dlp-keyring" \
        --location "global"
    
  2. Schlüssel erstellen:

    gcloud kms keys create "dlp-key" \
        --location "global" \
        --keyring "dlp-keyring" \
        --purpose "encryption"
    
  3. Listen Sie Ihren Schlüsselbund und Schlüssel auf:

    gcloud kms keys list \
        --location "global" \
        --keyring "dlp-keyring"
    

    Sie erhalten die folgende Ausgabe:

    NAME                                                                                   PURPOSE          ALGORITHM                    PROTECTION_LEVEL  LABELS  PRIMARY_ID  PRIMARY_STATE
    projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key  ENCRYPT_DECRYPT  GOOGLE_SYMMETRIC_ENCRYPTION  SOFTWARE                  1           ENABLED
    

    In dieser Ausgabe ist PROJECT_ID die ID Ihres Projekts.

    Der Pfad unter NAME ist der vollständige Ressourcenname Ihres Cloud KMS-Schlüssels. Beachten Sie dies, da die De-Identifikations- und Re-Identifikationsanfragen sie erfordern.

Schritt 2: Base64-codierten AES-Schlüssel erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen AES-Schlüssel (Advanced Encryption Standard) erstellen und ihn im base64-Format codieren.

  1. 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" 32
    

    Die Datei aes_key.bin wird Ihrem aktuellen Verzeichnis hinzugefügt.

  2. Codieren Sie den AES-Schlüssel als base64-String:

    base64 -i ./aes_key.bin
    

    Die Ausgabe sollte in etwa so aussehen:

    uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
    

Schritt 3: 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 in Schritt 1 erstellt haben, um den in Schritt 2 erstellten base64-codierten AES-Schlüssel zu verpacken. aus.

Verwenden Sie zum Verpacken des AES-Schlüssels curl, um die folgende Anfrage an die Cloud KMS API 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\"}"

Dabei gilt:

  • PROJECT_ID ist die Projekt-ID.
  • BASE64_ENCODED_AES_KEY: Der in Schritt 2 zurückgegebene base64-codierte String.

Die Antwort, die Sie von Cloud KMS erhalten, ähnelt der folgenden JSON:

{
  "name": "projects/PROJECT_ID/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 in der Antwort den Wert von ciphertext. Das ist Ihr verpackter Schlüssel.

Schritt 4: De-Identifikationsanfrage an die Cloud DLP API senden

In diesem Abschnitt wird beschrieben, wie Sie sensible Daten in Textinhalten de-identifizieren.

Für diese Aufgabe benötigen Sie Folgendes:

  • Der vollständige Ressourcenname des Cloud KMS-Schlüssels, den Sie in Schritt 1 erstellt haben.
  • Der verpackte Schlüssel, den Sie in Schritt 3 erstellt haben.

So de-identifizieren Sie sensible Daten in Textinhalten:

  1. Erstellen Sie eine JSON-Anfragedatei mit 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"
          }
        ]
      }
    }
    

    Dabei gilt:

    • PROJECT_ID: die Projekt-ID.
    • WRAPPED_KEY: Der verpackte Schlüssel, den Sie in Schritt 3 erstellt haben.

    Achten Sie darauf, dass der resultierende Wert von cryptoKeyName den vollständigen Ressourcennamen Ihres Cloud KMS-Schlüssels bildet.

    Weitere Informationen zu den Komponenten dieser JSON-Anfrage finden Sie unter projects.locations.content.deidentify. Experimentieren Sie nach Abschluss dieser Kurzanleitung mit verschiedenen Eingaben für diese Anfrage. Sie können curl wie hier beschrieben verwenden. Alternativ können Sie den API Explorer auf dieser API-Referenzseite unter API testen verwenden.

  2. Speichern Sie die Datei als deidentify-request.json.

  3. Verwenden Sie curl, um eine projects.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.json
    

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

    Zum Übertragen eines Dateinamens an curl verwenden Sie die Option -d (für Daten) und stellen dem Dateinamen das Zeichen @ voran. Diese Datei muss sich in dem Verzeichnis befinden, in dem Sie den Befehl curl ausführen.

    Die Antwort, die Sie von Cloud DLP erhalten, ähnelt der 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/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key"
                 }
               },
               "surrogateInfoType": {
                 "name": "EMAIL_ADDRESS_TOKEN"
               }
             }
           },
           "results": [
             {
               "count": "1",
               "code": "SUCCESS"
             }
           ],
           "transformedBytes": "22"
         }
       ]
     }
    }
    

    Im Feld item wird die E-Mail-Adresse durch ein Token wie EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q ersetzt. Um diesen Inhalt zu re-identifizieren, müssen Sie das gesamte Token in der Re-Identifikationsanfrage übergeben.

Schritt 5: Anfrage zur Re-Identifikation an die Cloud DLP API senden

In diesem Abschnitt wird beschrieben, wie tokenisierte Daten in Textinhalten neu identifiziert werden.

Für diese Aufgabe benötigen Sie Folgendes:

  • Der vollständige Ressourcenname des Cloud KMS-Schlüssels, den Sie in Schritt 1 erstellt haben.
  • Der verpackte Schlüssel, den Sie in Schritt 3 erstellt haben.
  • Das Token, das Sie in Schritt 4 erhalten haben.

So kannst du tokenisierte Inhalte neu identifizieren:

  1. Erstellen Sie eine JSON-Anfragedatei mit 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."
      }
    }
    

    Dabei gilt:

    • PROJECT_ID: die Projekt-ID.
    • WRAPPED_KEY: Der verpackte Schlüssel, den Sie in Schritt 3 erstellt haben.
    • TOKEN: das Token, das Sie in Schritt 4 erhalten haben, z. B. EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q.

    Achten Sie darauf, dass der resultierende Wert von cryptoKeyName den vollständigen Ressourcennamen Ihres Cloud KMS-Schlüssels bildet.

    Weitere Informationen zu den Komponenten dieser JSON-Anfrage finden Sie unter projects.locations.content.reidentify. Experimentieren Sie nach Abschluss dieser Kurzanleitung mit verschiedenen Eingaben für diese Anfrage. Sie können curl wie hier beschrieben verwenden. Alternativ können Sie den API Explorer auf dieser API-Referenzseite unter API testen verwenden.

  2. Speichern Sie die Datei als reidentify-request.json.

  3. Verwenden Sie curl, um eine projects.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.json
    

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

    Zum Übertragen eines Dateinamens an curl verwenden Sie die Option -d (für Daten) und stellen dem Dateinamen das Zeichen @ voran. Diese Datei muss sich in dem Verzeichnis befinden, in dem Sie den Befehl curl ausführen.

    Die Antwort, die Sie von Cloud DLP erhalten, ähnelt der 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/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key"
                 }
               },
               "surrogateInfoType": {
                 "name": "EMAIL_ADDRESS_TOKEN"
               }
             }
           },
           "results": [
             {
               "count": "1",
               "code": "SUCCESS"
             }
           ],
           "transformedBytes": "70"
         }
       ]
     }
    }
    

    Im Feld item wird das E-Mail-Adresstoken durch die tatsächliche E-Mail-Adresse aus dem ursprünglichen Text ersetzt.

    Sie haben gerade sensible Daten in Textinhalten mit deterministischer Verschlüsselung de-identifiziert.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

Schlüsselversion löschen

Wenn Sie den in dieser Kurzanleitung erstellten Schlüssel nicht mehr verwenden möchten, müssen Sie dessen Version löschen.

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 den 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 zu löschenden Version.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.

So löschen Sie das Projekt:

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte