Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) – Übersicht

Auf dieser Seite werden vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) für Spanner beschrieben. Weitere Informationen zu CMEK und deren Aktivierung finden Sie in der Cloud KMS-Dokumentation.

Spanner verschlüsselt inaktive Kundendaten standardmäßig. Die Verschlüsselung wird von Spanner durchgeführt. Zusätzliche Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option wird Google-Standardverschlüsselung genannt.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Spanner 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 im Blick behalten, Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen und zu verwalten, das die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten enthält, können Sie diese auch über Cloud KMS steuern und verwalten.

Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Spanner-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).

Informationen zum Schutz Ihrer Spanner-Ressourcen mit manuell erstellten CMEKs finden Sie unter Datenbank mit CMEK schützen.

CMEK mit Cloud KMS Autokey

Sie können CMEKs manuell erstellen, um Ihre Spanner-Ressourcen zu schützen, oder dazu Cloud KMS Autokey verwenden. Mit Autokey werden Schlüsselringe und Schlüssel bei der Ressourcenerstellung in Spanner auf Anfrage generiert. Dienst-Agenten, die die Schlüssel für Verschlüsselungs- und Entschlüsselungsvorgänge verwenden, werden erstellt, falls sie noch nicht vorhanden sind, und erhalten dann die erforderlichen IAM-Rollen (Identity and Access Management). Weitere Informationen finden Sie unter Übersicht: Autokey.

Spanner ist nur dann mit Cloud KMS Autokey kompatibel, wenn Ressourcen mit Terraform oder der REST API erstellt werden. Sie können mit Cloud KMS Autokey keine mehreren regionalen (Single-Region-)Cloud KMS-Schlüssel für eine Spanner-Datenbank erstellen.

Wenn Sie von Cloud KMS Autokey erstellte CMEKs zum Schutz Ihrer Spanner-Ressourcen verwenden möchten, folgen Sie dem Beispiel in der Anleitung für Secret Manager unter Autokey mit Secret Manager-Ressourcen verwenden.

Features

  • Datenzugriffssteuerung:Administratoren können den Schlüssel, der zum Schutz inaktiver Daten in Spanner verwendet wird, rotieren, den Zugriff darauf verwalten und den zum Schutz inaktiver Daten in Spanner verwendeten Schlüssel deaktivieren oder löschen.
  • Nachvollziehbarkeit: Wenn Sie in Ihrem Projekt das Audit-Logging für die Cloud KMS API aktivieren, werden alle Aktionen am Schlüssel, einschließlich der von Spanner ausgeführten Aktionen protokolliert und in Cloud Logging angezeigt. Cloud EKM-Schlüssel unterstützen Key Access Justification, wodurch allen Schlüsselanfragen ein Begründungsfeld hinzugefügt wird. Mit ausgewählten Partnern für die externe Schlüsselverwaltung können Sie diese Anfragen basierend auf der Begründung automatisch genehmigen oder ablehnen.
  • Leistung:Es gibt keine Änderungen an der Leistung von Cloud Spanner oder dem Service Level Agreement durch die Verwendung von CMEK.
  • Unterstützung mehrerer regionaler Schlüssel:Sie können mehrere regionale (Einzelregion-)Cloud KMS-Schlüssel erstellen, um eine Datenbank in einer benutzerdefinierten, biregionalen oder multiregionalen Spanner-Instanzkonfiguration zu schützen.

Preise

Spanner berechnet CMEK-fähige Datenbanken wie jede andere Datenbank. Für die Aktivierung von CMEK fallen keine zusätzlichen Spanner-Kosten an. Weitere Informationen finden Sie unter Spanner-Preise.

Ihnen werden von Cloud KMS sowohl die Kosten für den Schlüssel als auch alle kryptografischen Vorgänge für diesen Schlüssel in Rechnung gestellt, wenn Spanner den Schlüssel für die Verschlüsselung/Entschlüsselung verwendet. Wir erwarten, dass diese Kosten auf Basis der erwarteten Anzahl kryptografischer Vorgänge, die von Spanner generiert werden, minimal sind. Weitere Informationen finden Sie unter Cloud KMS – Preise.

Mit CMEK geschützte Inhalte

In einer CMEK-fähigen Datenbank verwendet Spanner Ihre Cloud KMS-Schlüssel, um inaktive Daten zu schützen. Dazu gehören Daten in einer Datenbank, die auf einem Laufwerk oder Flash gespeichert werden.

Es gelten einige Ausnahmen. Die folgenden Datentypen werden durch die standardmäßige Verschlüsselung inaktiver Daten von Google und nicht durch den CMEK-Schlüssel geschützt:

  • Eine Teilmenge von Zeilenschlüsseln, die Bereichsgrenzen markieren
  • Debugging von Daten, einschließlich Kern-Dumps und Betriebslogs
  • Daten bei der Übertragung oder im Speicher
  • Datenbankmetadaten

In Spanner gibt es drei Verschlüsselungsebenen. Inaktive Daten werden zur Speicherung in Unterdateiblöcke zerlegt. Jeder Block wird auf Speicherebene mit einem individuellen Verschlüsselungsschlüssel verschlüsselt. Zum Verschlüsseln von Daten in einem Block verwendete Schlüssel werden als Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) bezeichnet. Aufgrund der hohen Anzahl von Schlüsseln bei Google und der Notwendigkeit einer geringen Latenz und hohen Verfügbarkeit werden diese Schlüssel in der Nähe der Daten gespeichert, die sie verschlüsseln. Die DEKs werden mit einem Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK) verschlüsselt (bzw. „verpackt“). Schließlich wird jeder KEK mit Ihrem CMEK verschlüsselt.

Wenn Sie den CMEK-Schlüssel rotieren, verschlüsselt Spanner nur die zwischengeschalteten KEKs mit der neuesten primären Version des CMEK-Schlüssels. Nach Abschluss der erneuten Verschlüsselung wird der Zugriff auf die Datenbank nicht mehr deaktiviert, wenn Sie die früheren Versionen des CMEK-Schlüssels deaktivieren oder löschen. Sie können auch die Schlüsselversionen aufrufen, die zum Schutz einer Datenbank verwendet werden.

Mit CMEK

Diagramm: Verschlüsselung mit einem vom Kunden verwalteten Verschlüsselungsschlüssel

Ohne CMEK

Diagramm zur Verschlüsselung mit einem Google-owned and Google-managed encryption key

CMEK aktivieren

Wenn Sie CMEK für Spanner-Datenbanken verwenden möchten, müssen Sie eine neue Datenbank erstellen und den Cloud KMS-Schlüssel zum Zeitpunkt der Datenbankerstellung angeben. Spanner kann in Ihrem Namen auf den Schlüssel zugreifen, nachdem Sie einem von Google verwalteten Spanner-Dienstkonto die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler (roles/cloudkms.cryptoKeyEncrypterDecrypter) zugewiesen haben. Eine ausführliche Anleitung finden Sie unter Datenbank mit CMEK schützen.

Die Datenzugriffs-APIs von Spanner, die zum Beispiel für die Verwaltung von Sitzungen und die Ausführung von Datentransaktionen verwendet werden, sind sowohl für CMEK als auch für Google-owned and Google-managed encryption keysidentisch. Anwendungen müssen beim Lesen oder Schreiben von Daten keine Schlüssel oder Verschlüsselungskonfigurationen angeben. Die gesamte Verschlüsselung wird vom Dienst ausgeführt.

Schlüssel verwalten

Vorgänge zur Schlüsselverwaltung werden mit Cloud KMS ausgeführt. Spanner kann Schlüsseländerungen erst erkennen oder darauf reagieren, wenn sie von Cloud KMS weitergegeben wurden. Einige Vorgänge, z. B. das Deaktivieren oder Löschen eines Schlüssels, können bis zu drei Stunden dauern. Änderungen an Berechtigungen werden normalerweise viel schneller übernommen.

Nachdem die Datenbank erstellt wurde, ruft Spanner etwa alle fünf Minuten Cloud KMS auf, um sicherzustellen, dass der Schlüssel noch gültig ist.

Wenn Spanner erkennt, dass Ihr Cloud KMS-Schlüssel deaktiviert oder gelöscht wurde, beginnt der Vorgang, damit Ihre Datenbank nicht mehr zugänglich ist, sofort. Alle nachfolgenden Aufrufe der Datenbank, einschließlich Sitzungen, Lese- und Schreibvorgänge, geben den Fehler FAILED_PRECONDITION zurück: KMS key required by the Spanner resource is not accessible. Wenn Spanner-Aufrufe an Cloud KMS erkennen, dass ein zuvor deaktivierter Schlüssel wieder aktiviert wurde, stellt Cloud KMS den Zugriff auf die Spanner-Datenbank automatisch wieder her.

