Gestire la crittografia dei dati in transito

Questa pagina spiega come gestire la crittografia in transito per il cluster.

Per una panoramica della crittografia in transito per Memorystore for Redis Cluster, consulta la sezione Informazioni sulla crittografia in transito.

Puoi attivare le crittografie in transito solo quando crei inizialmente il cluster Memorystore. La crittografia in transito non può essere disattivata per i cluster creati in questo modo.

Crea un'istanza con la crittografia in transito

Console

Segui i passaggi descritti in Creare un'istanza Memorystore for Redis Cluster.

gcloud

Per creare un cluster Redis con crittografia in transito, esegui il comando create:

gcloud redis clusters create INSTANCE_ID \
--region=REGION_ID \
--network=NETWORK \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--transit-encryption-mode=server-authentication

Sostituisci quanto segue:

  • INSTANCE_ID è l'ID dell'istanza Memorystore for Redis Cluster 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 posizionare l'istanza.

  • NETWORK è la rete utilizzata per creare l'istanza. Deve utilizzare il formato: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. L'ID di rete utilizzato qui deve corrispondere all'ID di rete utilizzato dal criterio di connessione al servizio. In caso contrario, l'operazione create non va a buon fine.

  • REPLICA_COUNT è il numero di repliche che vuoi (per shard). I valori accettati sono 0, 1 e 2.

  • NODE_TYPE è il tipo di nodo scelto. I valori accettati sono:

    • redis-shared-core-nano
    • redis-standard-small
    • redis-highmem-medium
    • redis-highmem-xlarge
  • SHARD_COUNT determina il numero di shard nella tua istanza. Il numero di shard determina la capacità di memoria totale per l'archiviazione dei dati del cluster. Per visualizzare ulteriori dettagli sulla specifica del cluster, consulta Specifica di cluster e nodi.

Ad esempio:

gcloud redis clusters create my-instance \
--region=us-central1 \
--network=projects/my-project-335118/global/networks/default \
--replica-count=1 \
--node-type=redis-highmem-medium \
--shard-count=3 \
--transit-encryption-mode=server-authentication

Scaricare le autorità di certificazione

Se la crittografia dei dati in transito è abilitata sul cluster, vengono visualizzati i certificati delle autorità di certificazione quando esegui il comando get-cluster-certificate-authority:

gcloud redis clusters get-cluster-certificate-authority INSTANCE_ID

Sostituisci quanto segue:

  • INSTANCE_ID è l'ID dell'istanza Memorystore for Redis Cluster.

Il corpo della risposta include i certificati per tutte le autorità di certificazione applicabili.

Installare le autorità di certificazione sul client

Devi installare le autorità di certificazione del cluster sul client di connessione. L'installazione della CA può variare a seconda del tipo di client. I passaggi seguenti spiegano come installare una CA su una VM Linux di Compute Engine.

  1. Connettiti tramite SSH al client Linux di Compute Engine.

  2. Crea un file denominato server_ca.pem nel client:

    sudo vim /tmp/server_ca.pem
    
  3. Scarica le autorità di certificazione e incollale nel file server_ca.pem creato in precedenza.

    Il testo delle CA deve essere formattato correttamente. Il file server_ca.pem dovrebbe avere il seguente aspetto:

    -----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 autorità di certificazione, incluse le righe -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----.

    • Assicurati che il testo delle CA sia completamente giustificato a sinistra. Non devono esserci spazi davanti a qualsiasi riga delle CA.

    • Ogni autorità di certificazione deve essere aggiunta su una nuova riga. Non devono esistere righe vuote tra le CA.

Configurare 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 client supporta TLS, configuralo in modo che punti all'IP dell'istanza Redis, alla porta 6379 e al file contenente l'autorità di certificazione. Se scegli di utilizzare un sidecar, ti consigliamo di utilizzare Stunnel.

Connettersi in modo sicuro a un cluster Memorystore utilizzando Stunnel e telnet

Per istruzioni sull'utilizzo di Stunnel per attivare la crittografia in transito su un client Compute Engine, consulta Connettersi in modo sicuro a un'istanza Memorystore utilizzando Stunnel e telnet.

Gestisci la rotazione dell'autorità di certificazione

Devi installare tutte le autorità di certificazione scaricabili sui client che accedono al tuo cluster.

L'installazione delle nuove CA, oltre a quelle precedenti, una volta disponibili è il modo più semplice per assicurarsi di disporre delle CA necessarie quando si verifica l'evento di rotazione delle autorità di certificazione.

Per assicurarti di avere la CA richiesta, devi verificare che le CA salvate nel file client corrispondano a quelle mostrate durante il download delle autorità di certificazione. Durante la rotazione, sia le nuove CA sia quelle precedenti sono attive per garantire tempi di inattività minimi.

Esempio di codice per la connessione a un'istanza che utilizza la crittografia in transito

Per visualizzare un esempio di codice su come configurare una libreria client per connettersi a un'istanza che utilizza la crittografia in transito, consulta Esempio di codice della libreria client per la crittografia in transito.