Puoi criptare in modo sicuro tutti i dati che si spostano tra le applicazioni client e Memorystore for Redis Cluster. Si tratta della crittografia dei dati in transito. Utilizzando la crittografia in transito, tutto il traffico Redis viene criptato tramite il protocollo Transport Layer Security (TLS). In questo modo, tutti i dati che si spostano tra le applicazioni e Memorystore for Redis Cluster rimangono riservati e integri.
Se la crittografia in transito è abilitata, i client Redis comunicano esclusivamente tramite una connessione sicura. I client Redis non configurati per TLS vengono bloccati. Se scegli di utilizzare la crittografia dei dati in transito, è tua responsabilità assicurarti che il client Redis possa utilizzare il protocollo TLS.
I cluster che utilizzano la crittografia in transito hanno autorità di certificazione (CA). Utilizzi le CA per autenticare i certificati delle macchine nei tuoi cluster.
Una modalità CA che puoi utilizzare è una CA per istanza. Memorystore for Redis Cluster esegue il provisioning di ogni cluster con una propria infrastruttura CA univoca. Per accedere a un cluster in modo sicuro, devi configurare l'applicazione client in modo che consideri attendibile questa gerarchia di CA. Ciò comporta il download e l'installazione dei certificati CA su ciascun client che accede al cluster.
Crea un cluster che utilizza una CA per istanza
Console
Segui i passaggi descritti in Crea istanze.
gcloud
Per creare un cluster che utilizza un'autorità di certificazione per istanza, utilizza il comando gcloud redis clusters create.
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=google-managed-per-instance-ca
Effettua le seguenti sostituzioni:
CLUSTER_ID: l'ID del cluster che stai creando. L'ID cluster 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 il cluster.
NETWORK: la rete che utilizzi per creare il cluster. Deve utilizzare questo formato:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. L'ID rete che utilizzi deve corrispondere all'ID rete utilizzato dalle norme di connessione del servizio. In caso contrario, non potrai creare il cluster.REPLICA_COUNT: il numero di repliche (per shard). I valori accettati sono
0-5.NODE_TYPE: il tipo di nodo. I valori accettati sono:
redis-shared-core-nanoredis-standard-smallredis-highmem-mediumredis-highmem-xlarge
SHARD_COUNT: il numero di shard nel cluster. Il conteggio degli shard determina la capacità di memoria totale per l'archiviazione dei dati del cluster. Per ulteriori informazioni sulle specifiche dei cluster, consulta Specifiche di cluster e nodi.
Il parametro server-ca-mode rappresenta la modalità CA per il cluster. Per una CA per istanza, google-managed-per-instance-ca è il valore del parametro. Se non utilizzi questo parametro, la modalità CA predefinita è per istanza.
Ad esempio:
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=google-managed-per-instance-ca
Scarica le CA
Se abiliti la crittografia dei dati in transito per un cluster, quando utilizzi il comando get-cluster-certificate-authority, vengono visualizzati i certificati delle CA.
gcloud redis clusters get-cluster-certificate-authority CLUSTER_ID
Sostituisci CLUSTER_ID con l'ID del cluster.
Il corpo della risposta include i certificati per tutte le CA applicabili.
Installare i certificati CA sul client
Devi installare i certificati CA sul client che si connette al cluster. A seconda del tipo di client, l'installazione del certificato CA potrebbe variare.
Per installare un certificato CA su una VM Linux Compute Engine, segui questi passaggi:
Utilizza SSH per connetterti a un client Linux Compute Engine.
Nel client, utilizza il comando seguente per creare un file
server_ca.pem:sudo vim /tmp/server_ca.pem
Scarica le CA e incollale nel file
server_ca.pem.Devi formattare correttamente il testo delle CA. Il file
server_ca.pempotrebbe essere visualizzato come segue:-----BEGIN CERTIFICATE----- MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkNzYx NTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2YxOWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29n bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE3MjEzNDE1WhcNMzAwOTE1 MjEzNTE1WjCBhTEtMCsGA1UELhMkNzYxNTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2Yx OWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyDKmDHZm6tzMhNtKOnp8H 8+zTv1qA6OkBToVqCjKTTMGO18ovNtAAMjbGvclLuJNLbA2WTTWVttHen6Cn82h0 3gG9HMk9AwK1cVT7gW072h++TRsYddIRlwnSweRWL8jUX+PNt7CjFqH+sma/Hb1m CktHdBOa897JiYHrMVNTcpS8SFwwz05yHUTEVGlHdkvlaJXfHLe6keCMABLyjaMh 1Jl4gZI2WqLMV680pJusK6FI6q/NmqENFc9ywMEg395lHTK9w9e014WIXg0q7sU3 84ChVVS2yYOMEUWeov4Qx6XeVfA4ss5t7OCqsMQkvslkE90mJZcVvhBj3QvTH9Rz AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB AJkn+MDE4V10DZn4uEc0s0Mg4FEMC1fDewmDYwSNnxRlzfEi+wAX2AaqrJ4m4Qa7 xIyuSYxArEOY6QeyJyw7/06dom8aAv4aO2p8hE04Ih6QwaTMFIlT2Jf6TidVd3eT wfjwFJVoJ+dgxsaCv2uMFZWee5aRHmKzj9LhqPwpWnTs9Q/qmOheUNoe2/1i8yvn 662M7RZMR7fZH6ETsdz5w1nPXXiRqJ7K0EGKoPNjMlYK3/U1X3sazI4tpMNgTdxG rnNh9Sd9REMBmDCPj9dUI9k4hQX4yQZp96fnLT6cet22OPajEKnpzyqJs1s4iX/g lEtWs4V/YBhKA56CW6ASZS8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkYjg4 ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdhMzM4NmIwZmU4MTEwLwYDVQQDEyhHb29n bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE4MjEzMTI3WhcNMzAwOTE2 MjEzMjI3WjCBhTEtMCsGA1UELhMkYjg4ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdh MzM4NmIwZmU4MTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEO4Zs/So5DA6wtftkAElD 8BVREob4gby2mGBYAtd3JJQKFC+zIqCf2DhrWihrCeXhsdsZqJUF16E3MsCCWS2T UWt6T37zObU2fzKmb7X+TSw1tunIUcIXwWzoMhqdGrIvfI9guMbF+KssQIjDMs9M G/hY6cY1NB5THOxXqcxzYrwSKB1EE160EDz4RgKAYQhw7AyVOBBAbWqA5pTEDuUy qpsz+NFpKYTwaeTpzil0xIl0JJS3DOd4G7ZnMG2wFT2j3wt+P0SkAPuOWgmX82iO gGmKoaCh3KcICie/rZRTfsRPjMm+yswRQRDeLB5eoMmH+gbUInVZU0qOJ/7gOYEb AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB AF4xlEbwLUK5VjoKlJBtKXLYrYcW+AbQLhZQFP8exE8bOW7p39h+5J0nl3ItPxu6 97BCt1P5TFisba8pBxaExiDsYmjKQrhtizMkzl5h9hGksOgoLlAqaaxfA97+Q9Tq 5gaYChESur/159Z3jiM47obKoZmHfgSgr//7tjII7yZxUGhOjIVffv/fEa4aixqM 0yH1V1s8hWHZeui2VFrHmTxY20IH9ktyedjSUgnFXzsEH6sbR18p0wBZqyrrtURs DaUIeoOHfHgEJM8k/wphSJI0V6pMC6nax2JhexLTRiUsiGTLRDe3VtsdWqS2DLa9 9DmrfdF0eFrfWw3VRNLwwXg= -----END CERTIFICATE-----
Il file, come mostrato nell'esempio precedente, deve rispettare le seguenti linee guida:
Copia l'intera CA, incluse le righe
-----BEGIN CERTIFICATE-----e
-----END CERTIFICATE-----.Assicurati che il testo delle CA sia completamente giustificato a sinistra. Verifica che non siano presenti spazi davanti a nessuna riga delle CA.
Aggiungi ogni CA su una nuova riga. Verifica che non esistano righe vuote tra le CA.
Configura il client per la crittografia in transito
Il client che utilizzi per connetterti al cluster deve supportare TLS o utilizzare un sidecar di terze parti per abilitare TLS.
Se il tuo client supporta TLS, configuralo in modo che punti all'indirizzo IP del cluster, alla porta 6379 e al file contenente l'autorità di certificazione. Puoi vedere un esempio di come connetterti a un cluster con la crittografia in transito abilitata.
Gestire la rotazione delle CA
Ti consigliamo di installare tutti i certificati CA scaricabili sui client che accedono al cluster.
L'installazione periodica dei certificati CA più recenti garantisce di disporre dei certificati necessari quando Memorystore for Redis Cluster esegue la rotazione delle CA. Durante questa rotazione, sono attive sia le CA esistenti sia quelle nuove.
Esempio di codice per connettersi a un cluster che utilizza la crittografia dei dati in transito
Per visualizzare un esempio di codice su come configurare una libreria client per connettersi a un cluster che utilizza la crittografia in transito, consulta Esempio di codice della libreria client di crittografia in transito.