In diesem Dokument wird beschrieben, wie Sie kundenverwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) in Cloud Key Management Service (Cloud KMS) für Ihre Memorystore for Redis Instanzen verwenden können. Außerdem wird erläutert, welche Daten im persistenten Speicher verschlüsselt werden und wie sich Ihre Instanzen bei Ereignissen im Lebenszyklus von Schlüsseln verhalten.
Mit CMEK können Sie die kryptografischen Schlüssel steuern, die Ihre gespeicherten Daten schützen. Wenn Sie Ihre eigenen Schlüssel in Cloud KMS verwalten, haben Sie mehr Kontrolle über den Zugriff auf Schlüssel, die Rotation und die Verwendung von Schlüsseln. So können Sie strenge Compliance- und gesetzliche Anforderungen erfüllen.
Die Implementierung von CMEK bietet eine zusätzliche Sicherheits- und Kontrollschicht für Ihre persistenten Daten wie Sicherungen und Persistenzdateien. Sie können CMEK nur für neue Instanzen aktivieren. CMEK kann nicht auf vorhandene Instanzen angewendet werden.
Für wen ist CMEK geeignet?
CMEK ist für Organisationen mit vertraulichen oder regulierten Daten gedacht, die die Kontrolle über ihre eigenen Verschlüsselungsschlüssel benötigen. Weitere Informationen dazu, ob Sie CMEK zum Verschlüsseln dieser Daten verwenden sollten, finden Sie unter Entscheidung über die Verwendung von CMEK.
Kundenverwaltete Verschlüsselung
Mit CMEK können Sie Ihre kryptografischen Schlüssel verwenden, um gespeicherte Daten in Instanzen zu schützen. Zum Verschlüsseln dieser Daten verwendet Memorystore for Redis von Google verwaltete Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) und kundenverwaltete Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs).
Sie können die folgenden Verschlüsselungsstufen verwenden:
- DEK-Verschlüsselung: DEKs verschlüsseln Daten in Memorystore for Redis.
- KEK-Verschlüsselung: KEKs verschlüsseln DEKs.
Memorystore for Redis verwendet KEKs zum Verschlüsseln von DEKs und DEKs zum Verschlüsseln der gespeicherten Daten. Wenn Sie CMEK verwenden, können Sie die KEKs verwalten, die die DEKs in Ihrer Instanz verschlüsseln.
Das folgende Diagramm zeigt, wie eine Instanz CMEK zum Verschlüsseln von Daten verwendet. Daten, die in die Speicherinfrastruktur von Google hochgeladen werden, werden in Blöcke aufgeteilt und jeder Block wird mit einem eigenen DEK verschlüsselt. Cloud KMS stellt den KEK zum Verschlüsseln der DEKs bereit und die Speicherinfrastruktur von Google verteilt sowohl die verschlüsselten Datenblöcke als auch die verschlüsselten DEKs im System.

Das folgende Diagramm zeigt, wie Memorystore for Redis Daten entschlüsselt, die mit CMEK verschlüsselt wurden. Um auf diese verschlüsselten Daten zuzugreifen, sendet Memorystore for Redis eine Anfrage an Cloud KMS, das den KEK verwaltet, um den DEK zu entschlüsseln. Cloud KMS gibt dann den entschlüsselten DEK zurück, mit dem die Instanz die gespeicherten Daten entschlüsselt.

