Übersicht: Vom Kunden verwaltete Verschlüsselungsschlüssel (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 werden im verwalteten Dienst Cloud Key Management Service (Cloud KMS) gespeichert.

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 Lese- und Failover-Replikate aus einer CMEK-fähigen Instanz übernehmen die CMEK-Verschlüsselung mit demselben Cloud KMS-Schlüssel wie die primäre Instanz.
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.

Infos 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 Sie die Schlüsselversion deaktivieren, sperrt Cloud SQL die mit dieser Schlüsselversion verschlüsselten Instanzen. Wenn Sie die Schlüsselversion wieder aktivieren, setzt Cloud SQL die mit dieser Schlüsselversion verschlüsselten Instanzen fort.

Wenn Sie Schlüssel rotieren, werden mit dem jeweiligen Schlüssel verschlüsselte Instanzen nicht noch einmal mit der neuen Primärschlüsselversion verschlüsselt.

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 Schlüsselversionen auf vorhandenen Instanzen nicht rotieren.
  • Sie können einem Replikat keine andere Schlüsselversion zuweisen.
  • Sie können einem Klon keine andere Schlüsselversion 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