Vom Kunden verwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK) verwenden

Auf dieser Seite wird beschrieben, wie Sie einen Verschlüsselungsschlüssel von Cloud Key Management Service (Cloud KMS) mit Cloud Data Fusion verwenden.

Ein vom Kunden verwalteter Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) ermöglicht die Verschlüsselung inaktiver Daten mit einem Schlüssel, den Sie über Cloud KMS verwalten können. CMEK bietet Nutzern die Kontrolle über die Daten, die in internen Google-Ressourcen in Mandantenprojekte geschrieben werden, und über Daten, die von Cloud Data Fusion-Pipelines geschrieben werden. Dazu gehören:

  • Pipelinelogs und -metadaten
  • Metadaten des Dataproc-Clusters
  • Verschiedene Datensenken, Aktionen und Quellen von Cloud Storage, BigQuery, Pub/Sub und Spanner

Cloud Data Fusion-Ressourcen

Eine Liste der Cloud Data Fusion-Plug-ins, die CMEK unterstützen, finden Sie unter Unterstützte Plug-ins.

Cloud Data Fusion unterstützt CMEK für Dataproc-Cluster. Cloud Data Fusion erstellt einen temporären Dataproc-Cluster zur Verwendung in der Pipeline und löscht den Cluster, wenn die Pipeline abgeschlossen ist. CMEK schützt die Clustermetadaten, die in Folgendes geschrieben werden:

  • Nichtflüchtige Speicher (PD), die an Cluster-VMs angehängt sind
  • Job-Treiberausgabe und andere Metadaten, die in den automatisch erstellten oder vom Nutzer erstellten Dataproc-Staging-Bucket geschrieben werden

CMEK einrichten

Cloud KMS-Schlüssel erstellen

Erstellen Sie einen Cloud KMS-Schlüssel in dem Google Cloud-Projekt, das die Cloud Data Fusion-Instanz enthält, oder in einem separaten Nutzerprojekt. Der Speicherort des Cloud KMS-Schlüsselbunds muss mit der Region übereinstimmen, in der Sie die Instanz erstellen. Ein multiregionaler oder globaler Regionsschlüssel ist auf Instanzebene nicht zulässig, da Cloud Data Fusion immer mit einer bestimmten Region verknüpft ist.

Ressourcennamen für den Schlüssel abrufen

REST API

Rufen Sie den Ressourcennamen des Schlüssels ab, den Sie mit dem folgenden Befehl erstellt haben:

projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID ist das Kundenprojekt, das die Cloud Data Fusion-Instanz hostet
  • REGION ist eine Google Cloud-Region, die sich in der Nähe Ihres Standorts befindet, z. B. us-east1
  • KEY_RING_NAME ist der Name des Schlüsselbunds, in dem die kryptografischen Schlüssel gruppiert werden
  • KEY_NAME ist der Cloud KMS-Schlüsselname

Console

  1. Rufen Sie die Seite "Kryptografische Schlüssel" auf.

    Zur Seite „Kryptografische Schlüssel”

  2. Klicken Sie neben Ihrem Schlüssel auf Mehr .

  3. Wählen Sie Ressourcenname kopieren aus, um den Ressourcennamen in die Zwischenablage zu kopieren.

Dienstkonten Ihres Projekts zur Verwendung des Schlüssels aktualisieren

Richten Sie die Dienstkonten Ihres Projekts zur Verwendung Ihres Schlüssels ein:

  1. Erforderlich: Weisen Sie dem Cloud Data Fusion-Dienst-Agent die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler“ (roles/cloudkms.cryptoKeyEncrypterDecrypter) zu (siehe Einem Dienstkonto Rollen für bestimmte Ressourcen zuweisen). Dieses Konto hat folgendes Format:

    service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com

    Wenn Sie dem Cloud Data Fusion-Dienst-Agent die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler” zuweisen, kann Cloud Data Fusion mithilfe von CMEK alle Kundendaten in Mandantenprojekten verschlüsseln.

  2. Erforderlich: Weisen Sie dem Compute Engine-Dienst-Agent die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler” zu (siehe Cloud KMS-Schlüssel einem Cloud Storage-Dienstkonto zuweisen). Diesem Konto wird standardmäßig die Compute Engine-Dienst-Agent-Rolle in dieser Form zugewiesen:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com

    Wenn Sie dem Compute Engine-Dienst-Agent die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler” zuweisen, kann Cloud Data Fusion mithilfe von CMEK PD-Metadaten (persistent disk, nichtflüchtiger Speicher) verschlüsseln, die vom Dataproc-Cluster geschrieben wurden, welche in Ihrer Pipeline ausgeführt werden.

  3. Erforderlich: Gewähren Sie die Rolle „Cloud KMS CryptoKey Verschlüsseler-/Entschlüsseler“ dem Cloud Storage-Dienst-Agent (siehe Cloud Storage-Dienst-Agent einen Cloud KMS-Schlüssel zuweisen). Dieser Dienst-Agent hat das folgende Format:

    service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com

    Wenn Sie dem Cloud Storage-Dienstkonto die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler” zuweisen, kann Cloud Data Fusion mithilfe von CMEK Daten verschlüsseln, die in den Staging-Bucket des Dataproc-Clusters und alle anderen von Ihrer Pipeline verwendeten Cloud Storage-Ressourcen geschrieben wurden.

  4. Erforderlich: Gewähren Sie dem Google Cloud Dataproc-Dienst-Agent die Rolle "Cloud KMS CryptoKey Encrypter/Decrypter". Dieser Dienst-Agent hat das folgende Format:

    service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com

  5. Optional: Wenn Ihre Pipeline BigQuery-Ressourcen verwendet, gewähren Sie die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler” an das BigQuery-Dienstkonto (siehe Verschlüsselungs- und Entschlüsselungsberechtigungen gewähren). Dieses Konto hat das folgende Format:

    bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com

  6. Optional: Wenn Ihre Pipeline Pub/Sub-Ressourcen verwendet, weisen Sie dem Pub/Sub-Dienstkonto die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler” zu (siehe Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden). Dieses Konto hat das folgende Format:

    service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com

  7. Optional: Wenn Ihre Pipeline Spanner-Ressourcen verwendet, weisen Sie dem Spanner-Dienstkonto die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler” zu. Dieses Konto hat das folgende Format:

    service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com

Cloud Data Fusion-Instanz mit CMEK erstellen

CMEK ist in allen Versionen von Cloud Data Fusion ab Version 6.5.0 verfügbar.

REST API

  1. Legen Sie die folgenden Umgebungsvariablen fest, um eine Instanz mit einem vom Kunden verwalteten Verschlüsselungsschlüssel zu erstellen:

    export PROJECT=PROJECT_ID
    export LOCATION=REGION
    export INSTANCE=INSTANCE_ID
    export DATA_FUSION_API_NAME=datafusion.googleapis.com
    export KEY=KEY_NAME
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: das Kundenprojekt, das die Cloud Data Fusion-Instanz hostet
    • REGION: eine Google Cloud-Region in der Nähe Ihres Standorts, z. B. us-east1.
    • INSTANCE_ID ist der Name der Cloud Data Fusion-Instanz
    • KEY_NAME ist der vollständige Ressourcenname des CMEK-Schlüssels
  2. Führen Sie den folgenden Befehl aus, um eine Cloud Data Fusion-Instanz zu erstellen:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE -X POST -d '{"description": "CMEK-enabled CDF instance created through REST.", "type": "BASIC", "cryptoKeyConfig": {"key_reference": "$KEY"} }'
    

Console

  1. Rufen Sie die Seite „Cloud Data Fusion“ auf.

  2. Klicken Sie auf Instanzen und dann auf Instanz erstellen.

    Zur Seite „VM-Instanzen“

  3. Wählen Sie unter Erweiterte Optionen die Option Vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) verwenden aus.

  4. Wählen Sie im Feld Wählen Sie einen vom Kunden verwalteten Schlüssel aus den Ressourcennamen für den Schlüssel aus.

    Wählen Sie den Namen des Verschlüsselungsschlüssels aus

  5. Nachdem Sie alle Instanzdetails eingegeben haben, klicken Sie auf Erstellen. Sobald die Instanz einsatzbereit ist, wird sie auf der Seite Instanzen angezeigt.

Prüfen, ob CMEK für eine Instanz aktiviert ist

Console

Sehen Sie sich die Instanzdetails an:

  1. Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.

  2. Klicken Sie auf Instanzen und dann auf den Namen der Instanz, um die Seite Instanzdetails aufzurufen.

    Zur Seite „VM-Instanzen“

Wenn CMEK aktiviert ist, wird das Feld Verschlüsselungsschlüssel als Verfügbar angezeigt.

Wenn CMEK deaktiviert ist, wird das Feld Verschlüsselungsschlüssel als Nicht verfügbar angezeigt.

CMEK mit unterstützten Plug-ins verwenden

Verwenden Sie das folgende Format, wenn Sie den Namen des Verschlüsselungsschlüssels festlegen:

projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Namen von Verschlüsselungsschlüsseln

In der folgenden Tabelle wird das Verhalten des Schlüssels in den Cloud Data Fusion-Plug-ins beschrieben, die CMEK unterstützen.

Unterstützte Plug-ins Verhalten des Schlüssels
Cloud Data Fusion-Senken:
Cloud Storage Verschlüsselt Daten, die in jeden vom Plug-in erstellten Bucket geschrieben wurden. Wenn der Bucket bereits vorhanden ist, wird dieser Wert ignoriert.
Cloud Storage multi-file Verschlüsselt Daten, die in jeden vom Plug-in erstellten Bucket geschrieben wurden.
BigQuery Verschlüsselung von Daten, die in beliebige vom Plug-in erstellte Buckets, Datasets oder Tabellen geschrieben werden.
BigQuery-Multi-Tabelle Verschlüsselung von Daten, die in beliebige vom Plug-in erstellte Buckets, Datasets oder Tabellen geschrieben werden.
Pub/Sub Verschlüsselt Daten, die in beliebige vom Plug-in erstellte Themen geschrieben wurden. Wenn das Thema bereits vorhanden ist, wird dieser Wert ignoriert.
Spanner Verschlüsselung von Daten, die in eine vom Plug-in erstellte Datenbank geschrieben werden. Wenn die Datenbank bereits vorhanden ist, wird dieser Wert ignoriert.
Cloud Data Fusion-Aktionen:
Cloud Storage erstellen
Cloud Storage kopieren
Cloud Storage verschieben
Dateimarkierung für Cloud Storage abgeschlossen
Verschlüsselt Daten, die in jeden vom Plug-in erstellten Bucket geschrieben wurden. Wenn der Bucket bereits vorhanden ist, wird dieser Wert ignoriert.
BigQuery Execute Verschlüsselt Daten, die in das Dataset oder die Tabelle geschrieben werden, das bzw. die vom Plug-in zum Speichern der Abfrageergebnisse erstellt wird. Er gilt nur, wenn Sie die Abfrageergebnisse in einer BigQuery-Tabelle speichern.
Cloud Data Fusion-Quellen
BigQuery Source Verschlüsselt Daten, die in jeden vom Plug-in erstellten Bucket geschrieben wurden. Wenn der Bucket bereits vorhanden ist, wird dieser Wert ignoriert.
Cloud Data Fusion-SQL-Engine
BigQuery Pushdown Engine Verschlüsselung von Daten, die in beliebige vom Plug-in erstellte Buckets, Datasets oder Tabellen geschrieben werden.

CMEK mit Metadaten des Dataproc-Clusters verwenden

Die vorab erstellten Compute-Profile verwenden den CMEK-Schlüssel, der während der Instanzerstellung bereitgestellt wurde, um den nichtflüchtigen Speicher (PD) und die Staging-Bucket-Metadaten zu verschlüsseln, die vom ausgeführten Dataproc-Cluster geschrieben wurden, der in Ihrer Pipeline ausgeführt wird. Sie können einen anderen Schlüssel mithilfe von einem der folgenden Schritte ändern:

  • Empfohlen: Erstellen Sie ein neues Dataproc-Berechnungsprofil (nur Enterprise Edition).
  • Bearbeiten Sie ein vorhandenes Dataproc-Berechnungsprofil (Version Developer, Basic oder Enterprise).

