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 im 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 Schlüssel mit mehreren Regionen oder globaler Region ist auf Instanzebene nicht zulässig, da Cloud Data Fusion immer einer bestimmten Region zugeordnet 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
Dabei gilt:
- 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
Rufen Sie die Seite Schlüsselverwaltung auf.
Klicken Sie neben Ihrem Schlüssel auf Mehr
.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:
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.
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.
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.
Erforderlich: Weisen Sie dem Google Cloud Dataproc-Dienst-Agent die Rolle „Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler“ zu. Dieser Dienst-Agent hat das folgende Format:
service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com
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
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
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 Version 6.5.0 und .
REST API
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 gehostet wird Cloud Data Fusion-Instanz
- REGION: eine Google Cloud-Region, die
schließen
an Ihren Standort, 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
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
Rufen Sie die Seite „Cloud Data Fusion“ auf.
Klicken Sie auf Instanzen und dann auf Instanz erstellen.
Wählen Sie unter Erweiterte Optionen die Option Vom Kunden verwaltete Verschlüsselung verwenden aus. Schlüssel (CMEK).
Wählen Sie im Feld Wählen Sie einen vom Kunden verwalteten Schlüssel aus aus. Ressourcenname für den Schlüssel.
Klicken Sie auf Erstellen, nachdem Sie alle Instanzdetails eingegeben haben. Wenn der Parameter einsatzbereit ist, wird sie auf der Seite Instanzen angezeigt.
Prüfen, ob CMEK für eine Instanz aktiviert ist
Console
Rufen Sie die Instanzdetails auf:
Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.
Klicken Sie auf Instanzen und dann auf den Namen der Instanz, um die Seite Instanzdetails aufzurufen.
Wenn CMEK aktiviert ist, wird das Feld Verschlüsselungsschlüssel als Verfügbar angezeigt.
Wenn CMEK deaktiviert ist, wird im Feld Verschlüsselungsschlüssel 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
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 vom Plug-in erstellte Dataset oder die vom Plug-in erstellte Tabelle geschrieben wurden um die Abfrageergebnisse zu speichern. Dies gilt nur, wenn Sie die Abfrageergebnisse in einer BigQuery-Tabelle. |
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
Öffnen Sie die Cloud Data Fusion-Instanz:
Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.
Um die Instanz in Cloud Data Fusion Studio zu öffnen, Klicken Sie auf Instanzen und dann auf Instanz ansehen.
Klicken Sie auf Systemadministrator > Konfiguration.
Klicken Sie auf das Drop-down-Menü System Compute-Profiles.
Klicken Sie auf Neues Profil erstellen und wählen Sie Dataproc aus.
Geben Sie ein Profillabel, einen Profilnamen und eine Beschreibung ein.
Standardmäßig erstellt Dataproc Staging- und Temp-Buckets, 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 zum Verschlüsseln des Staging-Buckets einen CMEK-fähigen Bucket und übergeben Sie ihn im Compute-Profil als Argument an Dataproc.
Standardmäßig erstellt Cloud Data Fusion automatisch einen Cloud Storage-Bucket, um Abhängigkeiten zu verwalten, die von Dataproc verwendet werden. Wenn Sie einen Cloud Storage-Bucket verwenden möchten, der bereits in Ihrem Projekt vorhanden ist, gehen Sie so vor:
Geben Sie im Abschnitt Allgemeine Einstellungen Ihren vorhandenen Cloud Storage-Bucket in das Feld Cloud Storage-Bucket ein.
Fügen Sie Ihren Cloud KMS-Schlüssel dem Cloud Storage-Bucket hinzu.
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.
Klicken Sie auf Erstellen.
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.
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
- Klicken Sie auf der Cloud Data Fusion-Seite Pipeline Studio rechts neben der Schaltfläche Ausführen auf den Drop-down-Pfeil.
- Geben Sie im Feld Name
gcp.cmek.key.name
ein. - Geben Sie im Feld Wert die Ressourcen-ID Ihres Schlüssels ein.
Klicken Sie auf Speichern.
Das hier festgelegte Laufzeitargument gilt nur für die Ausführung der aktuellen Pipeline.
Einstellung
- Klicken Sie in der Benutzeroberfläche von Cloud Data Fusion auf SYSTEMADMINISTRATOR.
- Klicken Sie auf den Tab Configuration (Konfiguration).
- Klicken Sie auf das Drop-down-Menü Systemeinstellungen.
- Klicken Sie auf Systemeinstellungen bearbeiten.
- Geben Sie im Feld Schlüssel
gcp.cmek.key.name
ein. - Geben Sie im Feld Wert die Ressourcen-ID Ihres Schlüssels ein.
- Klicken Sie auf Speichern & schließen.