Kundenverwaltete Verschlüsselungsschlüssel verwenden

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:
  • Bei jedem Vorgang, bei dem Kundendaten im Ruhezustand gespeichert werden müssen. Dazu gehören unter anderem die folgenden Vorgänge:

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:

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:

    1. Cloud Key Management Service API aktivieren
    2. 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-northeast3 muss mit einem Schlüssel aus einem Schlüsselbund in asia-northeast3 geschützt werden.
      • Die Region global kann nicht mit Dataform verwendet werden.
      Weitere Informationen zu den unterstützten Standorten für Dataform und Cloud KMS finden Sie unter Cloud-Standorte.

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: