Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK)

Standardmäßig sind alle inaktiven Daten in Google Cloud, einschließlich der Daten in Cloud Spanner, mit der von Google verwalteten Standardverschlüsselung geschützt. Diese Standardverschlüsselung wird von Google Cloud vorgenommen und verwaltet. Zusätzliche Maßnahmen Ihrerseits sind nicht erforderlich.

Wenn Sie bestimmte Compliance- oder behördlichen Anforderungen in Bezug auf die Schlüssel zum Schutz Ihrer Daten haben, können Sie für Cloud Spanner vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden. Anstatt die Verschlüsselungsschlüssel zum Schutz Ihrer Daten von Google verwalten zu lassen, wird Ihre Cloud Spanner-Datenbank mit einem Schlüssel geschützt, den Sie in Cloud Key Management Service (KMS) steuern und verwalten. Dies kann ein symmetrischer Schlüssel, ein Cloud HSM-Schlüssel oder ein Cloud External Key Manager-Schlüssel sein.

Auf dieser Seite wird CMEK für Cloud Spanner beschrieben. Weitere Informationen zu CMEK und deren Aktivierung finden Sie in der Cloud KMS-Dokumentation.

Features

  • Datenzugriffssteuerung: Administratoren können den Schlüssel, der zum Schutz inaktiver Daten in Cloud 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 Cloud 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 Cloud Spanner-Leistung oder dem Service Level Agreement.

Preise

Cloud Spanner berechnet CMEK-fähige Datenbanken wie jede andere Datenbank. Es fallen keine zusätzlichen Cloud Spanner-Kosten an. Weitere Informationen finden Sie unter Cloud 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 Cloud 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 Cloud 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 Cloud Spanner Ihren 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 Cloud 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 vom Kunden verwalteten Verschlüsselungsschlüssel verschlüsselt.

Wenn Sie den CMEK-Schlüssel rotieren, verschlüsselt Cloud 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 alten 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: Verschlüsselung mit einem von Google verwalteten Verschlüsselungsschlüssel”

CMEK aktivieren

Wenn Sie CMEK für Cloud Spanner-Datenbanken verwenden möchten, müssen Sie eine neue Datenbank erstellen und den Cloud KMS-Schlüssel zum Zeitpunkt der Datenbankerstellung angeben.

Cloud Spanner kann in Ihrem Namen auf den Schlüssel zugreifen, nachdem Sie einem von Google verwalteten Cloud Spanner-Dienstkonto die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler (roles/cloudkms.cryptoKeyEncrypterDecrypter) zugewiesen haben.

Eine ausführliche Anleitung finden Sie unter CMEK verwenden.

Die Datenzugriffs-APIs von Cloud Spanner, die zum Beispiel für die Verwaltung von Sitzungen und die Ausführung von Datentransaktionen verwendet werden, sind sowohl für CMEK-fähige als auch von Google verwaltete Datenbanken identisch. 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üsselverwaltung

Vorgänge zur Schlüsselverwaltung werden mit Cloud KMS ausgeführt. Cloud Spanner kann Schlüsseländerungen nicht erkennen oder darauf reagieren, bis 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 Cloud Spanner etwa alle 5 Minuten Cloud KMS auf, um sicherzustellen, dass der Schlüssel noch gültig ist.

Wenn Cloud 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 Cloud Spanner-Aufrufe an Cloud Spanner erkennen, dass ein zuvor deaktivierter Schlüssel wieder aktiviert wurde, stellt Cloud KMS den Zugriff auf die Cloud Spanner-Datenbank automatisch wieder her.

Umgang mit einem nicht verfügbaren Schlüsselstatus

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

Wenn Ihre Cloud Spanner-Datenbank durch einen Schlüssel geschützt ist, der zu dem Zeitpunkt aktiviert ist, zu dem Cloud Spanner zum ersten Mal nicht mit Cloud KMS kommunizieren kann, unterstützt Cloud 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 Cloud Spanner nach einer Stunde immer noch keine Verbindung zu Cloud KMS herstellen kann, schaltet Cloud Spanner als Sicherheitsmaßnahme die Datenbank offline. Die Daten in Ihrer Cloud 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.

Umgekehrt, wenn Ihre Cloud Spanner-Datenbank durch einen Schlüssel geschützt ist, der zu dem Zeitpunkt deaktiviert ist, zu dem Cloud 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.

Ü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 Cloud Spanner weiterhin vollständige Datenbankvorgänge mithilfe einer im Cache gespeicherten Version des Schlüssels bis zu einer Stunde.

Wenn Cloud Spanner nach einer Stunde immer noch keine Verbindung zu Cloud KMS herstellen kann, schaltet Cloud 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.

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

Sichern und wiederherstellen

Cloud Spanner-Sicherungen wie Datenbanken können durch CMEK oder von Google verwaltete Verschlüsselung geschützt werden. 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.

Logging

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