Informationen zu vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-managed Encryption Keys, CMEK)

Auf dieser Seite wird beschrieben, wie vom Kunden verwaltete Verschlüsselungsschlüssel mit Cloud SQL funktionieren. Wie Sie dieses Feature sofort nutzen können, erfahren Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden.

Ist CMEK etwas für mich?

Vom Kunden verwaltete Verschlüsselungsschlüssel sind für Organisationen mit vertraulichen oder regulierten Daten gedacht, für die eigene Verschlüsselungsschlüssel verwaltet werden müssen.

Von Google und vom Kunden verwaltete Verschlüsselung im Vergleich

Mit dem CMEK-Feature für vom Kunden verwaltete Verschlüsselungsschlüssel können Sie für inaktive Daten in Cloud SQL Ihre eigenen kryptografischen Schlüssel verwenden. Nachdem Sie vom Kunden verwaltete Verschlüsselungsschlüssel hinzugefügt haben, verwendet Cloud SQL bei jedem API-Aufruf Ihren Schlüssel für den Datenzugriff.

Cloud SQL verwendet von Google verwaltete Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) und Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs), um Cloud SQL zu verschlüsseln. Es gibt zwei Verschlüsselungsebenen:

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

Die Cloud SQL-Instanz speichert den verschlüsselten DEK zusammen mit den verschlüsselten Daten im nichtflüchtigen Speicher und Google verwaltet den Google-KEK. Mit vom Kunden verwalteten Verschlüsselungsschlüsseln erstellen Sie einen Schlüssel, der den Google-KEK umschließt. Mit vom Kunden verwalteten Verschlüsselungsschlüsseln können Sie den KEK erstellen, widerrufen und löschen.

Vom Kunden verwaltete Verschlüsselungsschlüssel, darunter Software, Hardware und externe Schlüssel, werden alle über die Cloud Key Management Service API verwaltet.

Die folgenden Diagramme zeigen, wie die Verschlüsselung inaktiver Daten in einer Cloud SQL-Instanz funktioniert, wenn entweder die standardmäßige Google-Verschlüsselung oder vom Kunden verwaltete Verschlüsselungsschlüssel verwendet werden.

Ohne CMEK

Die Daten werden auf Google hochgeladen, dann in Blöcke aufgeteilt und jeder Block wird mit einem eigenen Datenverschlüsselungsschlüssel verschlüsselt. Datenverschlüsselungsschlüssel werden mit einem Schlüsselverschlüsselungsschlüssel verpackt. Bei der standardmäßigen Google-Verschlüsselung wird der Schlüsselverschlüsselungsschlüssel aus dem internen Schlüsselspeicher von Google abgerufen. Verschlüsselte Blöcke und verpackte Verschlüsselungsschlüssel werden über die Speicherinfrastruktur von Google verteilt.

Mit CMEK

Die Daten werden auf Google hochgeladen, dann in Blöcke aufgeteilt und jeder Block wird mit einem eigenen Datenverschlüsselungsschlüssel verschlüsselt. Datenverschlüsselungsschlüssel werden mit einem Schlüsselverschlüsselungsschlüssel verpackt. Bei CMEK unter Verwendung von Cloud KMS wird der Schlüsselverschlüsselungsschlüssel vom Cloud KMS abgerufen. Verschlüsselte Blöcke und verpackte Verschlüsselungsschlüssel werden über die Speicherinfrastruktur von Google verteilt.

Beim Entschlüsseln von Daten, die mit vom Kunden verwalteten Verschlüsselungsschlüsseln verpackt sind, verwendet Cloud SQL den KEK, um den DEK zu entschlüsseln, und den unverschlüsselten DEK, um inaktive Daten zu entschlüsseln.

Mit DEK verschlüsselter und mit verpacktem DEK gespeicherter Datenblock. Eine Anfrage zum Entpacken des DEK wird an den KMS-Speicher gesendet, in dem der nicht exportierbare KEK gespeichert wird. Der KMS-Speicher gibt den entpackten DEK zurück.

Wann interagiert Cloud SQL mit CMEK-Schlüsseln?

Vorgang Hinweise
Instanzerstellung Während der Erstellung einer Instanz konfigurieren Sie die Instanz für die Verwendung von vom Kunden verwalteten Verschlüsselungsschlüsseln.
Sicherung erstellen Bei Sicherungen einer CMEK-fähigen Instanz verschlüsseln vom Kunden verwaltete Verschlüsselungsschlüssel Nutzerdaten wie Nutzerabfragen und -antworten. Sicherungen einer CMEK-fähigen Instanz übernehmen die Verschlüsselung mit demselben Cloud KMS-Schlüssel wie die Quellinstanz.
Instanzwiederherstellung Während der Wiederherstellung einer CMEK-fähigen Instanz greift Cloud SQL mit dem Schlüssel auf Daten in der wiederherzustellenden Sicherungsinstanz zu. Beim Wiederherstellen in einer anderen Instanz kann die Zielinstanz einen anderen Schlüssel für die Verschlüsselung verwenden.
Replikaterstellung Wenn Sie ein Lesereplikat einer Cloud SQL-Instanz in derselben Region erstellen, wird der CMEK von der übergeordneten Instanz übernommen. Wenn Sie ein Lesereplikat in einer anderen Region erstellen, müssen Sie einen CMEK aus der anderen Region auswählen. Jede Region nutzt einen eigenen Schlüsselsatz.
Klonerstellung Klone von einer CMEK-fähigen Instanz übernehmen die CMEK-Verschlüsselung mit demselben Cloud KMS-Schlüssel wie die Quellinstanz.
Instanzaktualisierung Bei Aktualisierungen einer CMEK-fähigen Instanz prüft Cloud SQL den CMEK-Schlüssel.

An welchen Standorten werden CMEK-fähige Cloud SQL-Instanzen unterstützt?

CMEK sind an allen Cloud SQL-Instanzstandorten verfügbar.

Informationen zu Dienstkonten

Wenn für Ihre Cloud SQL-Instanzen CMEK aktiviert ist, müssen Sie den Schlüsselzugriff von Cloud KMS über ein Dienstkonto anfordern.

Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel für ein Projekt verwenden möchten, müssen Sie ein Dienstkonto haben und dem vom Kunden verwalteten Verschlüsselungsschlüssel Zugriff auf das Dienstkonto gewähren. Das Dienstkonto muss im Projekt vorhanden sein. Das Dienstkonto ist in allen Regionen sichtbar.

Bei Erstellung der Instanz über die Console, erstellt Cloud SQL automatisch das Dienstkonto, wenn Sie zum ersten Mal die Option Vom Kunden verwalteter Schlüssel auswählen (wenn noch kein Dienstkonto vorhanden ist). Wenn Cloud SQL das Dienstkonto automatisch erstellt, benötigen Sie keine besonderen Berechtigungen für Ihr Nutzerkonto.

Informationen zu Schlüsseln

In Cloud KMS müssen Sie einen Schlüsselbund mit einem kryptografischen Schlüssel erstellen, der für einen Standort festgelegt ist. Wenn Sie eine neue Cloud SQL-Instanz erstellen, wählen Sie diesen Schlüssel aus, um die Instanz zu verschlüsseln.

Sie müssen die Schlüssel-ID und -region kennen, wenn Sie neue Cloud SQL-Instanzen erstellen, die vom Kunden verwaltete Verschlüsselungsschlüssel verwenden. Neue Cloud SQL-Instanzen müssen sich in derselben Region befinden wie der vom Kunden verwaltete Verschlüsselungsschlüssel, der der Instanz zugeordnet ist. Sie können ein Projekt sowohl für Schlüssel als auch für Cloud SQL-Instanzen erstellen oder für beide jeweils ein separates Projekt erstellen.

Vom Kunden verwaltete Verschlüsselungsschlüssel haben folgendes Format:

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

Wenn Cloud SQL nicht auf den Schlüssel zugreifen kann (z. B. wenn Sie die Schlüsselversion deaktivieren), sperrt Cloud SQL die Instanz. Sobald der Schlüssel wieder zugänglich ist, setzt Cloud SQL die Instanz automatisch fort.

Wenn Sie Schlüssel rotieren, werden mit dem jeweiligen Schlüssel verschlüsselte Instanzen nicht automatisch mit der neuen Primärschlüsselversion neu verschlüsselt. Sie können alle vorhandenen primären CMEK-Instanzen oder -Replikate mit der neuen Primärschlüsselversion neu verschlüsseln. Weitere Informationen zum erneuten Verschlüsseln einer Cloud SQL-Instanz oder eines -Replikats nach einer Schlüsselrotation finden Sie unter Vorhandene CMEK-fähige Instanzen oder Replikate neu verschlüsseln.

Externe Schlüsselverwaltung

Sie können Schlüssel, die in externen Schlüsselverwaltungssystemen gespeichert sind, z. B. Fortinix, Ionic oder Thales, als vom Kunden verwaltete Verschlüsselungsschlüssel verwenden. Informationen zur Verwendung externer Schlüssel mit Cloud KMS finden Sie unter Cloud External Key Manager (Cloud EKM).

Key Access Justifications

Sie können Key Access Justifications (KAJ) als Teil von Cloud EKM verwenden. KAJ ermöglicht es Ihnen, den Grund für jede Cloud EKM-Anfrage aufzurufen. Basierend auf der Begründung können Sie eine Anfrage außerdem automatisch genehmigen oder ablehnen. Weitere Informationen finden Sie in der Übersicht.

Damit bietet KAJ eine zusätzliche Kontrolle über Ihre Daten. Dazu stellt es für jeden Versuch zum Entschlüsseln der Daten eine Begründung bereit.

Weitere Informationen zur Verwendung von Schlüsseln mit Cloud SQL-Instanzen finden Sie unter Cloud SQL-Instanz mit CMEK erstellen.

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

Es kann vorkommen, dass Sie mit CMEK verschlüsselte Daten dauerhaft löschen möchten. Löschen Sie dazu die Version des vom Kunden verwalteten Verschlüsselungsschlüssels. Sie können zwar den Schlüsselbund oder Schlüssel nicht löschen, aber Sie können Versionen des Schlüssels löschen.

Wie exportiere und importiere ich Daten aus einer und in eine CMEK-fähige Instanz?

Wenn Ihre Daten während eines Exports oder Imports mit einem vom Kunden verwalteten Schlüssel verschlüsselt bleiben sollen, müssen Sie vor dem Exportieren von Daten in den Cloud Storage-Bucket einen vom Kunden verwalteten Verschlüsselungsschlüssel festlegen. Es gibt keine besonderen Anforderungen oder Einschränkungen für den Import von Daten in eine neue Instanz, wenn die Daten zuvor in einer CMEK-fähigen Instanz gespeichert waren.

Beschränkungen

Vom Kunden verwaltete Verschlüsselungsschlüssel unterliegen diesen Beschränkungen:

  • Sie können keine vom Kunden verwalteten Verschlüsselungsschlüssel auf einer vorhandenen Instanz aktivieren.
  • Sie können einem Replikat in derselben Region wie die primäre Instanz keinen anderen Schlüssel zuweisen. Bei regionenübergreifenden Replikaten müssen Sie einen neuen Schlüssel für die Replikatregion erstellen.
  • Sie können einem Klon keinen anderen Schlüssel zuweisen.
  • Sie können keine vom Kunden verwalteten Verschlüsselungsschlüssel verwenden, um Folgendes zu verschlüsseln:
    • Externe Server (externe primäre Instanzen und externe Replikate)
    • Instanzmetadaten wie Instanz-ID, Datenbankversion, Maschinentyp, Flags, Sicherungszeitplan usw.
  • Sie können keine vom Kunden verwalteten Verschlüsselungsschlüssel verwenden, um Nutzerdaten wie Anfragen und Antworten von Nutzern während der Übertragung zu verschlüsseln.

Nächste Schritte