Daten mit einer vom Kunden verwalteten Zertifizierungsstelle (Certificate Authority, CA) schützen

Sie können alle Daten, die zwischen Ihren Clientanwendungen und Memorystore for Valkey ü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 Valkey-Traffic über das Transport Layer Security-Protokoll (TLS) verschlüsselt. So wird sichergestellt, dass alle Daten, die zwischen Ihren Anwendungen und Memorystore for Valkey übertragen werden, vertraulich und unverfälscht bleiben.

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 während der Übertragung verwendet werden, haben Zertifizierungsstellen (Certificate Authorities, CAs). Sie verwenden die CAs, um die Zertifikate der Computer in Ihren Instanzen 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 Memorystore for Valkey-Instanzen 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 eine Instanz für die Verwendung von vom Kunden verwalteten CAs konfigurieren können, müssen Sie mit dem 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 im 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 „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:

  1. Erstellen Sie einen CA-Pool. Bevor Sie eine Instanz 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 Ihre Instanz befinden.
  2. 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.
  3. Delegieren Sie die Berechtigung an das Memorystore for Valkey-Dienstkonto, Serverzertifikate mit Zertifizierungsstellen aus dem von Ihnen erstellten Zertifizierungsstellenpool auszustellen.
  4. Erstellen Sie eine Instanz, 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 Memorystore for Valkey-Instanzen erstellen möchten, oder in einem anderen Projekt. Wenn Sie den CA-Pool jedoch in einem anderen Projekt erstellen, können Sie je nach den Richtlinien Ihrer Organisation möglicherweise keine Instanzen 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 Valkey 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 Ihre Instanz erstellen möchten. Eine Liste der von Memorystore for Valkey unterstützten Regionen finden Sie unter Memorystore for Valkey-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 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, 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.

Dienstkonto Zugriff auf den CA-Pool gewähren

Damit Ihr Memorystore for Valkey-Dienstkonto Berechtigungen zum Anfordern und Signieren von Zertifikaten für Ihre Instanzen hat, weisen Sie dem Dienstkonto die Rolle roles/privateca.certificateRequester für den von Ihnen erstellten CA-Pool 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 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 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 PROJECT_ID verknüpft ist.

Instanz erstellen, die eine vom Kunden verwaltete Zertifizierungsstelle verwendet

Console

Folgen Sie der Anleitung unter Instanzen erstellen.

gcloud

Verwenden Sie den Befehl gcloud memorystore instances create, um eine Instanz zu erstellen, die eine vom Kunden verwaltete CA verwendet.

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. Er 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 Ihre Instanz in derselben Region wie den CA-Pool erstellen, den Sie erstellt haben.

  • 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 05.

  • NODE_TYPE: der Knotentyp. Zulässige Werte:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge
  • SHARD_COUNT: die Anzahl der Shards in der Instanz. Die Anzahl der Shards bestimmt die Gesamtspeicherkapazität für das Speichern von Instanzdaten. Weitere Informationen zu Instanzspezifikationen finden Sie unter Instanz- und Knotenspezifikation.

  • ENGINE_VERSION: die Version der Instanz. Zulässige Werte für diesen Parameter sind VALKEY_7_2, VALKEY_8_0 und VALKEY_9_0. Wenn Sie keinen Wert angeben, wird standardmäßig VALKEY_9_0 verwendet.

  • MODE: Gibt an, ob der Clustermodus für die Instanz aktiviert oder deaktiviert ist. Wird dieses Feld ausgelassen, wird für die Instanz standardmäßig der Clustermodus 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 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 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

Zusätzlich zur wöchentlichen serverseitigen Zertifikatsrotation durch Memorystore for Valkey können Sie die Zertifikate bei Bedarf rotieren.

gcloud

Verwenden Sie den Befehl gcloud memorystore instances update, 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 Zertifizierungsstelle 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 mit der CA verknüpften Dienstkontoberechtigungen. Andernfalls können die Serverzertifikate nicht rotiert werden und laufen ab. Daher können Ihre Clientanwendungen keine Verbindung zur Instanz 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 Zertifizierungsstelle verwenden, können Sie die Zertifikate der Zertifizierungsstelle nicht mit Memorystore for Valkey 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 eine Instanz zu rotieren, aber der CA-Modus der Instanz ist „Per-instance“ oder „Shared“. Sie können Serverzertifikate nur rotieren, wenn der Modus, den Sie für eine Instanz 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 der Instanz 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, 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 Ihr CA-Pool in derselben Region befinden.
Request is prohibited by organization's policy for CA Pool {CA pool ID}. Das Projekt Google Cloud , in dem der CA-Pool gehostet wird, und das Projekt, in dem die Instanz 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 Valkey-Dienstkonto hat nicht die Rolle roles/privateca.certificateRequester für den Zertifizierungsstellenpool. 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 nicht finden, den Sie beim Erstellen der Instanz 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 Valkey kann keine Serverzertifikate für die Instanz 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 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. 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.