Wann interagiert Memorystore mit CMEK?
| Vorgang | Beschreibung |
|---|---|
| Instanzerstellung | Wenn Sie eine Instanz erstellen, konfigurieren Sie sie für die Verwendung von CMEK. |
| Instanzaktualisierung | Bei Aktualisierungen einer CMEK-fähigen Instanz prüft Memorystore for Redis den CMEK. |
Welche Daten werden mit CMEK verschlüsselt?
Mit CMEK werden die folgenden Datentypen verschlüsselt:
- Kundendaten, die im nichtflüchtigen Speicher gespeichert sind.
- Metadaten zu Sicherheitsfunktionen wie AUTH und Verschlüsselung bei der Übertragung.
Informationen zu Dienstkonten
Wenn Sie eine Instanz mit CMEK erstellen, müssen Sie dem Memorystore for Redis-Dienstkonto mit dem folgenden Format die Rolle cloudkms.cryptoKeyEncrypterDecrypter zuweisen:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
Durch das Erteilen dieser Berechtigung kann das Dienstkonto den Zugriff auf den Schlüssel von Cloud KMS anfordern.
Eine Anleitung zum Erteilen dieser Berechtigung für das Dienstkonto finden Sie unter Memorystore for Redis-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üsselungsalgorithmus verwendet. Wenn Sie eine Memorystore for Redis-Instanz erstellen, wählen Sie diesen Schlüssel aus, um die Instanz zu verschlüsseln. Sie können ein Projekt für beide Schlüssel und Instanzen oder verschiedene Projekte für jeden von ihnen erstellen.
CMEK ist an allen Memorystore for Redis-Instanzstandorten verfügbar. Sie müssen den Schlüsselbund und den Schlüssel in derselben Region erstellen, in der Sie die Instanz erstellen möchten. Ein Schlüssel für eine Multi-Region oder eine globale Region funktioniert nicht. Wenn die Regionen oder Standorte nicht übereinstimmen, schlägt eine Anfrage zum Erstellen der Instanz fehl.
Für die Ressourcen-ID des Schlüssels verwendet CMEK das folgende Format:
projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Wenn Memorystore for Redis nicht auf eine verwendete Schlüsselversion zugreifen kann (z. B. wenn Sie alle Schlüsselversionen deaktivieren), fährt Memorystore for Redis die Instanz herunter. In der Google Cloud Console wird für eine angehaltene Instanz auf der Seite Instanzen ein rotes
Ausrufezeichen als Tooltip angezeigt. Wenn Sie den Mauszeiger auf den Tooltip bewegen,
wird der No state Status angezeigt. Sobald der Schlüssel wieder zugänglich ist, setzt Memorystore for Redis die Instanz automatisch fort.
Externe Schlüssel
Sie können Cloud External Key Manager (Cloud EKM) verwenden, um Daten in Google Cloud mit von Ihnen verwalteten externen Schlüsseln zu verschlüsseln.
Wenn Sie einen Cloud EKM-Schlüssel verwenden, hat Google keine Kontrolle über die Verfügbarkeit Ihres extern verwalteten Schlüssels. Wenn der Schlüssel beim Erstellen der Instanz nicht verfügbar ist, wird die Instanz nicht erstellt.
Weitere Überlegungen zur Verwendung externer Schlüssel finden Sie unter Cloud External Key Manager.
Wie können CMEK-verschlüsselte Daten dauerhaft unzugänglich gemacht werden?
Es kann Situationen geben, in denen Sie Daten, die mit CMEK verschlüsselt wurden, dauerhaft unzugänglich machen möchten. Löschen Sie dazu die Schlüsselversion. Weitere Informationen zum Löschen von Schlüsselversionen finden Sie unter Schlüsselversionen löschen und wiederherstellen.
Wie importiere oder exportiere ich Daten für eine CMEK-fähige Instanz?
Wenn Ihre Daten beim Exportieren mit einem CMEK verschlüsselt bleiben sollen, müssen Sie für den Cloud Storage-Bucket einen CMEK festlegen, bevor Sie Daten dorthin exportieren.
Wenn Ihre Daten in einer CMEK-fähigen Instanz gespeichert sind, gelten keine besonderen Anforderungen oder Einschränkungen für das Importieren von Daten in eine neue Instanz.
Verhalten einer CMEK-Schlüsselversion
In diesem Abschnitt erfahren Sie, was passiert, wenn Sie eine Schlüsselversion deaktivieren, löschen, rotieren, aktivieren und wiederherstellen.
CMEK-Schlüsselversion deaktivieren oder löschen
Wenn Sie sicherstellen möchten, dass kein Datenzugriff auf Ihre Instanz möglich ist, deaktivieren Sie die Primärschlüsselversion. Dadurch wird die Instanz heruntergefahren. Wenn ein verwendeter CMEK deaktiviert oder gelöscht wird, fährt Memorystore for Redis die Instanz ebenfalls herunter. Dazu gehört auch jede ältere Schlüsselversion, die von der Instanz verwendet wird.
So prüfen Sie, ob Memorystore for Redis Ihre Instanz angehalten hat:
- Google Cloud Konsole: Auf der Seite Instanzen wird neben Ihrer Instanz ein Tooltip mit einem roten Ausrufezeichen
angezeigt. Wenn Sie den Mauszeiger auf den Tooltip bewegen, wird der
No stateStatus angezeigt. - gcloud CLI: Verwenden Sie den Befehl
gcloud redis instances describe. Prüfen Sie, ob in den Instanzmetadaten nichtstate: READY,state: REPAIRINGoder ein anderer Status angezeigt wird.
CMEK-geschützte Daten manuell neu verschlüsseln
Memorystore for Redis unterstützt das bedarfsgesteuerte Neuverpacken vorhandener inaktiver Daten nicht. Sie können keinen Prozess manuell auslösen, um vorhandene Sicherungen oder aktive Persistenzdateien mit einer neuen Schlüsselversion neu zu verschlüsseln. Sie können die neue Schlüsselversion jedoch verwenden, um neu geschriebene Daten zu verschlüsseln.
Geschützten KMS-Schlüssel ersetzen
Wenn Sie einen geschützten KMS-Schlüssel durch einen anderen KMS-Schlüssel oder eine neue Primärschlüsselversion ersetzen, wendet Memorystore for Redis diese Änderung nur auf zukünftige Vorgänge an.
Das Ersetzen eines geschützten KMS-Schlüssels wirkt sich auf folgende Weise auf Ihre Ressourcen aus:
- Sicherungen: Memorystore for Redis exportiert Sicherungen in Cloud Storage Buckets. Der Cloud Storage-Verschlüsselungsschlüssel steuert den Schlüssel, der zum Verschlüsseln der Daten verwendet wird.
- Persistenz: Beim nächsten Neustart der Instanz oder bei einem Wartungs ereignis wird der neue KMS-Schlüssel verwendet.
- Primärer Cache: Das Ersetzen dieses Schlüssels hat keine Auswirkungen. CMEK verschlüsselt keine In-Memory-Daten, da diese Daten nicht als Daten im Ruhezustand betrachtet werden.
Primäre CMEK-Schlüsselversion aktivieren oder wiederherstellen
Wenn Sie die Primärschlüsselversion aktivieren oder wiederherstellen, wird Ihre Instanz nicht mehr von Memorystore for Redis ausgeblendet.
Einschränkungen für Organisationsrichtlinien
Memorystore for Redis unterstützt Einschränkungen für Organisationsrichtlinien für CMEK. Mit diesen Einschränkungen können Sie den CMEK-Schutz für Ihre Instanzen erzwingen und einschränken, welche Cloud KMS-Schlüssel Sie für diesen Schutz verwenden können.
Sie können die folgenden Einschränkungen für Organisationsrichtlinien konfigurieren:
constraints/gcp.restrictNonCmekServices: Mit dieser Einschränkung können Sie den CMEK-Schutz für Ihre Instanzen erzwingen. Wenn sich die Memorystore for Redis API in derDenyRichtlinienliste der Dienste für diese Einschränkung befindet, können Sie keine nicht CMEK-geschützten Instanzen erstellen.constraints/gcp.restrictCmekCryptoKeyProjects: Mit dieser Einschränkung können Sie einschränken, welche Cloud KMS-Schlüssel Sie für den CMEK-Schutz verwenden können. Wenn Sie diese Einschränkung konfigurieren, müssen die Instanzen, die die CMEK-Verschlüsselung verwenden, einen Schlüssel aus einem zulässigen Projekt, Ordner oder einer zulässigen Organisation verwenden.
Da sowohl Memorystore for Redis als auch Memorystore for Redis Cluster
denselben Endpunkt (redis.googleapis.com) verwenden, können Sie CMEK für
Instanzen nicht unabhängig von Clustern in Memorystore for Redis Cluster erzwingen.
Weitere Informationen zu den CMEK-bezogenen Einschränkungen für Organisationsrichtlinien, die Google für Memorystore for Redis verwaltet, finden Sie unter Einschränkungen für Organisationsrichtlinien.
Preise
Memorystore for Redis berechnet eine CMEK-fähige Instanz wie jede andere Instanz. Es fallen keine zusätzlichen Kosten an. Weitere Informationen finden Sie unter Memorystore for Redis – Preise.
Sie verwenden die Cloud KMS API, um CMEK zu verwalten. Wenn Sie eine Instanz mit CMEK erstellen, verwendet Memorystore den Schlüssel regelmäßig, um Daten zu verschlüsseln.
Ihnen werden von Cloud KMS die Kosten für den Schlüssel sowie für Ver- und Entschlüsselungsvorgänge in Rechnung gestellt, wenn Memorystore for Redis den Schlüssel verwendet. Weitere Informationen finden Sie unter Cloud KMS – Preise.
Beschränkungen
Bei der Verwendung von CMEK mit Memorystore for Redis gelten die folgenden Einschränkungen:
- Sie können CMEK nicht für eine vorhandene Instanz aktivieren.
- Der Schlüssel, der Schlüsselbund und die Instanz müssen sich in derselben Region befinden.
- Sie müssen den symmetrischen Verschlüsselungsalgorithmus für Ihren Schlüssel verwenden.
- Verschlüsselungs- und Entschlüsselungsraten für Cloud KMS unterliegen einem Kontingent.
Nächste Schritte
- Weitere Informationen zu CMEK
- Informationen zum Verbessern der Datensicherheit mit CMEK
- Weitere Informationen zu Sicherungen.
- Weitere Informationen zur Persistenz.