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.

Memorystore for Redis verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von Memorystore for Redis übernommen. Weitere 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 Kundenverwaltete 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 kundenverwaltete 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. Bei CMEK-fähigen Memorystore for Redis-Instanzen verwendet Google Ihre Schlüssel, um auf alle inaktiven Daten zuzugreifen.

Memorystore verwendet von Google verwaltete Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) und Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs), um Daten in Memorystore for Redis zu verschlüsseln. Es gibt zwei Verschlüsselungsebenen:

  • DEK-Verschlüsselung:Memorystore verwendet DEKs zum Verschlüsseln von Daten in Memorystore for Redis.
  • KEK-Verschlüsselung:Memorystore verwendet KEKs zum Verschlüsseln von DEKs.

Die Memorystore for Redis-Instanz speichert den verschlüsselten DEK zusammen mit den verschlüsselten Daten auf dem nichtflüchtigen Speicher und Google verwaltet den Google-KEK. Der CMEK ist der KEK, der den DEK umschließt. Mit CMEK können Sie den KEK erstellen, deaktivieren oder löschen und aktivieren oder wiederherstellen.

Sie verwalten CMEK mit der Cloud Key Management Service API.

Die folgenden Diagramme zeigen, wie die Verschlüsselung inaktiver Daten in einer Memorystore for Redis-Instanz funktioniert, wenn entweder die standardmäßige von Google verwaltete Verschlüsselung oder CMEK 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 CMEK verpackt sind, verwendet Memorystore den KEK aus Cloud Key Management Service, 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.

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 Memorystore for Redis-Instanz mit CMEK erstellen, verwendet Memorystore den Schlüssel regelmäßig, um Daten zu verschlüsseln.

Ihnen werden von Cloud KMS sowohl die Kosten für den Schlüssel als auch die Ver- und Entschlüsselungsvorgänge in Rechnung gestellt, wenn Memorystore for Redis den Schlüssel verwendet. Weitere Informationen finden Sie unter Cloud KMS – Preise.

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:

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
  

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 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 sowohl für Schlüssel als auch für Instanzen erstellen oder für beide jeweils ein separates Projekt 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 mehrere Regionen oder für 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 wird bei CMEK das folgende Format verwendet:

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), wird die Instanz von Memorystore for Redis 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 der Status No state 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 inGoogle 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 kann ich CMEK-verschlüsselte Daten dauerhaft unzugänglich machen?

Es kann vorkommen, dass Sie mit CMEK verschlüsselte Daten 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 importieren oder exportieren Sie Daten für eine CMEK-fähige Instanz?

Wenn Sie möchten, dass Ihre Daten beim Exportieren von Daten mit einem CMEK verschlüsselt bleiben, müssen Sie für den Cloud Storage-Bucket einen CMEK festlegen, bevor Sie Daten in ihn exportieren.

Wenn Ihre Daten in einer CMEK-fähigen Instanz gespeichert sind, gibt es keine besonderen Anforderungen oder Einschränkungen für den Import 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 Zugriff auf die Daten Ihrer Instanz erfolgt, deaktivieren Sie die primäre Schlüsselversion Ihres CMEK. Dadurch wird Ihre Instanz heruntergefahren. Wenn ein verwendeter CMEK deaktiviert oder zerstört wird, fährt Memorystore for Redis die Instanz herunter. Dazu gehört auch jede ältere Schlüsselversion, die von der Instanz verwendet wird.

So prüfen Sie, ob Ihre Memorystore for Redis-Instanz gesperrt wurde:

  • Google Cloud Console: Auf der Seite Instanzen wird neben Ihrer Instanz eine Kurzinfo mit einem roten Ausrufezeichen angezeigt. Wenn Sie den Mauszeiger auf die Kurzinfo bewegen, wird der Status No state angezeigt.
  • gcloud CLI: Verwenden Sie den Befehl gcloud redis instances describe. Prüfen Sie, ob in den Instanzmetadaten state: READY, state: REPAIRING oder ein anderer Status angezeigt wird.

Primäre CMEK-Schlüsselversion aktivieren oder wiederherstellen

Wenn Sie die Primärschlüsselversion Ihres CMEK aktivieren oder wiederherstellen, wird Ihre Instanz nicht mehr von Memorystore for Redis ausgeblendet.

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 Memorystore for Redis-Instanz aktivieren.
  • Die Region für den Schlüssel, den Schlüsselbund und die Instanz muss identisch sein.
  • 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.

CMEK-Organisationsrichtlinien

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

Richtlinien können einschränken, 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 für die Einschränkung constraints/gcp.restrictNonCmekServices befindet, können Sie keine Instanzen ohne CMEK-Schutz erstellen.

  • Wenn Sie die Einschränkung constraints/gcp.restrictCmekCryptoKeyProjects konfigurieren, 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.