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

Überblick

Auf dieser Seite wird beschrieben, wie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) mit Datastream funktionieren.

Ist CMEK das Richtige für Sie?

CMEK ist für Organisationen mit sensiblen oder regulierten Daten gedacht, für die sie ihre Verschlüsselungsschlüssel verwalten müssen.

Von Google und vom Kunden verwaltete Verschlüsselung im Vergleich

Mit dem CMEK-Feature können Sie für inaktive Daten in Datastream eigene kryptografische Schlüssel verwenden. Nachdem Sie einen CMEK hinzugefügt haben, verwendet Datastream bei jedem API-Aufruf Ihren Schlüssel für den Zugriff auf Daten.

Datastream verwendet von Google verwaltete Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) und Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEK) zum Verschlüsseln von Datastream. Es gibt zwei Verschlüsselungsebenen:

  1. Der DEK verschlüsselt Daten.
  2. Der KEK verschlüsselt den DEK.

Datastream speichert den verschlüsselten DEK zusammen mit den verschlüsselten Daten und Google verwaltet den Google-KEK. Mit CMEK erstellen Sie einen Schlüssel, der den Google-KEK umschließt. Mit CMEK können Sie den KEK erstellen, widerrufen und löschen.

CMEK, einschließlich Software, Hardware und externer Schlüssel, werden über die Cloud Key Management Service (KMS) API verwaltet.

An welchen Standorten werden CMEK-fähige Datastream-Streams unterstützt?

CMEK ist an allen Datastream-Standorten verfügbar.

Informationen zu Dienstkonten

Wenn für Ihre Datastream-Streams CMEK aktiviert ist, müssen Sie ein Dienstkonto verwenden, um den Schlüsselzugriff vom Cloud Key Management Service anzufordern.

Wenn Sie einen CMEK für ein Projekt verwenden möchten, benötigen Sie ein Dienstkonto. Außerdem müssen Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren. Das Dienstkonto muss im Projekt vorhanden sein. Das Dienstkonto ist in allen Regionen sichtbar.

Wenn Sie die Console zum Erstellen eines Streams verwenden, erstellt Datastream das Dienstkonto automatisch, wenn Sie zum ersten Mal die Option Vom Kunden verwalteter Schlüssel auswählen (falls noch kein Dienstkonto vorhanden ist). Sie benötigen keine speziellen Berechtigungen für Ihr Nutzerkonto, wenn Datastream das Dienstkonto automatisch erstellt.

Schlüssel verstehen

In Cloud Key Management Service müssen Sie einen Schlüsselbund mit einem kryptografischen Schlüssel erstellen, für den ein Standort festgelegt ist. Wenn Sie einen neuen Stream in Datastream erstellen, wählen Sie diesen Schlüssel aus, um den Stream zu verschlüsseln.

Sie müssen die Schlüssel-ID und die Schlüsselregion kennen, wenn Sie neue Streams erstellen, die CMEK verwenden. Neue Streams müssen sich in derselben Region befinden wie der mit den Streams verknüpfte CMEK. Sie können ein Projekt sowohl für Schlüssel als auch für Streams erstellen oder für jeden ein separates Projekt.

CMEK verwendet das folgende Format:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

Wenn Datastream nicht auf den Schlüssel zugreifen kann, weil Sie beispielsweise die Schlüsselversion deaktiviert haben, ändert Datastream den Status des Streams in FAILED und eine entsprechende Fehlermeldung wird angezeigt. Nachdem alle mit der Fehlermeldung verbundenen Probleme behoben wurden, sodass der Schlüssel wieder zugänglich ist, setzt Datastream den Stream automatisch fort.

Externe Schlüsselverwaltung

Sie können Schlüssel, die in externen Schlüsselverwaltungssystemen wie Fortanix, Ionic oder Thales gespeichert sind, als CMEK verwenden. Informationen zum Verwenden externer Schlüssel mit dem Cloud Key Management Service finden Sie unter Cloud External Key Manager.

Wie machen Sie CMEK-verschlüsselte Daten dauerhaft unzugänglich?

Es kann vorkommen, dass Sie mit CMEK verschlüsselte Daten dauerhaft löschen möchten. Dazu löschen Sie die CMEK-Version. Sie können den Schlüsselbund oder Schlüssel nicht löschen, aber Sie können Schlüsselversionen des Schlüssels löschen.

Einschränkungen

Bei der Verwendung von CMEK gelten die folgenden Einschränkungen:

  • Sie können CMEK für einen laufenden Stream nicht aktualisieren.

  • Sie können CMEK verwenden, um Zeilen aus der Quelldatenbank zu verschlüsseln. Sie können diese Schlüssel jedoch nicht zum Verschlüsseln von Streammetadaten wie Stream-ID, IP-Adresse der Quelldatenbank oder Namen der Quelldatenbanktabellen verwenden.

CMEK verwenden

Sie kennen jetzt CMEK und können ein Dienstkonto und Schlüssel für CMEK einrichten. Außerdem erfahren Sie, wie Sie Datastream für die Verwendung von CMEK einrichten. Weitere Informationen zu CMEK finden Sie in der Übersicht.

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  5. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  6. Cloud SDK installieren und initialisieren
  7. Achten Sie darauf, dass Ihrem Nutzerkonto die Rolle „Datastream-Administrator“ zugewiesen ist.

    Zur IAM-Seite

  8. Cloud Key Management Service API aktivieren.

    Aktivieren Sie die API

  9. Aktivieren Sie die Datastream API.

    API aktivieren