Console

  1. Öffnen Sie die Cloud Data Fusion-Instanz:

    1. Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.

    2. Klicken Sie zum Öffnen der Instanz in der Cloud Data Fusion-Weboberfläche auf Instanzen und dann auf Instanz ansehen.

      Zur Seite „VM-Instanzen“

  2. Klicken Sie auf System Admin (Systemadministrator) > > Configuration (Konfiguration).

  3. Klicken Sie auf das Drop-down-Menü System Compute-Profiles.

  4. Klicken Sie auf Neues Profil erstellen und wählen Sie Dataproc aus.

  5. Geben Sie ein Profillabel, einen Profilnamen und eine Beschreibung ein.

  6. Standardmäßig erstellt Dataproc Staging- und temporäre Buckets immer dann, wenn von Cloud Data Fusion ein sitzungsspezifischer Cluster erstellt wird. Cloud Data Fusion unterstützt die Übergabe des Dataproc-Staging-Buckets als Argument im Compute-Profil. Erstellen Sie einen CMEK-fähigen Bucket und übergeben Sie ihn als Argument an Dataproc im Compute-Profil, um den Staging-Bucket zu verschlüsseln.

  7. Cloud Data Fusion erstellt standardmäßig automatisch einen Cloud Storage-Bucket, um von Dataproc verwendete Abhängigkeiten bereitzustellen. Wenn Sie einen bereits in Ihrem Projekt vorhandenen Cloud Storage-Bucket verwenden möchten, gehen Sie so vor:

    1. Geben Sie im Abschnitt Allgemeine Einstellungen Ihren vorhandenen Cloud Storage-Bucket in das Feld Cloud Storage-Bucket ein.

    2. Fügen Sie Ihren Cloud KMS-Schlüssel dem Cloud Storage-Bucket hinzu.

  8. Rufen Sie die Ressourcen-ID Ihres Cloud KMS-Schlüssels ab. Geben Sie im Abschnitt Allgemeine Einstellungen Ihre Ressourcen-ID in das Feld Name des Verschlüsselungsschlüssels ein.

  9. Klicken Sie auf Erstellen.

  10. Wenn im Abschnitt System Compute-Profile auf dem Tab Konfiguration mehrere Profile aufgeführt sind, legen Sie das neue Profil als Standardprofil fest, indem Sie den Zeiger über dem Feld für den Profilnamen halten und auf den angezeigten Stern klicken.

    Wählen Sie das Standardprofil.

CMEK mit anderen Ressourcen verwenden

Der bereitgestellte CMEK-Schlüssel wird während der Erstellung der Cloud Data Fusion-Instanz auf die Systemeinstellung festgelegt. Er wird verwendet, um Daten zu verschlüsseln, die in Pipeline-Senken wie Cloud Storage-, BigQuery-, Pub/Sub- oder Spanner-Senken in neu erstellte Ressourcen geschrieben werden.

Dieser Schlüssel gilt nur für neu erstellte Ressourcen. Wenn die Ressource bereits vor der Pipelineausführung vorhanden ist, sollten Sie den CMEK-Schlüssel manuell auf diese vorhandenen Ressourcen anwenden.

Sie können den CMEK-Schlüssel mit einem der folgenden Schritte ändern:

  • Ein Laufzeitargument verwenden
  • Eine Systemeinstellung in Cloud Data Fusion festlegen

Laufzeitargument

  1. Klicken Sie auf der Cloud Data Fusion-Seite Pipeline Studio rechts neben der Schaltfläche Ausführen auf den Drop-down-Pfeil.
  2. Geben Sie im Feld Name gcp.cmek.key.name ein.
  3. Geben Sie im Feld Wert die Ressourcen-ID des Schlüssels ein.
    Wählen Sie die Data Fusion-Edition aus.
  4. Klicken Sie auf Speichern.

    Das hier festgelegte Laufzeitargument gilt nur für die Ausführung der aktuellen Pipeline.

Einstellung

  1. Klicken Sie in der Benutzeroberfläche von Cloud Data Fusion auf SYSTEMADMINISTRATOR.
  2. Klicken Sie auf den Tab Configuration (Konfiguration).
  3. Klicken Sie auf das Drop-down-Menü Systemeinstellungen.
  4. Klicken Sie auf Systemeinstellungen bearbeiten.
  5. Geben Sie im Feld Schlüssel gcp.cmek.key.name ein.
  6. Geben Sie im Feld Wert die Ressourcen-ID des Schlüssels ein.
    Wählen Sie die Data Fusion-Edition aus.
  7. Klicken Sie auf Speichern & schließen.