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 mit dem 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 vom Kunden verwaltete CA. Sie können vom Kunden verwaltete CAs für Ihre Cluster in Memorystore for Redis Cluster verwenden. Wenn Sie Ihre eigenen CAs aus Compliance-Gründen 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 vom Kunden verwalteter CAs konfigurieren können, müssen Sie mit CA Service einen CA-Pool in derselben Region wie Ihr 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 in 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, um das Serverzertifikat für den Cluster zu signieren.
Hinweis
Bevor Sie den vom Kunden verwalteten CA-Modus verwenden, müssen Sie die folgenden Anforderungen erfüllen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen für CA Service die IAM-Rolle „CA Service Operation Manager“ (roles/privateca.caManager) zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines CA-Pools und einer CA 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 zur Verwendung einer vom Kunden verwalteten CA
Der Workflow zur Verwendung einer vom Kunden verwalteten CA ist wie folgt:
- Erstellen Sie einen CA-Pool. Bevor Sie einen Cluster für die Verwendung einer vom Kunden verwalteten CA konfigurieren können, müssen Sie in CA Service einen CA-Pool 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 Memorystore for Redis Cluster-Dienstkonto, Serverzertifikate mit CAs aus dem von Ihnen erstellten CA-Pool auszustellen.
- Erstellen Sie einen Cluster, der die vom Kunden verwaltete CA verwendet.
CA-Pool erstellen
Sie können einen CA-Pool in 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, können Sie möglicherweise aufgrund Ihrer Organisationsrichtlinien keine Cluster erstellen. 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 übernehmen:
- Erstellen Sie den CA-Pool in derselben Region, in der Sie Ihren Cluster erstellen möchten. Eine Liste der von Memorystore for Redis Cluster unterstützten Regionen 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ätsbeschrä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, aber achten Sie darauf, dass Sie die CA im Status Aktiviert erstellen.
Wenn Sie die Größe und den Algorithmus des CA-Schlüssels konfigurieren, können Sie eine beliebige Schlüssel größ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 von einer externen CA erstellen, um eine untergeordnete CA von einer externen Stamm-CA zu erstellen.
Dienstkonto Zugriff auf den CA-Pool gewähren
Damit Ihr Memorystore for Redis Cluster-Dienstkonto Berechtigungen zum Anfordern und Signieren von Zertifikaten für Ihre Cluster hat, weisen Sie dem Dienstkonto für den von Ihnen erstellten CA-Pool 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 Ihres
Google Cloud Projekts.
gcloud
Verwenden Sie den gcloud privateca pools add-iam-policy-binding
Befehl, 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 Memorystore for Redis Cluster Dienstkontos. Die Projektnummer für dieses Dienstkonto ist dieselbe wie die Projektnummer, die mit der PROJECT_ID verknüpft ist.
Cluster erstellen, der eine vom Kunden verwaltete CA verwendet
Console
Folgen Sie der Anleitung unter Instanzen erstellen.
gcloud
Verwenden Sie den gcloud redis clusters create Befehl, 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, Zahlen oder Bindestriche enthalten. Sie muss mit einem Kleinbuchstaben beginnen und mit einem Kleinbuchstaben oder einer Zahl 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. Es 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 von der Dienstverbindungsrichtlinie 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 Gesamtspeicherkapazitä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 steht für den CA-Modus für den Cluster. Bei einer vom Kunden verwalteten CA 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
Neben der wöchentlichen serverseitigen Zertifikatsrotation durch Memorystore for Redis Cluster können Sie die Zertifikate auch bei Bedarf rotieren.
gcloud
Verwenden Sie den
gcloud redis clusters update
Befehl, 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 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 vom Kunden verwalteter CAs mit Memorystore for Redis Cluster gelten die folgenden Einschränkungen:
- Nachdem Sie eine vom Kunden verwaltete CA 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. Infolgedessen können Ihre Clientanwendungen keine Verbindung zum Cluster herstellen.
Fehlerbehebung
In diesem Abschnitt werden Fehlermeldungen aufgeführt, die bei der Verwendung vom Kunden verwalteter CAs auftreten können, sowie 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 mit Memorystore for Redis Cluster die CA-Zertifikate nicht abrufen. | Um die CA-Zertifikate für eine vom Kunden verwaltete CA zu erhalten, 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 Cluster-CA-Modus ist „pro Instanz“ oder „freigegeben“. | Sie können Serverzertifikate nur rotieren, wenn der für einen Cluster verwendete Modus „vom Kunden verwaltet“ ist. |
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 CA-Pool 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 der CA-Pool in der selben Region befinden. |
Request is prohibited by organization's policy for CA Pool
{CA pool ID}. |
Das Google Cloud Projekt, in dem sich der CA-Pool befindet, und das Projekt, in dem sich der Cluster befindet, gehören nicht zum selben Dienstperimeter. | Konfigurieren Sie VPC Service Controls so, dass die Projekte zum selben Dienst perimeter 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
roles/privateca.certificateRequester Rolle für den CA-Pool. 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, den Sie beim Erstellen des Clusters angegeben haben, nicht finden. | 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. | Achten Sie darauf, dass Sie mindestens eine CA im CA-Pool erstellen und 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 CA Service in dem Google Cloud Projekt überschritten, in dem sich der CA-Pool befindet. 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 vom Kunden verwalteten CA-Modus 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 CA-Modus „pro Instanz“ oder
freigegeben“ verwendet. Bei diesen CA-Modi wird der server_ca_pool
Parameter nicht verwendet. |
Sie können diesen Parameter nur verwenden, wenn der CA-Modus „vom Kunden verwaltet“ ist. |