Wenn eine Datenbank durch mehrere regionale Schlüssel geschützt ist und alle Schlüssel deaktiviert oder gelöscht werden, beginnt Spanner sofort, den Zugriff auf Ihre Datenbank zu sperren. Wenn Spanner erkennt, dass nur eine Teilmenge der Schlüssel der Datenbank deaktiviert oder gelöscht wurde, wird die Datenbank innerhalb von 12 Stunden deaktiviert. Es wird dringend davon abgeraten, nur eine Teilmenge von Schlüsseln in einer CMEK-fähigen Datenbank zu deaktivieren oder zu löschen. Dies kann zu unvorhersehbarem Verhalten führen. Um dies zu verhindern, können Sie den Messwert für Spanner-CMEK-Schlüssel (instance/replica/cmek/total_keys) verwenden, um eine Benachrichtigung auszulösen, wenn eine Teilmenge von Schlüsseln deaktiviert oder gelöscht wird. Weitere Informationen finden Sie unter Benachrichtigung für das Deaktivieren einer Teilmenge von CMEK erstellen.

Benachrichtigung für das Deaktivieren einer Teilmenge von CMEK erstellen

Mit der Messwert Spanner CMEK Keys (/instance/replica/cmek/total_keys) können Sie einen Alarm auslösen, wenn eine Teilmenge von CMEK-Schlüsseln deaktiviert oder zerstört wird. So erstellen Sie diese Benachrichtigungsrichtlinie:

Einstellungen für CMEK-Benachrichtigungsrichtlinien.

Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcen die Option Spanner-Instanz aus.
Wählen Sie im Menü Messwertkategorien die Option Instanz aus.
Wählen Sie im Menü Messwerte die Option CMEK-Schlüssel aus.

(Der Messwerttyp ist spanner.googleapis.com/instance/replica/cmek/total_keys.)
Filter instance_id = INSTANCE_ID
is_key_revoked = TRUE
Über Zeitreihen hinweg
Zeitreihen gruppieren nach
database
Über Zeitreihen hinweg
Zeitreihenaggregation
sum
Rollierendes Zeitfenster 10 m
Funktion für rollierendes Zeitfenster mean
Benachrichtigungstrigger konfigurieren
Feld

Wert
Bedingungstyp Threshold
Benachrichtigungstrigger Any time series violates
Grenzwertposition Above threshold
Grenzwert 0
Zeitfenster noch einmal testen 1 hr
Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcen die Option Spanner-Instanz aus.
Wählen Sie im Menü Messwertkategorien die Option Instanz aus.
Wählen Sie im Menü Messwerte die Option CMEK-Schlüssel aus.

(Der Messwerttyp ist spanner.googleapis.com/instance/replica/cmek/total_keys.)
Filter instance_id = INSTANCE_ID
is_key_revoked = FALSE
Über Zeitreihen hinweg
Zeitreihen gruppieren nach
database
Über Zeitreihen hinweg
Zeitreihenaggregation
sum
Rollierendes Zeitfenster 10 m
Funktion für rollierendes Zeitfenster mean
Benachrichtigungstrigger konfigurieren
Feld

Wert
Bedingungstyp Threshold
Benachrichtigungstrigger Any time series violates
Grenzwertposition Above threshold
Grenzwert 0
Zeitfenster noch einmal testen 1 hr
Benachrichtigungstrigger konfigurieren
Feld

Wert
Trigger mit mehreren Bedingungen All conditions are met

Wenn Spanner nach dem Erstellen der Benachrichtigung erkennt, dass eine Teilmenge von CMEK deaktiviert wurde, wird auf der Seite Richtliniendetails der Benachrichtigung unter der Tabelle Vorfälle ein Zusammenfassungselement für den Vorfall angezeigt. Sie können auch optionale Benachrichtigungskanäle einrichten. Weitere Informationen finden Sie unter Benachrichtigungskanäle erstellen und verwalten.

Umgang mit einem nicht verfügbaren Schlüsselstatus

In seltenen Fällen, z. B. wenn Cloud KMS nicht verfügbar ist, kann Spanner den Status Ihres Schlüssels nicht aus Cloud KMS abrufen.

Wenn Ihre Spanner-Datenbank durch einen Schlüssel geschützt ist, der zu dem Zeitpunkt aktiviert ist, zu dem Spanner zum ersten Mal nicht mit Cloud KMS kommunizieren kann, unterstützt Spanner weiterhin Datenbankvorgänge nach dem Best-Effort-Prinzip für einen Zeitraum von bis zu einer Stunde, um die Auswirkungen eines solchen Vorfalls auf Ihre Arbeitslast zu minimieren. Wenn Spanner nach einer Stunde immer noch keine Verbindung zu Cloud KMS herstellen kann, schaltet Spanner als Sicherheitsmaßnahme die Datenbank offline. Die Daten in Ihrer Spanner-Datenbank bleiben so lange unzugänglich, bis die Datenbank wieder eine Verbindung zu Cloud KMS herstellen kann. Cloud KMS antwortet daraufhin, dass der Schlüssel aktiv ist.

