Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK)

Auf dieser Seite wird beschrieben, wie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) mit Memorystore for Redis funktionieren. Wenn Sie dieses Feature sofort verwenden möchten, finden Sie weitere Informationen 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 Ihre eigenen kryptografischen Schlüssel für ruhende Daten in Memorystore for Redis 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, KEKs), um Memorystore for Redis zu verschlüsseln. 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 PD 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 bei Verwendung der standardmäßigen Google-Verschlüsselung im Vergleich zu vom Kunden verwalteten Verschlüsselungsschlüsseln funktioniert.

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, entschlüsselt Memorystore den KEK zum Entschlüsseln des DEK und den unverschlüsselten DEK zum Entschlüsseln ruhender 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 der Aktualisierung einer CMEK-fähigen Instanz.

Welche Daten werden mit CMEK verschlüsselt?

Mit CMEK werden die folgenden Datentypen verschlüsselt:

Informationen zu Dienstkonten

Wenn Sie eine Instanz mit CMEK erstellen, müssen Sie dem Memorystore-Dienstkonto die Rolle cloudkms.cryptoKeyEncrypterDecrypter mit folgendem Format zuweisen:

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

Wenn Sie diese Berechtigung erteilen, kann das Dienstkonto Schlüsselzugriff von Cloud KMS anfordern.

Eine Anleitung zum Gewähren dieser Berechtigung für das Dienstkonto finden Sie unter 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 aus, um die Instanz zu verschlüsseln. Sie können ein Projekt sowohl für Schlüssel als auch für Arbeitsspeicherinstanzen oder unterschiedliche Projekte für jede Instanz erstellen.

CMEK ist an allen Memorystore-Instanzstandorten verfügbar. Der Schlüssel und die Schlüsselbundregion müssen auf dieselbe Region wie die Memorystore for Redis-Instanz festgelegt werden. Ein multiregionaler oder globaler Regionsschlüssel funktioniert nicht. Eine Anfrage zum Erstellen einer Memorystore-Instanz schlägt fehl, wenn die Regionen nicht übereinstimmen.

CMEK für Memorystore unterstützt derzeit nicht Cloud External Key Manager (Cloud EKM).

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

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

Wenn Memorystore auf keine derzeit verwendete Schlüsselversion zugreifen kann (z. B. wenn Sie die Schlüsselversion deaktivieren), 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 Hinweis zur roten Ausrufezeichen 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 und in eine CMEK-fähigen Instanz?

Wenn Ihre Daten während eines Import- oder Exportvorgangs mit einem vom Kunden verwalteten Schlüssel verschlüsselt bleiben sollen, müssen Sie vor dem Export der Daten einen vom Kunden verwalteten Verschlüsselungsschlüssel für den Cloud Storage-Bucket festlegen.

Es gibt keine besonderen Anforderungen oder Einschränkungen für den Import von Daten in eine neue Memorystore-Instanz, wenn die Daten zuvor auf einer CMEK-fähigen Memorystore-Instanz gespeichert wurden.

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

Wenn Sie keinen Datenzugriff auf Ihre Instanz wünschen, können Sie die Primärschlüsselversion des vom Kunden verwalteten Verschlüsselungsschlüssels deaktivieren. Dadurch wird die Instanz sofort heruntergefahren. Außerdem wird Memorystore eine Instanz ohne unangemessene Verzögerung herunterfahren, wenn ein vom Kunden verwalteter Verschlüsselungsschlüssel verwendet oder deaktiviert wird. Dazu gehören alle älteren Schlüsselversionen, die noch von einer Memorystore-Instanz verwendet werden. Sie können entweder mit gcloud oder der Google Cloud Console prüfen, ob Ihre Instanz angehalten wurde:

Wenn Ihre Instanz in der Google Cloud Console angehalten wurde, sehen Sie auf der Seite Instanzen von Memorystore for Redis neben der Instanz eine rote Benachrichtigung. In der Kurzinfo wird „Kein Status“ angezeigt, wenn Sie den Mauszeiger darauf bewegen.

Wenn Sie für gcloud gcloud beta redis instances describe ausführen und in den Instanzmetadaten weder state: READY, state: REPAIRING noch ein anderer Status angezeigt wird, wurde die Instanz gesperrt.

Aktive CMEK-Schlüsselversion wieder aktivieren/wiederherstellen

Eine Instanz wird eingeblendet, wenn eine verwendete CMEK-Schlüsselversion wieder aktiviert wird.

Beschränkungen

Die folgenden Einschränkungen gelten, wenn vom Kunden verwaltete Verschlüsselungsschlüssel mit Memorystore verwendet werden: