Auf dieser Seite werden kundenverwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) für Spanner beschrieben. Weitere allgemeine Informationen zu CMEK, einschließlich ihrer Aktivierung, finden Sie in der Dokumentation zum Cloud Key Management Service.
Standardmäßig verschlüsselt Spanner ruhende Kundeninhalte. Spanner übernimmt die Verschlüsselung für Sie, ohne dass Sie weitere Maßnahmen ergreifen müssen. 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 Spanner verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutz level, 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 Spanner-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselung soptionen finden Sie unter Kundenverwaltete 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üsselbunde und Schlüssel bei Bedarf generiert, um die Ressourcenerstellung in Spanner zu unterstützen. Dienst-Agents, 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 Cloud KMS Autokey nicht verwenden, um mehrere regionale (einzelregionale) Cloud KMS-Schlüssel für eine Spanner-Datenbank zu 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 von Daten im Ruhezustand in Spanner verwendet wird, rotieren, den Zugriff darauf verwalten, deaktivieren oder löschen.
- Prüfbarkeit: 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:Durch die Verwendung von CMEK gibt es keine Änderungen an der Spanner Leistung oder dem Service Level Agreement .
- Unterstützung für mehrere regionale Schlüssel:Sie können mehrere regionale (einzelregionale) Cloud KMS-Schlüssel erstellen, um eine Datenbank in einer Spanner benutzerdefinierten, dual-regionalen oder multiregionalen 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 Daten im Ruhezustand 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 ruhender 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. Daten im Ruhezustand 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 älteren 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

Ohne CMEK

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 die Google-Standardverschlüsselung identisch Google-owned and Google-managed encryption keys. 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 an die Datenbank, einschließlich Sitzungen, Lese-
und Schreibvorgänge, geben den FAILED_PRECONDITION Fehler zurück: KMS key required by the
Spanner resource is not accessible. Wenn Spanner's
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 außerdem durch mehrere regionale Schlüssel geschützt ist und alle Schlüssel deaktiviert oder gelöscht werden, beginnt Spanner sofort, den Zugriff auf die 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 der Schlüssel in einer CMEK-fähigen Datenbank zu deaktivieren oder zu löschen, da dies zu einem unvorhersehbaren Verhalten führen kann. Um dies zu verhindern, können Sie mit dem
Spanner-Messwert für CMEK-Schlüssel
(instance/replica/cmek/total_keys) eine Benachrichtigung auslösen, wenn eine Teilmenge der Schlüssel
deaktiviert oder gelöscht wird. Weitere Informationen finden Sie unter
Benachrichtigung für das Deaktivieren einer Teilmenge von CMEK-Schlüsseln erstellen.
Benachrichtigung für das Deaktivieren einer Teilmenge von CMEK-Schlüsseln erstellen
Sie können mit dem
Spanner-Messwert für CMEK-Schlüssel
(/instance/replica/cmek/total_keys) eine Benachrichtigung auslösen, wenn eine Teilmenge von CMEK
deaktiviert oder gelöscht wird. Erweitern Sie die folgenden Schritte und
Einstellungen, um diese Benachrichtigungsrichtlinie zu erstellen:
Einstellungen für die CMEK-Benachrichtigungsrichtlinie
| 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_IDis_key_revoked = TRUE |
| Über Zeitreihen Zeitreihen gruppieren nach |
database |
| Über Zeitreihen 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 für erneute Prüfung | 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_IDis_key_revoked = FALSE |
| Über Zeitreihen Zeitreihen gruppieren nach |
database |
| Über Zeitreihen 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 für erneute Prüfung | 1 hr |
| Benachrichtigungstrigger konfigurieren Feld |
Wert |
|---|---|
| Trigger mit mehreren Bedingungen | All conditions are met |
Wenn Sie die Benachrichtigung erstellt haben und Spanner erkennt, dass eine Teilmenge von CMEK-Schlüsseln deaktiviert wurde, wird auf der Seite Richtliniendetails der Benachrichtigung unter der Tabelle Vorfälle ein Element mit der Vorfallzusammenfassung 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 vollständige Datenbankvorgänge auf einer Best-Effort-Basis 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 werden erst zugänglich, wenn die Datenbank wieder mit Cloud KMS verbunden werden kann und Cloud KMS antwortet, 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 im nicht verfügbaren regionalen Cloud KMS 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 einer Best-Effort-Basis für bis zu eine 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
FAILED_PRECONDITION Fehler 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 Sicherungenzu 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 wurden, können durch CMEK oder Google-owned and Google-managed encryption keysgeschützt werden.
Geopartitionierung
Sie können CMEK oder Google-owned and Google-managed encryption keys die Google-Standardverschlüsselung verwenden, um Spanner Datenbanken zu schützen, die die Geopartitionierungverwenden. Bei der Geopartitionierung müssen Sie für jeden Standort des Instanzreplikats einen regionalen Cloud KMS-Schlüssel verwenden, einschließlich der Standorte in der Instanzpartitionskonfiguration. Multiregionale Schlüssel werden nicht unterstützt. Jeder regionale Cloud KMS-Schlüssel muss sich in derselben Region wie der entsprechende Standort des Spanner-Instanzreplikats oder der Instanzpartition befinden.
Wenn sich Ihre Spanner-Datenbank beispielsweise in der multiregionalen Instanzkonfiguration nam3 befindet und Instanzpartitionen in europe-west1 und europe-west2 vorhanden sind, müssen Sie Cloud KMS-Schlüssel in den folgenden Regionen erstellen:
us-east4(Teil vonnam3)us-east1(Teil vonnam3)us-central1(Teil vonnam3)europe-west1(Standort der Instanzpartition)europe-west2(Standort der Instanzpartition)
Weitere Informationen finden Sie unter Datenbank mit CMEK schützen.
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 erforderlich machen oder einschränken
Sie können organisationsweite Richtlinien für die Verwendung von CMEK-Schutz in verschiedenen Google Cloud Produkten festlegen, einschließlich Spanner. Mit diesen Richtlinien können Sie Folgendes tun:
Festlegen, dass neue Spanner-Datenbanken, die von Ihrer Organisation erstellt wurden, CMEK-Schutz verwenden müssen.
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
- Informationen zum Schutz einer Datenbank mit CMEK Informationen zum Schutz einer Datenbank mit CMEK.