Sie können alle Daten, die zwischen Ihren Clientanwendungen und Memorystore for Valkey ü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 Valkey-Traffic über das TLS-Protokoll (Transport Layer Security) verschlüsselt. So bleiben alle Daten, die zwischen Ihren Anwendungen und Memorystore for Valkey übertragen werden, vertraulich und unverändert.
Wenn die Verschlüsselung während der Übertragung aktiviert ist, kommunizieren Valkey-Clients ausschließlich über eine sichere Verbindung. Valkey-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 Valkey-Client das TLS-Protokoll verwenden kann.
Instanzen, die die Verschlüsselung während der Übertragung verwenden, haben Zertifizierungsstellen (Certificate Authorities, CAs). Sie verwenden die CAs, um die Zertifikate der Maschinen in Ihren Instanzen zu authentifizieren.
Ein CA-Modus, den Sie verwenden können, ist eine vom Kunden verwaltete CA. Sie können vom Kunden verwaltete CAs für Ihre Memorystore for Valkey-Instanzen verwenden. Wenn Sie Ihre eigenen CAs aus Compliance-Gründen verwalten müssen, können Sie diesen CA-Modus verwenden. Dazu müssen Sie einen eigenen CA-Pool einrichten, der in Certificate Authority Service gehostet wird.
Bevor Sie eine Instanz 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 Ihre Instanz 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.
Wenn Sie die Instanz erstellen, geben Sie den CA-Pool an. Im Rahmen dieser Konfiguration hat das projektspezifische Memorystore for Valkey-Dienstkonto Berechtigungen zur Verwendung des CA-Pools. Das Dienstkonto fordert eine CA aus dem Pool an und Memorystore for Valkey verwendet diese CA, um das Serverzertifikat für die Instanz zu signieren.
Hinweis
Bevor Sie den Modus für vom Kunden verwaltete CAs 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
So verwenden Sie eine vom Kunden verwaltete CA:
- Erstellen Sie einen CA-Pool. Bevor Sie eine Instanz 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 Ihre Instanz 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 Valkey-Dienstkonto, Serverzertifikate mit CAs aus dem von Ihnen erstellten CA-Pool auszustellen.
- Erstellen Sie eine Instanz, um die vom Kunden verwaltete CA zu verwenden.
CA-Pool erstellen
Sie können einen CA-Pool in CA Service im selben Projekt erstellen, in dem Sie Ihre Memorystore for Valkey-Instanzen 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 VPC Service Controls Sie möglicherweise aufgrund Ihrer Organisationsrichtlinien daran hindern, Instanzen zu erstellen. Achten Sie darauf, dass sich das Projekt, in dem der CA-Pool und die CA gehostet werden, und das Projekt, in dem Memorystore for Valkey gehostet wird, im selben Dienstperimeter befinden. 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 übernehmen. Die folgenden Konfigurationseinstellungen sind jedoch erforderlich:
- Erstellen Sie den CA-Pool in derselben Region , in der Sie die Instanz erstellen möchten. Eine Liste der Regionen, die von Memorystore for Valkey unterstützt werden, finden Sie unter Memorystore for Valkey-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 Valkey 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 Valkey-Dienstkonto Zertifikate für Ihre Instanzen anfordern und signieren kann, 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-memorystore.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 die Instanzen erstellen möchten.
- REGION_ID: die Region, in der sich der CA-Pool befindet.
- SERVICE_ACCOUNT_NAME: der Name des Memorystore for Valkey -Dienstkontos. Die Projektnummer für dieses Dienstkonto ist dieselbe wie die Projektnummer, die mit der PROJECT_ID verknüpft ist.
Instanz mit einer vom Kunden verwalteten CA erstellen
Console
Folgen Sie der Anleitung unter Instanzen erstellen.
gcloud
Verwenden Sie den gcloud memorystore instances create Befehl, um eine Instanz mit einer vom Kunden verwalteten CA zu erstellen.
gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_ID/global/networks/NETWORK_ID", "projectId": "PROJECT_ID"}}]}]' \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--engine-version=ENGINE_VERSION \
--mode=MODE \
--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:
INSTANCE_ID: die ID der Instanz, die Sie erstellen. Die Instanz-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 die Instanz befinden soll. Sie müssen die Instanz in derselben Region wie den von Ihnen erstellten CA-Pool erstellen.
PROJECT_ID: die ID des Projekts, in dem Sie die Instanz erstellen möchten.
NETWORK_ID: die ID des Netzwerks, das Sie zum Erstellen der Instanz verwenden möchten.
REPLICA_COUNT: die Anzahl der Replikate (pro Shard). Zulässige Werte sind
0–5.NODE_TYPE: der Knotentyp. Zulässige Werte:
shared-core-nanostandard-smallhighmem-mediumhighmem-xlarge
SHARD_COUNT: die Anzahl der Shards in der Instanz. Die Anzahl der Shards bestimmt die Gesamtarbeitsspeicherkapazität zum Speichern von Instanzdaten. Weitere Informationen zu Instanzspezifikationen finden Sie unter Instanz- und Knotenspezifikationen.
ENGINE_VERSION: die Version der Instanz. Zulässige Werte für diesen Parameter sind
VALKEY_7_2,VALKEY_8_0undVALKEY_9_0. Wenn Sie keinen Wert angeben, istVALKEY_9_0der Standardwert.MODE: bestimmt, ob der Clustermodus aktiviert oder deaktiviert ist. Wenn dieses Feld nicht angegeben ist, ist der Clustermodus für die Instanz standardmäßig aktiviert. Weitere Informationen finden Sie unter Clustermodus aktivieren und deaktivieren.
CA_POOL_PROJECT_ID: die ID des von Ihnen erstellten CA-Pools.
REGION_ID: die Region, in der sich der CA-Pool befindet. Die Instanz, die 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 die Instanz dar. 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 memorystore instances create my-instance \
--location=us-central1 \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/my-project/global/networks/my-network", "projectId": "my-project"}}]}] \
--replica-count=1 \
--node-type=highmem-medium \
--shard-count=3 \
--engine-version=VALKEY_9_0 \
--mode=CLUSTER \
--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 der Instanz rotieren
Neben der wöchentlichen serverseitigen Zertifikatsrotation durch Memorystore for Valkey können Sie die Zertifikate auch bei Bedarf rotieren.
gcloud
Verwenden Sie den
gcloud memorystore instances update
Befehl, um die Serverzertifikate für alle Maschinen in einer Instanz zu rotieren.
gcloud memorystore instances update INSTANCE_ID \ --location=REGION_ID \ --rotate-server-certificate
Ersetzen Sie die folgenden Werte:
- INSTANCE_ID: die ID der Instanz, die Maschinen enthält, für die Sie die Serverzertifikate rotieren möchten
- REGION_ID: die Region, in der sich die Instanz befindet
Beispiel:
gcloud memorystore instances update my-instance \ --location=us-central1 \ --rotate-server-certificate
Beschränkungen
Bei der Verwendung von vom Kunden verwalteten CAs mit Memorystore for Valkey gelten die folgenden Einschränkungen:
- Nachdem Sie eine vom Kunden verwaltete CA für eine Instanz konfiguriert haben, können Sie die Konfiguration nicht mehr ändern. Sie können beispielsweise die ID des CA-Pools für die Instanz nicht ändern.
- Löschen Sie den vom Kunden verwalteten CA-Pool nicht und widerrufen Sie nicht die Dienstkontoberechtigungen, die mit der CA verknüpft sind. Andernfalls können die Serverzertifikate nicht rotiert werden und laufen ab. Infolgedessen können Ihre Clientanwendungen keine Verbindung zur Instanz herstellen.
Fehlerbehebung
In diesem Abschnitt werden Fehlermeldungen aufgeführt, die bei der Verwendung von vom Kunden verwalteten 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 die CA-Zertifikate nicht mit Memorystore for Valkey abrufen. | Verwenden Sie CA Service, um die CA-Zertifikate für eine vom Kunden verwaltete CA abzurufen. |
Server certificate rotation can only be triggered for
customer-managed CAs. |
Sie versuchen, Serverzertifikate für eine Instanz zu rotieren, aber der CA-Modus der Instanz ist „pro Instanz“ oder „freigegeben“. | Sie können Serverzertifikate nur rotieren, wenn der für eine Instanz 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 der Instanz 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, eine Instanz zu erstellen, die sich in einer anderen Region als der CA-Pool befindet. | Achten Sie darauf, dass sich die Instanz, die 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 der CA-Pool gehostet wird, und das Projekt, in dem die Instanz gehostet wird, befinden sich nicht im 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 Valkey-Dienstkonto hat nicht die
roles/privateca.certificateRequester Rolle für den CA-Pool. Daher kann Memorystore for Valkey 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 Valkey kann den CA-Pool, den Sie beim Erstellen der Instanz 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 Valkey kann keine Serverzertifikate für die Instanz 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 der CA-Pool gehostet wird. Memorystore for Valkey 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, eine Instanz zu erstellen, die 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, eine Instanz zu erstellen, die den CA-Modus „pro Instanz“ oder
freigegeben“ verwendet. Diese CA-Modi verwenden den server_ca_pool
Parameter nicht. |
Sie können diesen Parameter nur verwenden, wenn der CA-Modus „vom Kunden verwaltet“ ist. |