Standardmäßig verschlüsselt Google Cloud inaktive Daten automatisch mit von Google verwalteten Verschlüsselungsschlüsseln. Wenn Sie bestimmte Compliance- oder regulatorische Anforderungen in Bezug auf die Schlüssel zum Schutz Ihrer Daten haben, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Dataform-Repositories verwenden.
In diesem Leitfaden wird die Verwendung von CMEK für Dataform beschrieben und Sie erfahren, wie Sie die CMEK-Verschlüsselung von Dataform-Repositories aktivieren.
Weitere Informationen zu CMEK im Allgemeinen, z. B. wann und warum sie aktiviert werden sollten, finden Sie in der CMEK-Dokumentation.
CMEK-Verschlüsselung von Repository-Daten
Wenn Sie die CMEK-Verschlüsselung auf ein Dataform-Repository anwenden, werden alle von Dataform verwalteten Kundendaten in diesem Repository mit dem für das Repository festgelegten CMEK-Schutzschlüssel verschlüsselt. Diese Daten umfassen Folgendes:
- Inhalt des Git-Repositorys des Dataform-Repositorys und seiner Arbeitsbereiche
- Kompilierte SQL-Abfragen und Kompilierungsfehler
- Gespeicherte SQL-Abfragen von Workflowaktionen
- Fehlerdetails der ausgeführten Workflowaktionen
Dataform verwendet CMEK-Schutzschlüssel in den folgenden Szenarien:
- Bei jedem Vorgang, bei dem inaktive Kundendaten entschlüsselt werden müssen.
Zu diesen Vorgängen gehören unter anderem:
- Antworten auf eine Nutzeranfrage, z. B.
compilationResults.query
- Erstellen von Dataform-Ressourcen, die zuvor erstellte verschlüsselte Repository-Daten erfordern, z. B. Workflowaufrufe.
- Git-Vorgänge zum Aktualisieren des Remote-Repositorys, z. B. Übertragung eines Git-Commit
- Antworten auf eine Nutzeranfrage, z. B.
- Bei jedem Vorgang, der das Speichern ruhender Kundendaten erfordert.
Diese Vorgänge umfassen unter anderem:
- Antworten auf eine Nutzeranfrage, z. B.
compilationResults.create
- Git-Vorgänge für einen Arbeitsbereich, z. B. Abrufen eines Git-Commits.
- Antworten auf eine Nutzeranfrage, z. B.
Dataform verwaltet die Verschlüsselung von Kundendaten, die nur mit Dataform-Ressourcen verknüpft sind. Dataform verwaltet nicht die Verschlüsselung von Kundendaten, die in BigQuery durch Ausführung von Dataform-Workflows erstellt werden. Konfigurieren Sie einen CMEK für BigQuery, um Daten zu verschlüsseln, die in BigQuery erstellt und gespeichert wurden.
Unterstützte Schlüssel
Dataform unterstützt die folgenden Arten von CMEK-Schlüsseln:
Die Schlüsselverfügbarkeit variiert je nach Schlüsseltyp und Region. Weitere Informationen zur geografischen Verfügbarkeit von CMEK-Schlüsseln finden Sie unter Cloud KMS-Standorte.
Einschränkungen
Dataform unterstützt CMEK mit den folgenden Einschränkungen:
- Sie können keinen CMEK-Schutzschlüssel auf ein Repository anwenden, nachdem das Repository erstellt wurde. Sie können die CMEK-Verschlüsselung nur während der Repository-Erstellung anwenden.
- Sie können einen CMEK-Schutzschlüssel nicht aus einem Repository entfernen.
- Sie können einen CMEK-Schutzschlüssel für ein Repository nicht ändern.
- CMEK-Organisationsrichtlinien sind nicht verfügbar.
- Die Verwendung von Cloud HSM-Schlüsseln ist abhängig von der Verfügbarkeit. Weitere Informationen zur Verfügbarkeit von Schlüsseln standortübergreifend finden Sie unter Cloud KMS-Standorte.
Cloud KMS-Kontingente und Dataform
Sie können Cloud HSM-Schlüssel mit Dataform verwenden. Wenn Sie CMEK in Dataform verwenden, können Ihre Projekte Cloud KMS-Kontingente für kryptografische Anfragen verbrauchen. CMEK-verschlüsselte Dataform-Repositories können diese Kontingente beispielsweise bei jeder Änderung an den Repository-Inhalten nutzen. Ver- und Entschlüsselungsvorgänge über CMEK-Schlüssel wirken sich nur dann auf Cloud KMS-Kontingente aus, wenn Sie Hardware- (Cloud HSM) oder externe Schlüssel (Cloud EKM) verwenden. Weitere Informationen finden Sie unter Cloud KMS-Kontingente.
Schlüssel verwalten
Verwenden Sie Cloud KMS für alle Schlüsselverwaltungsvorgänge. Dataform kann wichtige Änderungen erst erkennen oder darauf reagieren, wenn sie von Cloud KMS weitergegeben wurden. Bei einigen Vorgängen, z. B. das Deaktivieren oder Löschen eines Schlüssels, kann es bis zu drei Stunden dauern, bis die Änderungen wirksam werden. Änderungen an Berechtigungen werden in der Regel viel schneller übernommen.
Nachdem das Repository erstellt wurde, ruft Dataform Cloud KMS auf, um dafür zu sorgen, dass der Schlüssel bei jedem Vorgang mit verschlüsselten Repository-Daten gültig ist.
Wenn Dataform feststellt, dass Ihr Cloud KMS-Schlüssel deaktiviert oder gelöscht wurde, sind keine Daten mehr im entsprechenden Repository zugänglich.
Wenn Aufrufe von Dataform an Cloud KMS feststellen, dass ein zuvor deaktivierter Schlüssel wieder aktiviert wurde, stellt Dataform den Zugriff automatisch wieder her.
Umgang mit einem nicht verfügbaren Schlüsselstatus
In seltenen Fällen, z. B. wenn Cloud KMS nicht verfügbar ist, kann Dataform den Status Ihres Schlüssels möglicherweise nicht aus Cloud KMS abrufen.
Wenn Ihr Dataform-Repository durch einen Schlüssel geschützt ist, der zu dem Zeitpunkt aktiviert ist, zu dem Dataform nicht mit Cloud KMS kommunizieren kann, sind die verschlüsselten Repository-Daten nicht mehr zugänglich.
Der Zugriff auf die verschlüsselten Repository-Daten bleibt so lange unzugänglich, bis Dataform eine Verbindung zu Cloud KMS herstellen kann und Cloud KMS antwortet, dass der Schlüssel aktiv ist.
Wenn Ihr Dataform-Repository dagegen durch einen Schlüssel geschützt ist, der zu dem Zeitpunkt deaktiviert ist, zu dem Dataform zum ersten Mal nicht mit Cloud KMS kommunizieren kann, bleiben die verschlüsselten Repository-Daten erst dann zugänglich, wenn eine Verbindung zu Cloud KMS hergestellt werden kann und Sie Ihren Schlüssel wieder aktiviert haben.
Logging
Sie können die Anfragen, die Dataform in Ihrem Namen an Cloud KMS sendet, in Cloud Logging prüfen, wenn Sie für die Cloud KMS API in Ihrem Projekt Audit-Logging aktiviert haben. Diese Cloud KMS-Logeinträge sind in Cloud Logging sichtbar. Weitere Informationen finden Sie unter Logs ansehen.
Hinweise
Überlegen Sie sich, ob Sie Dataform und Cloud KMS in verschiedenen Projekten oder im selben Projekt ausführen möchten. Wir empfehlen, separate Projekte zu verwenden, um Berechtigungen besser steuern zu können. Weitere Informationen zu Google Cloud-Projekt-IDs und -Projektnummern finden Sie unter Projekte identifizieren.
Für das Google Cloud-Projekt, in dem Cloud KMS ausgeführt wird:
- Aktivieren Sie die Cloud Key Management Service API.
- Erstellen Sie einen Schlüsselbund und einen Schlüssel, wie unter Schlüsselbunde und Schlüssel erstellen beschrieben. Erstellen Sie den Schlüsselbund an einem Speicherort, der dem Speicherort Ihres Dataform-Repositorys entspricht:
-
Repositories müssen übereinstimmende regionale Schlüssel verwenden. Beispielsweise muss ein Repository in der Region
asia-northeast3
mit einem Schlüssel aus einem Schlüsselbund inasia-northeast3
geschützt werden. -
Die Region
global
kann nicht mit Dataform verwendet werden.
-
Repositories müssen übereinstimmende regionale Schlüssel verwenden. Beispielsweise muss ein Repository in der Region
CMEK aktivieren
Dataform kann in Ihrem Namen auf den Schlüssel zugreifen, nachdem Sie dem Dataform-Standarddienstkonto die Cloud KMS-Rolle CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter
) gewährt haben.
Die standardmäßige Dataform-Dienstkonto-ID hat das folgende Format:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
So weisen Sie dem Dataform-Standarddienstkonto die Rolle „CryptoKey Encrypter/Decrypter“ zu:
Console
Öffnen Sie in der Google Cloud Console die Seite Schlüsselverwaltung.
Klicken Sie auf den Namen des Schlüsselbunds, der den Schlüssel enthält.
Klicken Sie auf das Kästchen für den Verschlüsselungsschlüssel, dem Sie die Rolle hinzufügen möchten. Der Tab Berechtigungen wird geöffnet.
Klicken Sie auf Mitglied hinzufügen.
Geben Sie die E-Mail-Adresse des Dienstkontos ein
- Wenn sich das Dienstkonto bereits in der Mitgliederliste befindet, enthält es Rollen. Klicken Sie auf die Drop-down-Liste der aktuellen Rolle des Dienstkontos.
Klicken Sie auf die Drop-down-Liste für Rolle auswählen, dann auf Cloud KMS und anschließend auf die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler.
Klicken Sie auf Speichern, um die Rolle auf das Dienstkonto anzuwenden.
gcloud
Sie können die Google Cloud CLI verwenden, um die Rolle zuzuweisen:
gcloud kms keys add-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY
Ersetzen Sie Folgendes:
KMS_PROJECT_ID
ist die ID Ihres Google Cloud-Projekts, in dem Cloud KMS ausgeführt wird.SERVICE_ACCOUNT
: die E-Mail-Adresse Ihres Dataform-StandarddienstkontosKMS_KEY_LOCATION
ist der Standortname Ihres Cloud KMS-Schlüssels.KMS_KEY_RING
ist der Schlüsselbundname Ihres Cloud KMS-Schlüssels.KMS_KEY
ist der Schlüsselname Ihres Cloud KMS-Schlüssels.
CMEK auf ein Repository anwenden
Sie können den CMEK-Schutz während der Repository-Erstellung auf ein Dataform-Repository anwenden.
Wenn Sie die CMEK-Verschlüsselung auf ein Dataform-Repository anwenden möchten, geben Sie beim Erstellen des Repositorys einen Cloud KMS-Schlüssel an. Eine Anleitung dazu finden Sie unter Repository erstellen.
Sie können den Verschlüsselungsmechanismus eines Dataform-Repositorys nicht mehr ändern, nachdem das Repository erstellt wurde.
Weitere Informationen finden Sie unter Einschränkungen.
Nächste Schritte
- Weitere Informationen zu CMEK finden Sie in der Übersicht über CMEK.
- Weitere Informationen zu Cloud KMS-Kontingenten finden Sie unter Cloud KMS-Kontingente.
- Weitere Informationen zu den Cloud KMS-Preisen finden Sie unter Cloud KMS-Preise.
- Weitere Informationen zu Dataform-Repositories finden Sie unter Einführung in Repositories.