Puoi criptare in modo sicuro tutti i dati che si spostano tra le applicazioni client e Memorystore for Valkey. Si tratta della crittografia dei dati in transito. Utilizzando la crittografia in transito, tutto il traffico Valkey viene criptato tramite il protocollo Transport Layer Security (TLS). In questo modo, tutti i dati che si spostano tra le tue applicazioni e Memorystore for Valkey rimangono riservati e non vengono manomessi.
Se la crittografia in transito è abilitata, i client Valkey comunicano esclusivamente tramite una connessione sicura. I client Valkey non configurati per TLS vengono bloccati. Se scegli di utilizzare la crittografia dei dati in transito, sei responsabile di assicurarti che il client Valkey possa utilizzare il protocollo TLS.
Le istanze che utilizzano la crittografia in transito hanno autorità di certificazione (CA). Utilizzi le CA per autenticare i certificati delle macchine nelle tue istanze.
Una modalità CA che puoi utilizzare è una CA gestita dal cliente. Puoi utilizzare CA gestite dal cliente per le tue istanze Memorystore for Valkey. Se devi gestire le tue CA per motivi di conformità, puoi utilizzare questa modalità CA. Per utilizzare questa modalità, devi configurare il tuo pool di CA ospitato su Certificate Authority Service.
Prima di poter configurare un'istanza per utilizzare CA gestite dal cliente, devi creare un pool di CA nella stessa regione dell'istanza e almeno una CA in quel pool utilizzando il servizio CA. La CA può essere una CA radice o una CA subordinata. Puoi anche creare una CA subordinata nel servizio CA e poi concatenarla a una CA principale esterna.
Quando crei l'istanza, specifichi il pool di CA. Nell'ambito di questa configurazione, il account di servizio Memorystore for Valkey specifico del progetto dispone delle autorizzazioni per utilizzare il pool di CA. Il account di servizio richiede una CA dal pool e Memorystore for Valkey la utilizza per firmare il certificato server per l'istanza.
Prima di iniziare
Prima di utilizzare la modalità CA gestita dal cliente, assicurati di soddisfare i seguenti requisiti.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un pool di CA e una CA, chiedi all'amministratore di concederti il ruolo IAM CA Service Operation Manager (roles/privateca.caManager) sul servizio CA.
Potresti anche ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Flusso di lavoro per utilizzare una CA gestita dal cliente
Per utilizzare una CA gestita dal cliente, il flusso di lavoro è il seguente:
- Crea un pool di CA. Prima di poter configurare un'istanza per utilizzare una CA gestita dal cliente, devi creare un pool di CA nel servizio CA. Questo pool deve trovarsi nella stessa regione dell'istanza.
- Crea una CA nel pool di CA. Dopo aver creato il pool di CA, devi utilizzare il servizio CA per creare almeno una CA nel pool.
- Delega l'autorizzazione al service account Memorystore for Valkey per emettere certificati server con CA dal pool di CA che crei.
- Crea un'istanza per utilizzare la CA gestita dal cliente.
Crea un pool di CA
Puoi creare un pool di CA nel servizio CA nello stesso progetto in cui prevedi di creare le istanze Memorystore for Valkey oppure puoi creare il pool di CA in un progetto diverso. Tuttavia, se crei il pool di CA in un progetto diverso, i Controlli di servizio VPC potrebbero impedirti di creare istanze, a seconda delle policy dell'organizzazione. Per risolvere il problema, assicurati che il progetto che ospita il pool di CA e la CA e il progetto che ospita Memorystore for Valkey appartengano allo stesso perimetro di servizio. Per saperne di più, consulta Dettagli e configurazione del perimetro di servizio e Gestire i perimetri di servizio.
Per creare un pool di CA, segui le istruzioni riportate in Crea un pool di CA. Puoi accettare i valori predefiniti per il pool di CA con le seguenti impostazioni di configurazione richieste:
- Crea il pool di CA nella stessa regione in cui prevedi di creare l'istanza. Per un elenco delle regioni supportate da Memorystore for Valkey, consulta Località di Memorystore for Valkey.
- Consenti richieste di certificati basate sulla configurazione.
- Consenti nomi DNS nei nomi alternativi del soggetto (SAN). Quando configuri i vincoli di identità del pool di CA, non impostare restrizioni sul formato per i nomi DNS che potrebbero entrare in conflitto con ciò che Memorystore for Valkey potrebbe aggiungere al SAN.
Crea una CA nel pool di CA
Crea almeno una CA nel pool di CA che hai creato.
Puoi creare un'autorità di certificazione principale o un'autorità di certificazione subordinata.
Per creare una CA radice, segui le istruzioni riportate in Creare una CA radice. Puoi accettare i valori predefiniti per la CA, ma assicurati di creare la CA nello stato Attivato.
Quando configuri le dimensioni e l'algoritmo della chiave CA, puoi selezionare qualsiasi dimensione e algoritmo della chiave.
Se crei una CA secondaria, devi prima creare e configurare la CA radice.
Per creare una CA secondaria in CA Service, segui le istruzioni riportate in Crea una CA secondaria.
Per creare una CA subordinata da una CA radice esterna, segui le istruzioni riportate nella sezione Creare una CA subordinata da una CA esterna.
Fornisci al account di servizio l'accesso al pool di CA
Per assicurarti che il account di servizio Memorystore for Valkey disponga delle autorizzazioni per richiedere e firmare certificati per le tue istanze, concedi il ruolo roles/privateca.certificateRequester al account di servizio per il pool di CA che hai creato.
Questo account di servizio ha il seguente formato:
service-PROJECT_NUMBER@cloud-memorystore.iam.gserviceaccount.com. Sostituisci PROJECT_NUMBER con il numero di progetto del tuo progetto Google Cloud .
gcloud
Per concedere al account di servizio l'accesso al pool di CA, utilizza il comando gcloud privateca pools add-iam-policy-binding.
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
Effettua le seguenti sostituzioni:
- CA_POOL_ID: l'ID del pool di CA che hai creato.
- PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi creare le istanze.
- REGION_ID: la regione in cui si trova il pool di CA.
- SERVICE_ACCOUNT_NAME: il nome del account di servizio Memorystore for Valkey. Il numero di progetto per questo account di servizio è lo stesso del numero di progetto associato a PROJECT_ID.
Crea un'istanza che utilizza una CA gestita dal cliente
Console
Segui i passaggi descritti in Crea istanze.
gcloud
Per creare un'istanza che utilizza una CA gestita dal cliente, utilizza il comando gcloud memorystore instances create.
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"
Effettua le seguenti sostituzioni:
INSTANCE_ID: l'ID dell'istanza che stai creando. L'ID istanza deve contenere da 1 a 63 caratteri e utilizzare solo lettere minuscole, numeri o trattini. Deve iniziare con una lettera minuscola e terminare con una lettera minuscola o un numero.
REGION_ID: la regione in cui vuoi che si trovi l'istanza. Devi creare l'istanza nella stessa regione del pool di CA che hai creato.
PROJECT_ID: l'ID del progetto in cui vuoi creare l'istanza.
NETWORK_ID: l'ID della rete che vuoi utilizzare per creare l'istanza.
REPLICA_COUNT: il numero di repliche (per shard). I valori accettati sono
0-5.NODE_TYPE: il tipo di nodo. I valori accettati sono:
shared-core-nanostandard-smallhighmem-mediumhighmem-xlarge
SHARD_COUNT: il numero di shard nell'istanza. Il conteggio degli shard determina la capacità di memoria totale per l'archiviazione dei dati dell'istanza. Per ulteriori informazioni sulle specifiche delle istanze, consulta Specifiche di istanze e nodi.
ENGINE_VERSION: la versione dell'istanza. I valori accettati per questo parametro sono
VALKEY_7_2,VALKEY_8_0eVALKEY_9_0. Se non specifichi un valore, il valore predefinito èVALKEY_9_0.MODE: determina se l'istanza è in modalità cluster abilitata o modalità cluster disabilitata. Se questo campo viene omesso, l'istanza viene impostata per impostazione predefinita sulla modalità cluster abilitata. Per saperne di più, vedi Attivare e disattivare la modalità cluster.
CA_POOL_PROJECT_ID: l'ID del pool di CA che hai creato.
REGION_ID: la regione in cui si trova il pool di CA. L'istanza che stai creando e il pool di CA devono trovarsi nella stessa regione.
CA_POOL_ID: l'ID del pool di CA che hai creato.
Il parametro server-ca-mode rappresenta la modalità CA per l'istanza. Per una
CA gestita dal cliente, customer-managed-cas-ca è il valore del parametro.
Se non utilizzi questo parametro, la modalità CA predefinita è per istanza.
Ad esempio:
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"
Ruota i certificati server dell'istanza
Oltre alla rotazione settimanale dei certificati lato server eseguita da Memorystore for Valkey, puoi ruotare i certificati on demand.
gcloud
Per ruotare i certificati del server per tutte le macchine in un'istanza, utilizza il comando
gcloud memorystore instances update.
gcloud memorystore instances update INSTANCE_ID \ --location=REGION_ID \ --rotate-server-certificate
Effettua le seguenti sostituzioni:
- INSTANCE_ID: l'ID dell'istanza che contiene le macchine per cui vuoi ruotare i certificati del server
- REGION_ID: la regione in cui si trova l'istanza
Ad esempio:
gcloud memorystore instances update my-instance \ --location=us-central1 \ --rotate-server-certificate
Limitazioni
Quando utilizzi CA gestite dal cliente con Memorystore for Valkey, si applicano le seguenti limitazioni:
- Dopo aver configurato una CA gestita dal cliente per un'istanza, non puoi modificare la configurazione. Ad esempio, non puoi modificare l'ID del pool di CA per l'istanza.
- Non eliminare il pool di CA gestito dal cliente né revocare le autorizzazioni dell'account di servizio associate alla CA. In caso contrario, i certificati del server non possono essere ruotare e scadranno. Di conseguenza, le tue applicazioni client non potranno connettersi all'istanza.
Risoluzione dei problemi
Questa sezione elenca i messaggi di errore che potresti ricevere quando utilizzi CA gestite dal cliente e include suggerimenti per la risoluzione dei problemi relativi a questi messaggi.
| Messaggio di errore | Causa | Risoluzione dei problemi |
|---|---|---|
FAILED_PRECONDITION: GetClusterCertificateAuthority not
supported for customer-managed CAs |
Se utilizzi una CA gestita dal cliente, non puoi utilizzare Memorystore for Valkey per recuperare i certificati CA. | Per ottenere i certificati CA per una CA gestita dal cliente, devi utilizzare il servizio CA. |
Server certificate rotation can only be triggered for
customer-managed CAs. |
Stai tentando di eseguire la rotazione dei certificati del server per un'istanza, ma la modalità CA dell'istanza è per istanza o condivisa. | Non puoi ruotare i certificati del server a meno che la modalità che utilizzi per un'istanza non sia gestita dal cliente. |
Invalid format for server CA pool: {CA pool resource}. Expected
projects/{project}/locations/{location}/caPools/{caPool}. |
Il pool di CA che stai utilizzando per creare l'istanza ha un formato non valido. | Per il pool di CA, utilizza questo formato: 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}. |
Stai tentando di creare un'istanza che si trova in una regione diversa dal pool di CA. | Assicurati che l'istanza che stai creando e il pool di CA si trovino nella stessa regione. |
Request is prohibited by organization's policy for CA Pool
{CA pool ID}. |
Il progetto Google Cloud che ospita il pool di CA e il progetto che ospita l'istanza non si trovano nello stesso perimetro di servizio. | Configura i Controlli di servizio VPC in modo che i progetti appartengano allo stesso perimetro di servizio. |
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}. |
Il account di servizio Memorystore for Valkey non dispone del ruolo
roles/privateca.certificateRequester per il pool di CA. Di conseguenza, Memorystore for Valkey non può generare certificati server. |
Concedi il ruolo roles/privateca.certificateRequester all'account di servizio. Per saperne di più, consulta Fornire al account di servizio l'accesso al pool di CA. |
Resource {CA pool ID} not found. |
Memorystore for Valkey non riesce a trovare il pool di CA specificato quando hai tentato di creare l'istanza. | Controlla l'ID progetto, la località e il nome del pool di CA. |
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. |
Non sono presenti CA abilitate nel pool di CA. Memorystore for Valkey non può generare certificati server per l'istanza. | Assicurati di creare almeno una CA nel pool di CA e che la CA sia nello stato Attivata. |
Quota exhausted for CA Service. Check quotas
for the project hosting the CA Pool: {CA pool ID}. |
Hai superato la quota per il servizio CA nel progetto Google Cloud che ospita il pool di CA. Memorystore for Valkey non può eseguire operazioni che richiedono questo servizio. | Controlla la quota per il servizio CA nel tuo progetto. Per maggiori informazioni, consulta Quote e limiti. |
server_ca_pool must be provided when server_ca_mode is
SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. |
Stai tentando di creare un'istanza che utilizza la modalità CA gestita dal cliente. Tuttavia, non hai fornito informazioni sul pool di CA. | Specifica l'ID progetto, la località e il nome del pool di CA. |
server_ca_pool must not be provided when server_ca_mode is not SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. |
Stai tentando di creare un'istanza che utilizza la modalità CA per istanza o
condivisa. Queste modalità CA non utilizzano il parametro server_ca_pool. |
Non puoi utilizzare questo parametro a meno che la modalità CA non sia gestita dal cliente. |