Workflow zum Erstellen eines Streams in Datastream mit CMEK

  1. Nur gcloud- und API-Nutzer:Sie benötigen ein Dienstkonto für jedes Projekt, das CMEK erfordert. Falls nicht, erfahren Sie hier, wie Sie ein Dienstkonto erstellen.
  2. Erstellen Sie einen Schlüsselbund und Schlüssel und legen Sie den Speicherort für jeden Schlüssel fest. Der Standort ist die Google Cloud-Region.
  3. Nur gcloud- und API-Nutzer: Gewähren Sie dem Schlüssel Zugriff auf das Dienstkonto.
  4. Kopieren oder notieren Sie die Schlüssel-ID (KMS_KEY_ID) und den Speicherort des Schlüssels sowie die ID (KMS_KEYRING_ID) für den Schlüsselbund. Sie benötigen diese Informationen, um dem Schlüssel Zugriff auf das Dienstkonto zu gewähren.
  5. Rufen Sie ein Projekt auf und erstellen Sie einen Stream in Datastream mit den folgenden Optionen:
    1. Am selben Standort wie der CMEK
    2. Die CMEK-Konfiguration
    3. Die CMEK-ID

Ihr Stream in Datastream ist jetzt mit CMEK aktiviert.

Dienstkonto erstellen

Sie müssen für jedes Projekt, das CMEK erfordert, ein Dienstkonto erstellen.

Gewähren Sie eine der folgenden Rollen, um zuzulassen, dass ein Nutzer Dienstkonten verwalten kann:

  • Dienstkontonutzer (roles/iam.serviceAccountUser): Umfasst Berechtigungen zum Auflisten von Dienstkonten, Abrufen von Details zu einem Dienstkonto und zum Übernehmen der Identität eines Dienstkontos.
  • Dienstkontoadministrator (roles/iam.serviceAccountAdmin): Umfasst Berechtigungen zum Auflisten von Dienstkonten und zum Abrufen von Details zu einem Dienstkonto. Umfasst auch Berechtigungen zum Erstellen, Aktualisieren und Löschen von Dienstkonten sowie zum Aufrufen oder Ändern der Datastream-Richtlinie für ein Dienstkonto.

Derzeit können Sie nur gcloud-Befehle verwenden, um den Typ von Dienstkonto zu erstellen, den Sie für CMEK benötigen. Wenn Sie die Console verwenden, erstellt Datastream dieses Dienstkonto automatisch für Sie.

Führen Sie den folgenden Befehl aus, um ein Dienstkonto mit gcloud zu erstellen:

gcloud beta services identity create \
--service=datastream.googleapis.com \
--project=PROJECT_ID

Der vorherige Befehl gibt den Namen eines Dienstkontos zurück. Sie verwenden diesen Dienstkontonamen, während Sie die Schritte unter Schlüsselzugriff auf das Dienstkonto gewähren ausführen.

Schlüssel erstellen

Sie können den Schlüssel im selben Google Cloud-Projekt wie den Stream in Datastream oder in einem separaten Nutzerprojekt erstellen. Der Speicherort des Cloud KMS-Schlüsselbunds muss mit der Region übereinstimmen, in der Sie den Stream erstellen möchten. Ein Schlüssel für mehrere Regionen oder globale Regionen funktioniert nicht. Wenn die Regionen nicht übereinstimmen, können Sie den Stream nicht erstellen.

So erstellen Sie einen Cloud KMS-Schlüssel:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Kryptografische Schlüssel auf.
  2. Klicken Sie auf Schlüsselbund erstellen.
  3. Fügen Sie einen Schlüsselbundnamen hinzu. Notieren Sie sich diesen Namen, da Sie ihn benötigen, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.
  4. Fügen Sie einen Schlüsselbund-Speicherort hinzu.
  5. Klicken Sie auf Erstellen. Die Seite Schlüssel erstellen wird geöffnet.
  6. Fügen Sie einen Schlüsselnamen hinzu.
  7. Wählen Sie einen Zweck (symmetrisch oder asymmetrisch) aus.
  8. Wählen Sie einen Rotationszeitraum und ein Startdatum aus.
  9. Klicken Sie auf Erstellen.
  10. Klicken Sie in der Tabelle Schlüssel auf die drei Punkte in der letzten Spalte und wählen Sie Ressourcen-ID kopieren aus oder notieren Sie sich die ID. Dies ist die KMS_KEY_ID. Sie benötigen die KMS_KEY_ID, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.

gcloud

  1. Erstellen Sie einen neuen Schlüsselbund.
    gcloud kms keyrings create KMS_KEYRING_ID \
    --location=GCP_REGION
      
    Notieren Sie sich diesen Namen, da Sie ihn benötigen, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.
  2. Erstellen Sie einen Schlüssel im Schlüsselbund.
    gcloud kms keys create KMS_KEY_ID \
    --location=GCP_REGION \
    --keyring=KMS_KEYRING_ID \
    --purpose=encryption
      
    Notieren Sie sich diesen Namen, da Sie ihn benötigen, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.

Schlüsselzugriff auf das Dienstkonto gewähren

Sie müssen diese Schritte nur ausführen, wenn Sie gcloud oder die API verwenden.

Verwenden Sie den folgenden Code, um Zugriff auf das Dienstkonto zu gewähren:

gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
--location=GCP_REGION \
--keyring=KMS_KEYRING_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datastream.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Stream in Datastream mit CMEK erstellen

Beim Erstellen eines Streams in Datastream können Sie die Verschlüsselung Ihrer Daten mit Ihrem CMEK verwalten.

Schlüsselversionen deaktivieren und reaktivieren

Sehen Sie sich die folgenden Themen an: