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 (CMEKs) mit Memorystore for Redis Weitere Informationen zur sofortigen Verwendung dieser Funktion finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) verwendet.

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

Memorystore verwendet von Google verwaltete Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) und Schlüssel Verschlüsselungsschlüssel (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 dem und Google verwaltet den Google-KEK. Mit vom Kunden verwaltete Verschlüsselungsschlüssel erstellen, erstellen Sie einen Schlüssel, der den Google-KEK verpackt. Mit vom Kunden verwalteten Verschlüsselungsschlüsseln können Sie den KEK erstellen, widerrufen und löschen.

Kundenseitig verwaltete Verschlüsselungsschlüssel werden über die Cloud Key Management Service API verwaltet.

Die folgenden Diagramme zeigen, wie die Verschlüsselung ruhender Daten innerhalb eines Memorystore-Instanz bei Verwendung der standardmäßigen Google-Verschlüsselung im Vergleich zu kundenverwaltete Verschlüsselungsschlüssel.

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?

Aktion 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?

CMEK verschlüsselt die folgenden Datentypen:

Informationen zu Dienstkonten

Wenn Sie eine Instanz mit CMEK erstellen, müssen Sie dem Memorystore-Dienstkonto die Rolle cloudkms.cryptoKeyEncrypterDecrypter zuweisen. Das Konto muss dabei das folgende Format haben:

  • 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 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. die einen symmetrischen Verschlüsselungs-/Entschlüsselungsalgorithmus verwendet. Wenn Sie eine neue Memorystore-Instanz erstellen, wählen Sie diesen Schlüssel aus, um 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 sein. Ein Schlüssel für mehrere Regionen oder eine globale Region arbeiten. 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 eine Schlüsselversion derzeit nicht zugreifen kann verwendet wird (z. B. wenn Sie die Schlüsselversion deaktivieren), wird Memorystore geschlossen die Instanz ohne unangemessene Verzögerung herunter. In der Google Cloud Console wird ein Für angehaltene Instanz wird die Kurzinfo mit einem roten Ausrufezeichen auf der Seite Instanzen Seite. Wenn der Mauszeiger auf die Kurzinfo „Kein Status“ bewegt wird angezeigt wird. 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 import oder export aus, müssen Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel im Cloud Storage-Bucket, bevor Daten exportieren.

Es gibt keine besonderen Anforderungen oder Einschränkungen für das Importieren von Daten in ein neues Memorystore-Instanz gespeichert, wenn die Daten zuvor in einem CMEK-fähige Memorystore-Instanz.

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

Wenn Sie keinen Datenzugriff auf Ihre Instanz zulassen möchten, können Sie die primäre Schlüsselversion Ihres vom Kunden verwalteten Verschlüsselungsschlüssels deaktivieren. Tun und fährt Ihre Instanz ohne unnötige Verzögerung herunter. Außerdem Memorystore fährt eine Instanz ohne unangemessene Verzögerung herunter, falls vorhanden Der vom Kunden verwaltete Verschlüsselungsschlüssel, der gerade verwendet wird, wurde deaktiviert/gelöscht. Dazu gehören auch ältere Schlüsselversionen, 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 gesperrt ist:

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 Sie mit der Maus auf .

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

Eine verwendete CMEK-Schlüsselversion wieder aktivieren/wiederherstellen

Eine Instanz wird wieder angezeigt, nachdem eine verwendete CMEK-Schlüsselversion wieder aktiviert oder wiederhergestellt wurde.

Beschränkungen

Vom Kunden verwaltete Verschlüsselungsschlüssel unterliegen den folgenden Einschränkungen 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 symmetrischen Verschlüsselungs-/Entschlüsselungsalgorithmus verwenden. für Ihren Schlüssel.
  • Die 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.

Richtlinien können einschränken, für welche Cloud KMS-Schlüssel verwendet werden können CMEK-Schutz.

  • Wenn sich die Memorystore for Redis API in der Richtlinienliste Deny für Dienste unter der Einschränkung constraints/gcp.restrictNonCmekServices befindet, schlägt das Erstellen von Memorystore for Redis für Instanzen fehl, die nicht CMEK-geschützt sind.

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