In diesem Leitfaden wird die Verwendung von CMEK für Dataform beschrieben. Außerdem wird erläutert, wie Sie die CMEK-Verschlüsselung von Dataform-Repositories aktivieren.
Dataform verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von Dataform übernommen. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.
Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie kundenverwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Dataform verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem die Schlüsselnutzung verfolgen, Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.
Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Dataform-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).
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 im Ruhezustand mit dem für das Repository festgelegten CMEK-Schutzschlüssel verschlüsselt. Dazu gehören:
- Inhalt des Git-Repositorys des Dataform-Repositorys und seiner Arbeitsbereiche
- Kompilierte SQL-Abfragen und Kompilierungsfehler
- Gespeicherte SQL-Abfragen von Workflowaktionen
- Fehlerdetails zu ausgeführten Workflow-Aktionen
Dataform verwendet CMEK-Schutzschlüssel in den folgenden Szenarien:
- Bei jedem Vorgang, bei dem Kundendaten im Ruhezustand entschlüsselt werden müssen.
Zu diesen Vorgängen gehören unter anderem:
- Antworten auf eine Nutzeranfrage, z. B.
compilationResults.query. - Erstellung von Dataform-Ressourcen, für die zuvor verschlüsselte Repository-Daten erforderlich sind, z. B. Workflow-Aufrufe.
- Git-Vorgänge zum Aktualisieren des Remote-Repositorys, z. B. Pushen eines Git-Commits.
- Antworten auf eine Nutzeranfrage, z. B.
- Bei jedem Vorgang, bei dem Kundendaten im Ruhezustand gespeichert werden müssen.
Dazu gehören unter anderem die folgenden Vorgänge:
- 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 die Ausführung von Dataform-Workflows erstellt werden. Wenn Sie Daten verschlüsseln möchten, die in BigQuery erstellt und gespeichert werden, konfigurieren Sie CMEK für BigQuery.
Unterstützte Schlüssel
Dataform unterstützt die folgenden Arten von CMEK-Schlüsseln:
- Cloud KMS-Softwareschlüssel
- Cloud HSM-Schlüssel (Hardware Security Module)
- Cloud External Key Manager-Schlüssel (Cloud EKM)
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.
Beschränkungen
Dataform unterstützt CMEK mit den folgenden Einschränkungen:
- Die maximale Größe eines CMEK-verschlüsselten Repositorys beträgt 512 MB.
- Die maximale Größe eines Arbeitsbereichs in einem CMEK-verschlüsselten Repository beträgt 512 MB.
- Sie können einen CMEK-Schutzschlüssel nicht auf ein Repository anwenden, nachdem das Repository erstellt wurde. Sie können die CMEK-Verschlüsselung nur beim Erstellen des Repositorys 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.
- Wenn Sie einen Standard-CMEK-Schlüssel für Dataform für Ihr Google Cloud -Projekt festlegen, müssen alle neuen Repositories, die am Google Cloud -Projektstandort erstellt werden, mit CMEK verschlüsselt werden. Wenn Sie ein neues Repository am Speicherort des Google Cloud -Projekts erstellen, können Sie den Dataform-CMEK-Standardschlüssel oder einen anderen CMEK-Schlüssel anwenden, aber nicht die Verschlüsselung ruhender Daten.
- Wenn Sie den Wert eines Dataform-CMEK-Standardschlüssels ändern, gilt der vorherige Wert für bereits vorhandene Repositories und der aktualisierte Wert für Repositories, die nach der Änderung erstellt wurden.
- Sie können nur einen Standard-Dataform-CMEK-Schlüssel pro Speicherort von Google Cloud Projekt-Repositories festlegen.
- Die Verwendung von Cloud HSM- und Cloud EKM-Schlüsseln unterliegt der Verfügbarkeit. Weitere Informationen zur Verfügbarkeit von Schlüsseln an verschiedenen Standorten finden Sie unter Cloud KMS-Standorte.
Cloud KMS-Kontingente und Dataform
Sie können Cloud HSM- und Cloud EKM-Schlüssel mit Dataform verwenden. Wenn Sie CMEK in Dataform verwenden, können Ihre Projekte Kontingente für kryptografische Cloud KMS-Anfragen verbrauchen. CMEK-verschlüsselte Dataform-Repositories können diese Kontingente beispielsweise für jede Änderung am Repository-Inhalt verbrauchen. 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 Vorgänge zur Schlüsselverwaltung. Dataform kann Schlüsseländerungen erst erkennen oder darauf reagieren, wenn sie von Cloud KMS weitergegeben wurden. Bei einigen Vorgängen, z. B. beim Deaktivieren oder Löschen eines Schlüssels, kann es bis zu drei Stunden dauern, bis Änderungen wirksam werden. Änderungen an Berechtigungen werden normalerweise viel schneller übernommen.
Nachdem das Repository erstellt wurde, ruft Dataform Cloud KMS auf, um sicherzustellen, dass der Schlüssel bei jedem Vorgang für verschlüsselte Repository-Daten noch gültig ist.
Wenn Dataform erkennt, dass Ihr Cloud KMS-Schlüssel deaktiviert oder gelöscht wurde, sind alle im entsprechenden Repository gespeicherten Daten nicht mehr zugänglich.
Wenn bei Aufrufen von Dataform an Cloud KMS erkannt wird, dass ein zuvor deaktivierter Schlüssel wieder aktiviert wurde, stellt Dataform den Zugriff automatisch wieder her.
Externe Schlüssel mit Cloud EKM verwenden
Als Alternative zur Verwendung von Schlüsseln, die sich in Cloud KMS befinden, können Sie Schlüssel verwenden, die sich bei einem unterstützten Partner für die externe Schlüsselverwaltung befinden. Verwenden Sie dazu Cloud External Key Manager (Cloud EKM), um externe Schlüssel zu erstellen und zu verwalten. Diese sind Verweise auf Schlüssel, die sich außerhalb von Google Cloudbefinden. Weitere Informationen finden Sie unter Cloud External Key Manager.
Nachdem Sie einen externen Schlüssel mit Cloud EKM erstellt haben, können Sie ihn auf ein neues Dataform-Repository anwenden, indem Sie die ID dieses Schlüssels beim Erstellen des Repositorys angeben. Dieses Verfahren ist dasselbe wie das Anwenden eines Cloud KMS-Schlüssels auf ein neues Repository.
Dataform-Standard-CMEK-Schlüssel verwenden
Wenn Sie mehrere Dataform-Repositories mit demselben CMEK-Schlüssel verschlüsseln möchten, können Sie einen Standard-CMEK-Schlüssel für Ihr Google Cloud -Projekt festlegen. Sie müssen den Standort des Google Cloud -Projekts für den standardmäßigen Dataform-CMEK-Schlüssel angeben. Sie können nur einen Standard-CMEK-Schlüssel pro Google Cloud Projekt festlegen.
Nachdem Sie einen Standard-CMEK-Schlüssel für Dataform festgelegt haben, wendet Dataform den Schlüssel standardmäßig auf alle neuen Repositories an, die am Google Cloud Projektstandort erstellt werden. Wenn Sie ein Repository erstellen, können Sie den Standardschlüssel verwenden oder einen anderen CMEK-Schlüssel auswählen.
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 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.
Die verschlüsselten Repository-Daten bleiben so lange unzugänglich, bis Dataform wieder eine Verbindung zu Cloud KMS herstellen kann. Cloud KMS antwortet daraufhin, 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 unzugänglich, bis Dataform sich wieder mit Cloud KMS verbinden 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 Ihr Projekt die Audit-Logging-Funktion aktiviert haben. Diese Cloud KMS-Logeinträge sind in Cloud Logging sichtbar. Weitere Informationen finden Sie unter Logs ansehen.
Hinweis
Ü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 die Berechtigungen besser kontrollieren zu können. Weitere Informationen zu Google Cloud Projekt-IDs und Projektnummern finden Sie unter Projektnamen, -nummer und -ID ermitteln.
Für das Google Cloud -Projekt, in dem Cloud KMS ausgeführt wird:
- Cloud Key Management Service API aktivieren
- 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 Standort, der dem Standort Ihres Dataform-Repositorys entspricht:
-
Für Repositories müssen übereinstimmende regionale Schlüssel verwendet werden. Beispiel: Ein Repository in der Region
asia-northeast3muss mit einem Schlüssel aus einem Schlüsselbund inasia-northeast3geschützt werden. -
Die Region
globalkann nicht mit Dataform verwendet werden.
-
Für Repositories müssen übereinstimmende regionale Schlüssel verwendet werden. Beispiel: Ein Repository in der Region
CMEK aktivieren
Dataform kann in Ihrem Namen auf den Schlüssel zugreifen, nachdem Sie dem standardmäßigen Dataform-Dienst-Agent die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler (roles/cloudkms.cryptoKeyEncrypterDecrypter) zugewiesen haben.
Die ID Ihres Dataform-Standarddienst-Agents hat das folgende Format: