Daten mit einer instanzspezifischen Zertifizierungsstelle schützen

Sie können alle Daten, die zwischen Ihren Clientanwendungen und Memorystore for Redis Cluster übertragen werden, sicher verschlüsseln. Dies wird als Verschlüsselung während der Übertragung bezeichnet. Bei der Verschlüsselung während der Übertragung wird der gesamte Redis-Traffic über das Transport Layer Security-Protokoll (TLS) verschlüsselt. So wird sichergestellt, dass alle Daten, die zwischen Ihren Anwendungen und Memorystore for Redis Cluster übertragen werden, vertraulich bleiben und nicht manipuliert werden.

Wenn die Verschlüsselung während der Übertragung aktiviert ist, kommunizieren Redis-Clients ausschließlich über eine sichere Verbindung. Redis-Clients, die nicht für TLS konfiguriert sind, werden blockiert. Wenn Sie die Verschlüsselung während der Übertragung verwenden möchten, müssen Sie dafür sorgen, dass Ihr Redis-Client das TLS-Protokoll verwenden kann.

Cluster, die die Verschlüsselung während der Übertragung verwenden, haben Zertifizierungsstellen (Certificate Authorities, CAs). Mit den CAs authentifizieren Sie die Zertifikate der Maschinen in Ihren Clustern.

Ein CA-Modus, den Sie verwenden können, ist eine CA pro Instanz. Memorystore for Redis Cluster stellt für jeden Cluster eine eigene, eindeutige CA-Infrastruktur bereit. Um sicher auf einen Cluster zuzugreifen, müssen Sie Ihre Clientanwendung so konfigurieren, dass sie dieser CA-Hierarchie vertraut. Dazu müssen Sie CA-Zertifikate auf jedem Client herunterladen und installieren, der auf den Cluster zugreift.

Cluster mit einer CA pro Instanz erstellen

Console

Folgen Sie der Anleitung unter Instanzen erstellen.

gcloud

Verwenden Sie den gcloud redis clusters create Befehl, um einen Cluster mit einer CA pro Instanz zu erstellen.

gcloud redis clusters create CLUSTER_ID \
--region=REGION_ID \
--network=NETWORK \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca

Ersetzen Sie die folgenden Werte:

  • CLUSTER_ID: die ID des Clusters, den Sie erstellen. Die Cluster-ID muss zwischen 1 und 63 Zeichen lang sein und darf nur Kleinbuchstaben, Ziffern oder Bindestriche enthalten. Sie muss mit einem Kleinbuchstaben beginnen und mit einem Kleinbuchstaben oder einer Ziffer enden.

  • REGION_ID: die Region, in der sich der Cluster befinden soll.

  • NETWORK: das Netzwerk, das Sie zum Erstellen des Clusters verwenden. Es muss dieses Format haben: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. Die verwendete Netzwerk-ID muss mit der Netzwerk-ID übereinstimmen, die in der Dienstverbindungsrichtlinie verwendet wird. Andernfalls können Sie den Cluster nicht erstellen.

  • REPLICA_COUNT: die Anzahl der Replikate (pro Shard). Zulässige Werte sind 05.

  • NODE_TYPE: der Knotentyp für den Cluster.

  • SHARD_COUNT: die Anzahl der Shards im Cluster. Die Anzahl der Shards bestimmt die Gesamtspeicherkapazität für das Speichern von Clusterdaten. Weitere Informationen zu Clusterspezifikationen finden Sie unter Cluster- und Knotenspezifikationen.

Der Parameter server-ca-mode steht für den CA-Modus für den Cluster. Für eine CA pro Instanz ist google-managed-per-instance-ca der Wert für den Parameter. Wenn Sie diesen Parameter nicht verwenden, ist der Standard-CA-Modus „pro Instanz“.

Beispiel:

gcloud redis clusters create my-cluster \
--region=us-central1 \
--network=projects/my-network-project/global/networks/default \
--replica-count=1 \
--node-type=redis-highmem-medium \
--shard-count=3 \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca

CAs herunterladen

Wenn Sie die Verschlüsselung während der Übertragung für einen Cluster aktivieren, werden bei Verwendung des Befehls get-cluster-certificate-authority die Zertifikate der CAs angezeigt.

gcloud redis clusters get-cluster-certificate-authority CLUSTER_ID

Ersetzen Sie CLUSTER_ID durch die ID des Clusters.

Der Antworttext enthält Zertifikate für alle anwendbaren CAs.

CA-Zertifikate auf dem Client installieren

Sie müssen die CA-Zertifikate auf dem Client installieren, der eine Verbindung zum Cluster herstellt. Je nach Clienttyp kann sich die Installation des CA-Zertifikats unterscheiden.