Wenn Ihre Spanner-Datenbank dagegen durch einen Schlüssel geschützt ist, der zu dem Zeitpunkt deaktiviert ist, zu dem Spanner zum ersten Mal nicht mit Cloud KMS kommunizieren kann, bleibt Ihre Datenbank unzugänglich, bis sie sich wieder mit Cloud KMS verbinden kann und Sie Ihren Schlüssel wieder aktiviert haben.

Wenn Sie mehrere regionale Schlüssel zum Schutz einer Spanner-Datenbank verwenden, sind nur die Replikate betroffen, die durch einen Schlüssel geschützt sind, der sich in der nicht verfügbaren regionalen Cloud KMS-Instanz befindet.

Überlegungen zu externen Schlüsseln

Wenn Sie einen Cloud EKM-Schlüssel verwenden, hat Google keine Kontrolle über die Verfügbarkeit Ihres extern verwalteten Schlüssels im Partnersystem für die externe Schlüsselverwaltung.

Wenn ein extern verwalteter Schlüssel nicht verfügbar ist, unterstützt Spanner weiterhin vollständige Datenbankvorgänge auf Best-Effort-Basis für bis zu einer Stunde. Wenn Spanner nach einer Stunde immer noch keine Verbindung zu Cloud KMS herstellen kann, schaltet Spanner als Sicherheitsmaßnahme die Datenbank offline. Aufrufe an die Datenbank schlagen mit dem Fehler FAILED_PRECONDITION fehl: External key error: Could not find a key resource at the key URI.

Wenn Sie mehrere Cloud EKM-Schlüssel zum Schutz Ihrer Spanner-Datenbank verwenden, sind nur die Replikate betroffen, die durch den nicht verfügbaren Schlüssel geschützt sind.

Weitere Überlegungen zur Verwendung externer Schlüssel finden Sie in der Dokumentation zu Cloud External Key Manager.

Sichern und wiederherstellen

Sie können CMEK oder Google-owned and Google-managed encryption keys verwenden, um Spanner-Sicherungen zu schützen. Standardmäßig verwendet eine Sicherung dieselbe Verschlüsselungskonfiguration wie ihre Datenbank. Sie können dieses Verhalten jedoch überschreiben, indem Sie beim Erstellen der Sicherung eine andere Verschlüsselungskonfiguration angeben. Wenn die Sicherung CMEK-fähig ist, wird sie zum Zeitpunkt der Sicherung mit der primären Version des KMS-Schlüssels verschlüsselt. Nachdem die Sicherung erstellt wurde, können Schlüssel und Schlüsselversion nicht mehr geändert werden, auch nicht, wenn der KMS-Schlüssel rotiert wird. Weitere Informationen finden Sie unter Datenbank sichern.

Wenn Sie eine Datenbank aus einer Sicherung wiederherstellen, verwendet die wiederhergestellte Datenbank standardmäßig dieselbe Verschlüsselungskonfiguration wie die Sicherung. Dieses Verhalten lässt sich durch Angabe einer anderen Verschlüsselungskonfiguration beim Wiederherstellen der Datenbank überschreiben. Zum Wiederherstellen einer CMEK-fähigen Sicherung müssen sowohl der Schlüssel als auch die Schlüsselversion verfügbar sein, die zum Verschlüsseln der Sicherung verwendet wurde. Weitere Informationen finden Sie unter Aus einer Sicherung wiederherstellen.

Sie können Sicherungsvorgänge wie Erstellen, Kopieren und Wiederherstellen für eine Datenbank ausführen, die mit mehreren regionalen Schlüsseln verschlüsselt ist.

Alle Sicherungen, die durch Sicherungszeitpläne erstellt werden, können durch CMEK oder Google-owned and Google-managed encryption keysgeschützt werden. Inkrementelle Sicherungszeitpläne können jedoch nur mit Google-owned and Google-managed encryption keysverschlüsselt werden.

Logging

Sie können die Anfragen, die Spanner 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.

CMEK in Ihrer Organisation erzwingen oder einschränken

Sie können organisationsweite Richtlinien für die Verwendung von CMEK-Schutz in verschiedenen Google Cloud -Produkten, einschließlich Spanner, festlegen. Mit diesen Richtlinien können Sie:

  • Festlegen, dass für neue Spanner-Datenbanken, die von Ihrer Organisation erstellt werden, CMEK-Schutz verwendet werden muss.

  • Einschränken, welche Cloud KMS-Schlüssel Ihrer Organisation für den CMEK-Schutz verfügbar sind.

Weitere Informationen finden Sie unter CMEK-Organisationsrichtlinien.

Nächste Schritte