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 (CMEK) mit Memorystore for Redis funktionieren. Wie Sie dieses Feature sofort verwenden können, erfahren Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) 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 können Sie für inaktive Daten in Memorystore for Redis Ihre eigenen kryptografischen Schlüssel verwenden. Nachdem Sie vom Kunden verwaltete Verschlüsselungsschlüssel hinzugefügt haben, verwendet Memorystore bei jedem API-Aufruf Ihren Schlüssel für den Zugriff auf Daten.

Memorystore verwendet von Google verwaltete Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) und Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEK) zum Verschlüsseln von Memorystore for Redis. Es gibt zwei Verschlüsselungsebenen:

  • Der DEK verschlüsselt Daten.
  • Der KEK verschlüsselt den DEK.

Die Memorystore-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 über die Cloud Key Management Service API verwaltet.

Die folgenden Diagramme zeigen, wie die Verschlüsselung ruhender Daten in einer Memorystore-Instanz funktioniert, wenn die standardmäßige Google-Verschlüsselung im Vergleich zu vom Kunden verwalteten Verschlüsselungsschlüsseln verwendet wird.

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 Memorystore den KEK zum Entschlüsseln des DEK und den unverschlüsselten DEK zum Entschlüsseln inaktiver Daten.

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 Memorystore mit CMEK-Schlüsseln?

Vorgang Beschreibung
Instanzerstellung Während der Instanzerstellung konfigurieren Sie die Instanz für die Verwendung von vom Kunden verwalteten Verschlüsselungsschlüsseln.
Instanzaktualisierung Memorystore prüft den CMEK-Schlüssel während Aktualisierungen einer CMEK-fähigen Instanz.

Welche Daten werden mit CMEK verschlüsselt?

Mit CMEK werden die folgenden Datentypen verschlüsselt:

Informationen zu Dienstkonten

Beim Erstellen einer Instanz mit CMEK müssen Sie dem Memorystore-Dienstkonto die Rolle cloudkms.cryptoKeyEncrypterDecrypter im folgenden Format zuweisen:

  • service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com

Mit dieser Berechtigung kann das Dienstkonto Schlüsselzugriff von Cloud KMS anfordern.

Eine Anleitung zum Gewähren dieser Berechtigung für das Dienstkonto finden Sie unter Dem Dienstkonto Zugriff auf den Schlüssel gewähren.

Informationen zu Schlüsseln

In Cloud KMS müssen Sie einen Schlüsselbund mit einem kryptografischen Schlüssel erstellen, der einen symmetrischen Verschlüsselungs-/Entschlüsselungsalgorithmus verwendet. Wenn Sie eine neue Memorystore-Instanz erstellen, wählen Sie diesen Schlüssel zum Verschlüsseln der Instanz aus. Sie können ein Projekt sowohl für Schlüssel als auch für Memorystore-Instanzen oder jeweils ein separates Projekt erstellen.

CMEK ist an allen Memorystore-Instanzstandorten verfügbar. Die Schlüssel- und Schlüsselbundregion muss auf dieselbe Region wie die Memorystore for Redis-Instanz festgelegt werden. Ein Schlüssel mit mehreren Regionen oder einer globalen Region funktioniert nicht. Eine Anfrage zum Erstellen einer Memorystore-Instanz schlägt fehl, wenn die Regionen nicht übereinstimmen.

CMEK für Memorystore ist mit Cloud External Key Manager (Cloud EKM) kompatibel.

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

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

Wenn Memorystore auf keine der aktuell verwendeten Schlüsselversionen zugreifen kann, z. B. weil Sie die Schlüsselversion deaktiviert haben, fährt Memorystore die Instanz ohne unangemessene Verzögerung herunter. In der Google Cloud Console wird für eine angehaltene Instanz auf der Seite Instanzen ein rotes Ausrufezeichen als Kurzinfo angezeigt. Wenn Sie den Mauszeiger auf die Kurzinfo bewegen, wird „Kein Status“ angezeigt. Sobald der Schlüssel wieder zugänglich ist, setzt Memorystore die Instanz automatisch fort.

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 Sie möchten, dass Ihre Daten während eines Imports oder Exports mit einem vom Kunden verwalteten Schlüssel verschlüsselt bleiben, müssen Sie vor dem Export 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 Memorystore-Instanz, wenn die Daten zuvor in einer CMEK-fähigen Memorystore-Instanz gespeichert wurden.

Verhalten beim Löschen/Deaktivieren einer CMEK-Schlüsselversion

Wenn Sie sicherstellen möchten, dass kein Datenzugriff auf Ihre Instanz erfolgt, können Sie die Primärschlüsselversion Ihres vom Kunden verwalteten Verschlüsselungsschlüssels deaktivieren. Dadurch wird die Instanz ohne unangemessene Verzögerung heruntergefahren. Außerdem fährt Memorystore eine Instanz ohne unangemessene Verzögerung herunter, wenn ein aktiver vom Kunden verwalteter Verschlüsselungsschlüssel deaktiviert/gelöscht wird. Dies schließt alle älteren Schlüsselversionen ein, die noch von einer Memorystore-Instanz verwendet werden. Sie können entweder gcloud oder die Google Cloud Console verwenden, um zu prüfen, ob Ihre Instanz angehalten wurde:

Wenn Ihre Instanz in der Google Cloud Console gesperrt ist, wird auf der Seite Instanzen von Memorystore for Redis neben der Instanz eine rote Kurzinfo angezeigt. In der Kurzinfo wird „Kein Status“ angezeigt, wenn der Mauszeiger darauf bewegt wird.

Wenn Sie für gcloud gcloud beta redis instances describe ausführen und state: READY, state: REPAIRING oder einen anderen Status in den Instanzmetadaten nicht sehen, bedeutet dies, dass Ihre Instanz gesperrt ist.

Verwendete CMEK-Schlüsselversionen wieder aktivieren/wiederherstellen

Eine Instanz wird eingeblendet, nachdem eine aktive CMEK-Schlüsselversion reenabling/restoring wurde.

Einschränkungen

Wenn Sie vom Kunden verwaltete Verschlüsselungsschlüssel mit Memorystore verwenden, gelten die folgenden Einschränkungen:

  • Sie können keine vom Kunden verwalteten Verschlüsselungsschlüssel für eine vorhandene Memorystore-Instanz aktivieren.
  • Die Region für den Schlüssel, den Schlüsselbund und die Memorystore-Instanz muss identisch sein.
  • Sie müssen für Ihren Schlüssel den symmetrischen Verschlüsselungs-/Entschlüsselungsalgorithmus verwenden.
  • Die Verschlüsselungs- und Entschlüsselungsraten für Cloud KMS unterliegen einem Kontingent.