Auf dieser Seite werden vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Spanner beschrieben. Weitere Informationen zu CMEK und deren Aktivierung finden Sie in der Cloud KMS-Dokumentation.
In Spanner werden inaktive Kundeninhalte standardmäßig verschlüsselt. 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 den 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 regionalen (einzelne 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, 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: Die Verwendung von CMEK hat keine Auswirkungen auf die Leistung von Spanner oder das Service Level Agreement.
- Unterstützung mehrerer regionaler Schlüssel:Sie können mehrere regionale (einzelne Region) Cloud KMS-Schlüssel erstellen, um eine Datenbank in einer benutzerdefinierten, biregionalen oder multiregionalen Instanzkonfiguration von Spanner 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 gehen davon aus, 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
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 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 nicht erkennen oder darauf reagieren, bis 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 den Berechtigungen eines Schlüssels erfolgen normalerweise schneller.
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 außerdem durch mehrere regionale Schlüssel geschützt ist und alle Schlüssel deaktiviert oder gelöscht werden, beginnt Spanner sofort, die Datenbank unzugänglich zu machen. Wenn Spanner erkennt, dass nur ein Teil der Schlüssel der Datenbank deaktiviert oder gelöscht wurde, wird die Datenbank innerhalb von 12 Stunden nach und nach deaktiviert. Es wird dringend davon abgeraten, nur einen Teil der Schlüssel in einer CMEK-fähigen Datenbank zu deaktivieren oder zu löschen. Dies kann zu unerwartetem Verhalten führen. Um dies zu verhindern, können Sie mit dem Messwert „Spanner CMEK-Schlüssel“ (instance/replica/cmek/total_keys
) eine Benachrichtigung auslösen, wenn eine Teilmenge von Schlüsseln deaktiviert oder gelöscht wird. Weitere Informationen finden Sie unter Benachrichtigung zum Deaktivieren eines Teils von CMEK erstellen.
Benachrichtigung für das Deaktivieren eines Teils von CMEK erstellen
Mit dem Messwert Spanner CMEK-Schlüssel (/instance/replica/cmek/total_keys
) können Sie eine Benachrichtigung auslösen, wenn ein Teil der CMEK-Schlüssel deaktiviert oder gelöscht wird. Maximieren 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_ID is_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 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 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 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 ein Teil von CMEK deaktiviert wurde, wird auf der Seite Richtliniendetails der Benachrichtigung in der Tabelle Vorfälle ein Vorfall zusammengefasst. 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 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, stellt Spanner als Schutzmaß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.
Umgekehrt, wenn Ihre Spanner-Datenbank 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 davon betroffen, die durch einen Schlüssel geschützt sind, der sich in der nicht verfügbaren regionalen Cloud KMS-Umgebung 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 mithilfe einer im Cache gespeicherten Version des Schlüssels bis zu einer Stunde. Wenn Spanner nach einer Stunde immer noch keine Verbindung zu Cloud KMS herstellen kann, stellt Spanner als Schutzmaß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 Informationen 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 mit Sicherungszeitplänen erstellt wurden, können durch CMEK oder Google-owned and Google-managed encryption keysgeschützt werden. Zeitpläne für inkrementelle Sicherungen können jedoch nur mit Google-owned and Google-managed encryption keysverschlüsselt werden.
Logging
Sie können die Anfragen prüfen, die Spanner in Ihrem Namen an Cloud KMS sendet, in Cloud Logging, wenn Sie für Ihr Projekt die Audit-Logging-Funktion aktiviert haben. Diese Cloud KMS-Logeinträge sind in Cloud Logging sichtbar.
CMEK innerhalb Ihrer Organisation erzwingen oder einschränken
Sie können unternehmensweite Richtlinien für die Verwendung des CMEK-Schutzes für verschiedene Google Cloud Produkte festlegen, einschließlich Spanner. Mit diesen Richtlinien können Sie Folgendes tun:
Erforderlich machen, dass neue von Ihrer Organisation erstellte Spanner-Datenbanken CMEK-Schutz verwenden.
Begrenzen, welche Cloud KMS-Schlüssel Ihrer Organisation für den CMEK-Schutz verfügbar sind.
Weitere Informationen finden Sie unter CMEK-Organisationsrichtlinien.