Sie können alle Daten, die zwischen Ihren Clientanwendungen und Memorystore for Redis-Clustern übertragen werden, sicher verschlüsseln. Das ist die Verschlüsselung während der Übertragung. Durch die 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 und unverändert bleiben.
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üssen Sie dafür sorgen, dass Ihr Redis-Client das TLS-Protokoll verwenden kann.
Für Cluster, die die Verschlüsselung während der Übertragung verwenden, sind Zertifizierungsstellen (Certificate Authorities, CAs) erforderlich. Sie verwenden die CAs, um die Zertifikate der Maschinen in Ihren Clustern zu authentifizieren.
Ein CA-Modus, den Sie verwenden können, ist eine vom Kunden verwaltete CA. Sie können von Kunden verwaltete CAs für Ihre Cluster in Memorystore for Redis Cluster verwenden. Wenn Sie aus Compliance-Gründen Ihre eigenen CAs verwalten müssen, können Sie diesen CA-Modus verwenden. Wenn Sie diesen Modus verwenden, müssen Sie einen eigenen CA-Pool einrichten, der in Certificate Authority Service gehostet wird.
Bevor Sie einen Cluster für die Verwendung von vom Kunden verwalteten CAs konfigurieren können, müssen Sie mit CA Service einen CA-Pool in derselben Region wie Ihren Cluster und mindestens eine CA in diesem Pool erstellen. Die CA kann eine Stamm-CA oder eine untergeordnete CA sein. Sie können auch eine untergeordnete CA im CA Service erstellen und sie dann mit einer externen Stamm-CA verketten.
Beim Erstellen des Clusters geben Sie den CA-Pool an. Im Rahmen dieser Konfiguration hat das projektspezifische Memorystore for Redis Cluster-Dienstkonto Berechtigungen zur Verwendung des CA-Pools. Das Dienstkonto fordert eine CA aus dem Pool an und Memorystore for Redis Cluster verwendet diese CA zum Signieren des Serverzertifikats für den Cluster.
Hinweis
Bevor Sie den Modus „Vom Kunden verwaltete CA“ verwenden, müssen Sie die folgenden Anforderungen erfüllen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „CA Service Operation Manager“ (roles/privateca.caManager) für CA Service zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines CA-Pools und einer Zertifizierungsstelle benötigen.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Workflow für die Verwendung einer vom Kunden verwalteten Zertifizierungsstelle
Wenn Sie eine kundenverwaltete Zertifizierungsstelle verwenden möchten, gehen Sie so vor:
- Erstellen Sie einen CA-Pool. Bevor Sie einen Cluster für die Verwendung einer vom Kunden verwalteten CA konfigurieren können, müssen Sie einen CA-Pool in CA Service erstellen. Dieser Pool muss sich in derselben Region wie Ihr Cluster befinden.
- Erstellen Sie eine CA im CA-Pool. Nachdem Sie den CA-Pool erstellt haben, müssen Sie mit CA Service mindestens eine CA im Pool erstellen.
- Delegieren Sie die Berechtigung an das Dienstkonto des Memorystore for Redis-Clusters, Serverzertifikate mit Zertifizierungsstellen aus dem von Ihnen erstellten Zertifizierungsstellenpool auszustellen.
- Erstellen Sie einen Cluster, um die vom Kunden verwaltete CA zu verwenden.
CA-Pool erstellen
Sie können einen CA-Pool im CA Service im selben Projekt erstellen, in dem Sie Ihre Cluster in Memorystore for Redis Cluster erstellen möchten, oder Sie können den CA-Pool in einem anderen Projekt erstellen. Wenn Sie den CA-Pool jedoch in einem anderen Projekt erstellen, kann es sein, dass Sie aufgrund Ihrer Organisationsrichtlinien keine Cluster erstellen können. Achten Sie darauf, dass das Projekt, in dem sich der CA-Pool und die CA befinden, und das Projekt, in dem sich Memorystore for Redis Cluster befindet, zum selben Dienstperimeter gehören, um das Problem zu beheben. Weitere Informationen finden Sie unter Informationen zu Dienstperimetern und deren Konfiguration und Dienstperimeter verwalten.
Folgen Sie der Anleitung unter CA-Pool erstellen, um einen CA-Pool zu erstellen. Sie können die Standardwerte für den CA-Pool mit den folgenden erforderlichen Konfigurationseinstellungen akzeptieren:
- Erstellen Sie den CA-Pool in derselben Region, in der Sie Ihren Cluster erstellen möchten. Eine Liste der Regionen, die von Memorystore for Redis Cluster unterstützt werden, finden Sie unter Memorystore for Redis Cluster-Standorte.
- Konfigurationsbasierte Zertifikatsanfragen zulassen.
- DNS-Namen in alternativen Antragstellernamen (Subject Alternative Names, SANs) zulassen Wenn Sie die Identitätseinschränkungen des CA-Pools konfigurieren, legen Sie keine Einschränkungen für das Format der DNS-Namen fest, die mit dem in Konflikt stehen könnten, was Memorystore for Redis Cluster dem SAN hinzufügen könnte.
CA im CA-Pool erstellen
Erstellen Sie mindestens eine CA im erstellten CA-Pool.
Sie können eine Stamm-CA oder eine untergeordnete CA erstellen.
Folgen Sie der Anleitung unter Stamm-CA erstellen, um eine Stamm-CA zu erstellen. Sie können die Standardwerte für die CA übernehmen, müssen sie aber im Status Aktiviert erstellen.
Wenn Sie die Größe und den Algorithmus von CA-Schlüsseln konfigurieren, können Sie eine beliebige Schlüsselgröße und einen beliebigen Algorithmus auswählen.
Wenn Sie eine untergeordnete CA erstellen, müssen Sie zuerst Ihre Stamm-CA erstellen und konfigurieren.
Folgen Sie der Anleitung unter Untergeordnete CA erstellen, um eine untergeordnete CA in CA Service zu erstellen.
Folgen Sie der Anleitung unter Untergeordnete CA aus einer externen CA erstellen, um eine untergeordnete CA aus einer externen Root-CA zu erstellen.
Dienstkonto Zugriff auf den CA-Pool gewähren
Damit Ihr Memorystore for Redis Cluster-Dienstkonto die Berechtigung hat, Zertifikate für Ihre Cluster anzufordern und zu signieren, weisen Sie dem Dienstkonto für den von Ihnen erstellten Zertifizierungsstellenpool die Rolle roles/privateca.certificateRequester zu.
Dieses Dienstkonto hat das folgende Format:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com. Ersetzen Sie PROJECT_NUMBER durch die Projektnummer IhresGoogle Cloud -Projekts.
gcloud
Verwenden Sie den Befehl gcloud privateca pools add-iam-policy-binding, um dem Dienstkonto Zugriff auf den CA-Pool zu gewähren.
gcloud privateca pools add-iam-policy-binding CA_POOL_ID \ --project=PROJECT_ID \ --location=REGION_ID \ --member serviceAccount:SERVICE_ACCOUNT_NAME \ --role=roles/privateca.certificateRequester
Ersetzen Sie die folgenden Werte:
- CA_POOL_ID: die ID des von Ihnen erstellten CA-Pools.
- PROJECT_ID: Die ID des Google Cloud -Projekts, in dem Sie Ihre Cluster erstellen möchten.
- REGION_ID: die Region, in der sich der CA-Pool befindet.
- SERVICE_ACCOUNT_NAME: Der Name des Dienstkontos für Memorystore for Redis-Cluster. Die Projektnummer für dieses Dienstkonto ist dieselbe wie die Projektnummer, die mit PROJECT_ID verknüpft ist.
Cluster erstellen, der eine vom Kunden verwaltete Zertifizierungsstelle verwendet
Console
Folgen Sie der Anleitung unter Instanzen erstellen.
gcloud
Verwenden Sie den Befehl gcloud redis clusters create, um einen Cluster zu erstellen, der eine vom Kunden verwaltete CA verwendet.
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=customer-managed-cas-ca \ --server-ca-pool="projects/CA_POOL_PROJECT_ID/locations/REGION_ID/caPools/CA_POOL_ID"
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. Es muss mit einem Kleinbuchstaben beginnen und mit einem Kleinbuchstaben oder einer Ziffer enden.
REGION_ID: die Region, in der sich der Cluster befinden soll. Sie müssen Ihren Cluster in derselben Region wie den CA-Pool erstellen, den Sie erstellt haben.
NETWORK: Das Netzwerk, das Sie zum Erstellen des Clusters verwenden. Er muss dieses Format haben:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. Die von Ihnen verwendete Netzwerk-ID muss mit der Netzwerk-ID übereinstimmen, die in der Richtlinie für Dienstverbindungen verwendet wird. Andernfalls können Sie den Cluster nicht erstellen.REPLICA_COUNT: die Anzahl der Replikate (pro Shard). Zulässige Werte sind
0–5.NODE_TYPE: der Knotentyp. Zulässige Werte:
redis-shared-core-nanoredis-standard-smallredis-highmem-mediumredis-highmem-xlarge
SHARD_COUNT: die Anzahl der Shards im Cluster. Die Anzahl der Shards bestimmt die Gesamtarbeitsspeicherkapazität zum Speichern von Clusterdaten. Weitere Informationen zu Clusterspezifikationen finden Sie unter Cluster- und Knotenspezifikation.
CA_POOL_PROJECT_ID: die ID des von Ihnen erstellten CA-Pools.
REGION_ID: die Region, in der sich der CA-Pool befindet. Der Cluster, den Sie erstellen, und der CA-Pool müssen sich in derselben Region befinden.
CA_POOL_ID: die ID des von Ihnen erstellten CA-Pools.
Der Parameter server-ca-mode stellt den CA-Modus für den Cluster dar. Bei einer vom Kunden verwalteten Zertifizierungsstelle ist customer-managed-cas-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=customer-managed-cas-ca \ --server-ca-pool="projects/my-CA-pool-project/locations/us-central1/caPools/my-CA-pool"
Serverzertifikate des Clusters rotieren
Zusätzlich zur wöchentlichen serverseitigen Zertifikatsrotation in Memorystore for Redis Cluster können Sie die Zertifikate bei Bedarf rotieren.
gcloud
Verwenden Sie den Befehl gcloud redis clusters update, um die Serverzertifikate für alle Maschinen in einem Cluster zu rotieren.
gcloud redis clusters update CLUSTER_ID \ --region=REGION_ID \ --rotate-server-certificate
Ersetzen Sie die folgenden Werte:
- CLUSTER_ID: die ID des Clusters, der die Maschinen enthält, für die Sie die Serverzertifikate rotieren möchten
- REGION_ID: die Region, in der sich der Cluster befindet
Beispiel:
gcloud redis clusters update my-cluster \ --region=us-central1 \ --rotate-server-certificate
Beschränkungen
Bei der Verwendung von kundenverwalteten CAs mit Memorystore for Redis Cluster gelten die folgenden Einschränkungen:
- Nachdem Sie eine vom Kunden verwaltete Zertifizierungsstelle für einen Cluster konfiguriert haben, können Sie die Konfiguration nicht mehr ändern. Sie können beispielsweise die ID des CA-Pools für den Cluster nicht ändern.
- Löschen Sie den vom Kunden verwalteten CA-Pool nicht und widerrufen Sie nicht die mit der CA verknüpften Dienstkontoberechtigungen. Andernfalls können die Serverzertifikate nicht rotiert werden und laufen ab. Daher können Ihre Clientanwendungen keine Verbindung zum Cluster herstellen.
Fehlerbehebung
In diesem Abschnitt werden Fehlermeldungen aufgeführt, die beim Verwenden von vom Kunden verwalteten CAs auftreten können. Außerdem finden Sie Tipps zur Fehlerbehebung.
| Fehlermeldung | Ursache | Fehlerbehebung |
|---|---|---|
FAILED_PRECONDITION: GetClusterCertificateAuthority not
supported for customer-managed CAs |
Wenn Sie eine vom Kunden verwaltete CA verwenden, können Sie die CA-Zertifikate nicht mit Memorystore for Redis Cluster abrufen. | Wenn Sie die CA-Zertifikate für eine vom Kunden verwaltete CA abrufen möchten, müssen Sie CA Service verwenden. |
Server certificate rotation can only be triggered for
customer-managed CAs. |
Sie versuchen, Serverzertifikate für einen Cluster zu rotieren, aber der CA-Modus des Clusters ist „per-instance“ oder „shared“. | Sie können Serverzertifikate nur rotieren, wenn der Modus, den Sie für einen Cluster verwenden, vom Kunden verwaltet wird. |
Invalid format for server CA pool: {CA pool resource}. Expected
projects/{project}/locations/{location}/caPools/{caPool}. |
Der CA-Pool, den Sie zum Erstellen des Clusters verwenden, hat ein ungültiges Format. | Verwenden Sie für den Zertifizierungsstellenpool dieses Format: projects/CA_POOL_PROJECT_ID/locations/REGION_ID/ caPools/CA_POOL_ID |
The instance/cluster's server CA pool must be in the same region
as the instance/cluster. CA Pool region: {CA pool region}, Instance/cluster
region: {cluster region}. |
Sie versuchen, einen Cluster zu erstellen, der sich in einer anderen Region als der CA-Pool befindet. | Achten Sie darauf, dass sich der Cluster, den Sie erstellen, und Ihr CA-Pool in derselben Region befinden. |
Request is prohibited by organization's policy for CA Pool
{CA pool ID}. |
Das Google Cloud -Projekt, in dem der CA-Pool gehostet wird, und das Projekt, in dem der Cluster gehostet wird, befinden sich nicht im selben Dienstperimeter. | VPC Service Controls konfigurieren, damit die Projekte zum selben Dienstperimeter gehören. |
Permission privateca.certificates.create denied on {CA pool ID}.
Make sure that you granted the roles/privateca.certificateRequester role
to the service account {P4SA email}. |
Das Memorystore for Redis Cluster-Dienstkonto hat nicht die Rolle roles/privateca.certificateRequester für den Zertifizierungsstellenpool. Daher kann Memorystore for Redis Cluster keine Serverzertifikate generieren. |
Weisen Sie dem Dienstkonto die Rolle roles/privateca.certificateRequester zu. Weitere Informationen finden Sie unter Dienstkonto Zugriff auf den CA-Pool gewähren. |
Resource {CA pool ID} not found. |
Memorystore for Redis Cluster kann den CA-Pool nicht finden, den Sie beim Erstellen des Clusters angegeben haben. | Prüfen Sie die Projekt-ID, den Standort und den Namen des CA-Pools. |
There are no enabled CAs in the CaPool {CA pool ID}. Please
ensure that there is at least one enabled Certificate Authority to issue a
certificate. |
Im CA-Pool sind keine CAs aktiviert. Memorystore for Redis Cluster kann keine Serverzertifikate für den Cluster generieren. | Erstellen Sie mindestens eine CA im CA-Pool und stellen Sie sicher, dass sich die CA im Status Aktiviert befindet. |
Quota exhausted for CA Service. Check quotas
for the project hosting the CA Pool: {CA pool ID}. |
Sie haben das Kontingent für den CA-Dienst im Google Cloud -Projekt, in dem sich der CA-Pool befindet, überschritten. Memorystore for Redis Cluster kann keine Vorgänge ausführen, für die dieser Dienst erforderlich ist. | Prüfen Sie das Kontingent für CA Service in Ihrem Projekt. Weitere Informationen finden Sie unter Kontingente und Limits. |
server_ca_pool must be provided when server_ca_mode is
SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. |
Sie versuchen, einen Cluster zu erstellen, der den Modus „Vom Kunden verwaltete Zertifizierungsstelle“ verwendet. Sie haben jedoch keine Informationen zum CA-Pool angegeben. | Geben Sie die Projekt-ID, den Standort und den Namen des CA-Pools an. |
server_ca_pool must not be provided when server_ca_mode is not SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. |
Sie versuchen, einen Cluster zu erstellen, der den Modus „Pro Instanz“ oder „Gemeinsame Zertifizierungsstelle“ verwendet. In diesen CA-Modi wird der Parameter server_ca_pool nicht verwendet. |
Sie können diesen Parameter nur verwenden, wenn der CA-Modus „vom Kunden verwaltet“ ist. |