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 (Customer-Managed Encryption Keys, CMEK) mit Memorystore for Redis funktionieren. Informationen zur Verwendung dieses Features finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) verwenden.

Standardmäßig verschlüsselt Memorystore for Redis inaktive Kundeninhalte. Memorystore for Redis übernimmt die Verschlüsselung für Sie. Zusätzliche Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Memorystore for Redis verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.

Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Memorystore for Redis-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).

Für wen ist CMEK geeignet?

CMEK ist für Organisationen mit vertraulichen oder regulierten Daten gedacht, die verschlüsselt werden müssen. Weitere Informationen dazu, ob Sie CMEK zum Verschlüsseln dieser Daten verwenden sollten, finden Sie unter Entscheiden, ob CMEK verwendet werden soll.

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 Datenzugriff.

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 auf der nichtflüchtigen Festplatte und Google verwaltet den Google-KEK. Der CMEK ist der KEK, der den DEK 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 inaktiver Daten in einer Memorystore-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 Memorystore 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 Memorystore mit CMEK-Schlüsseln?

Vorgang Beschreibung
Instanzerstellung Während der Erstellung einer Instanz konfigurieren Sie die Instanz für die Verwendung von vom Kunden verwalteten Verschlüsselungsschlüsseln.
Instanzaktualisierung Memorystore prüft den CMEK-Schlüssel bei Aktualisierungen 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 mit dem folgenden Format die Rolle cloudkms.cryptoKeyEncrypterDecrypter zuweisen:

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

Wenn Sie diese Berechtigung gewähren, kann das Dienstkonto den 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 Memorystore-Instanzen erstellen oder für beide 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 globaler 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 nicht auf eine derzeit verwendete Schlüsselversion zugreifen kann (z. B. wenn Sie die Schlüsselversion deaktivieren), wird die Instanz von Memorystore unverzüglich heruntergefahren. In der Google Cloud Console wird für eine gesperrte 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 Ihre Daten während eines Imports oder Exports 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 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 niemand auf Ihre Instanz zugreifen kann, können Sie die primäre Schlüsselversion Ihres vom Kunden verwalteten Verschlüsselungsschlüssels deaktivieren. Dadurch wird Ihre Instanz ohne unnötige Verzögerung heruntergefahren. Außerdem wird eine Memorystore-Instanz unverzüglich heruntergefahren, wenn ein vom Kunden verwalteter Verschlüsselungsschlüssel, der gerade verwendet wird, deaktiviert oder zerstört wird. Dazu gehört auch jede ältere Schlüsselversion, die noch von einer Memorystore-Instanz verwendet wird. Sie können entweder gcloud oder die Google Cloud Console verwenden, um zu prüfen, ob Ihre Instanz gesperrt ist:

Wenn Ihre Instanz in der Google Cloud -Console gesperrt ist, wird neben Ihrer Instanz auf der Seite Memorystore for Redis-Instanzen eine rote Kurzinfo-Benachrichtigung angezeigt. Wenn Sie den Mauszeiger darauf bewegen, wird im Kurzinfo-Fenster „Kein Bundesstaat“ angezeigt.

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

Eine verwendete CMEK-Schlüsselversion reaktivieren/wiederherstellen

Eine Instanz wird wieder sichtbar gemacht, nachdem eine verwendete CMEK-Schlüsselversion wieder aktiviert/wiederhergestellt wurde.

Beschränkungen

Die folgenden Einschränkungen gelten bei der Verwendung vom Kunden verwalteter Verschlüsselungsschlüssel mit Memorystore:

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

CMEK-Organisationsrichtlinien

Memorystore for Redis unterstützt Einschränkungen für Organisationsrichtlinien, die für den CMEK-Schutz verwendet werden können.

Mit Richtlinien kann eingeschränkt werden, welche Cloud KMS-Schlüssel für den CMEK-Schutz verwendet werden können.

  • Wenn sich die Memorystore for Redis API in der Richtlinienliste Deny der Dienste unter der Einschränkung constraints/gcp.restrictNonCmekServices befindet, schlägt die Erstellung von Memorystore for Redis-Instanzen ohne CMEK-Schutz fehl.

  • Wenn constraints/gcp.restrictCmekCryptoKeyProjects konfiguriert ist, erstellt Memorystore for Redis CMEK-geschützte Instanzen, die mit einem Schlüssel aus einem zulässigen Projekt, Ordner oder einer Organisation verschlüsselt werden.

Weitere Informationen zum Konfigurieren von CMEK-Organisationsrichtlinien finden Sie unter CMEK-Organisationsrichtlinien.