So installieren Sie ein CA-Zertifikat auf einer Compute Engine-Linux-VM:

  1. Stellen Sie eine SSH-Verbindung zu einem Compute Engine-Linux-Client her.

  2. Erstellen Sie im Client mit dem folgenden Befehl eine server_ca.pem-Datei:

    sudo vim /tmp/server_ca.pem
    
  3. Laden Sie die CAs herunter und fügen Sie sie in die server_ca.pem Datei ein.

    Sie müssen den Text der CAs korrekt formatieren. Die Datei server_ca.pem kann so aussehen:

    -----BEGIN CERTIFICATE-----
    MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkNzYx
    NTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2YxOWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29n
    bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH
    b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE3MjEzNDE1WhcNMzAwOTE1
    MjEzNTE1WjCBhTEtMCsGA1UELhMkNzYxNTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2Yx
    OWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk
    aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw
    ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyDKmDHZm6tzMhNtKOnp8H
    8+zTv1qA6OkBToVqCjKTTMGO18ovNtAAMjbGvclLuJNLbA2WTTWVttHen6Cn82h0
    3gG9HMk9AwK1cVT7gW072h++TRsYddIRlwnSweRWL8jUX+PNt7CjFqH+sma/Hb1m
    CktHdBOa897JiYHrMVNTcpS8SFwwz05yHUTEVGlHdkvlaJXfHLe6keCMABLyjaMh
    1Jl4gZI2WqLMV680pJusK6FI6q/NmqENFc9ywMEg395lHTK9w9e014WIXg0q7sU3
    84ChVVS2yYOMEUWeov4Qx6XeVfA4ss5t7OCqsMQkvslkE90mJZcVvhBj3QvTH9Rz
    AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB
    AJkn+MDE4V10DZn4uEc0s0Mg4FEMC1fDewmDYwSNnxRlzfEi+wAX2AaqrJ4m4Qa7
    xIyuSYxArEOY6QeyJyw7/06dom8aAv4aO2p8hE04Ih6QwaTMFIlT2Jf6TidVd3eT
    wfjwFJVoJ+dgxsaCv2uMFZWee5aRHmKzj9LhqPwpWnTs9Q/qmOheUNoe2/1i8yvn
    662M7RZMR7fZH6ETsdz5w1nPXXiRqJ7K0EGKoPNjMlYK3/U1X3sazI4tpMNgTdxG
    rnNh9Sd9REMBmDCPj9dUI9k4hQX4yQZp96fnLT6cet22OPajEKnpzyqJs1s4iX/g
    lEtWs4V/YBhKA56CW6ASZS8=
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkYjg4
    ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdhMzM4NmIwZmU4MTEwLwYDVQQDEyhHb29n
    bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH
    b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE4MjEzMTI3WhcNMzAwOTE2
    MjEzMjI3WjCBhTEtMCsGA1UELhMkYjg4ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdh
    MzM4NmIwZmU4MTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk
    aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw
    ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEO4Zs/So5DA6wtftkAElD
    8BVREob4gby2mGBYAtd3JJQKFC+zIqCf2DhrWihrCeXhsdsZqJUF16E3MsCCWS2T
    UWt6T37zObU2fzKmb7X+TSw1tunIUcIXwWzoMhqdGrIvfI9guMbF+KssQIjDMs9M
    G/hY6cY1NB5THOxXqcxzYrwSKB1EE160EDz4RgKAYQhw7AyVOBBAbWqA5pTEDuUy
    qpsz+NFpKYTwaeTpzil0xIl0JJS3DOd4G7ZnMG2wFT2j3wt+P0SkAPuOWgmX82iO
    gGmKoaCh3KcICie/rZRTfsRPjMm+yswRQRDeLB5eoMmH+gbUInVZU0qOJ/7gOYEb
    AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB
    AF4xlEbwLUK5VjoKlJBtKXLYrYcW+AbQLhZQFP8exE8bOW7p39h+5J0nl3ItPxu6
    97BCt1P5TFisba8pBxaExiDsYmjKQrhtizMkzl5h9hGksOgoLlAqaaxfA97+Q9Tq
    5gaYChESur/159Z3jiM47obKoZmHfgSgr//7tjII7yZxUGhOjIVffv/fEa4aixqM
    0yH1V1s8hWHZeui2VFrHmTxY20IH9ktyedjSUgnFXzsEH6sbR18p0wBZqyrrtURs
    DaUIeoOHfHgEJM8k/wphSJI0V6pMC6nax2JhexLTRiUsiGTLRDe3VtsdWqS2DLa9
    9DmrfdF0eFrfWw3VRNLwwXg=
    -----END CERTIFICATE-----
    

    Ihre Datei sollte wie im vorherigen Beispiel die folgenden Richtlinien verwenden:

    • Kopieren Sie die gesamte CA, einschließlich der -----BEGIN CERTIFICATE----- und
      -----END CERTIFICATE----- Zeilen.

    • Der Text der CAs muss vollständig linksbündig sein. Prüfen Sie, ob vor keiner Zeile der CAs Leerzeichen vorhanden sind.

    • Fügen Sie jede CA in einer neuen Zeile hinzu. Prüfen Sie, ob zwischen den CAs keine leeren Zeilen vorhanden sind.

Client für die Verschlüsselung während der Übertragung konfigurieren

Der Client, mit dem Sie eine Verbindung zum Cluster herstellen, muss entweder TLS unterstützen oder eine Sidecar-Datei von einem Drittanbieter verwenden, um TLS zu aktivieren.

Wenn Ihr Client TLS unterstützt, konfigurieren Sie ihn so, dass er auf die IP-Adresse des Clusters, Port 6379 und die Datei mit der CA verweist. Hier sehen Sie ein Beispiel für die Verbindung zu einem Cluster , für den die Verschlüsselung während der Übertragung aktiviert ist.

CA-Rotation verwalten

Wir empfehlen, alle herunterladbaren CA-Zertifikate auf den Clients zu installieren, die auf den Cluster zugreifen.

Durch die regelmäßige Installation der neuesten CA-Zertifikate stellen Sie sicher, dass Sie die erforderlichen Zertifikate haben, wenn Memorystore for Redis Cluster die CAs rotiert. Während dieser Rotation sind sowohl die vorhandenen als auch die neuen CAs aktiv.

Codebeispiel für die Verbindung zu einem Cluster, der die Verschlüsselung während der Übertragung verwendet

Ein Codebeispiel zum Einrichten einer Clientbibliothek für die Verbindung zu einem Cluster , der die Verschlüsselung während der Übertragung verwendet, finden Sie unter Codebeispiel für die Clientbibliothek für die Verschlüsselung während der Übertragung.