Gestionar el cifrado en tránsito

En esta página se explica cómo gestionar el cifrado en tránsito de tu clúster.

Para obtener una descripción general del cifrado en tránsito de Memorystore para Redis Cluster, consulta Información sobre el cifrado en tránsito.

Solo puedes habilitar el cifrado en tránsito cuando creas tu clúster de Memorystore. El cifrado en tránsito no se puede inhabilitar en los clústeres creados de esta forma.

Crear una instancia con cifrado en tránsito

Consola

Sigue los pasos que se indican en Crear una instancia de Memorystore for Redis Cluster.

gcloud

Para crear un clúster de Redis que tenga cifrado en tránsito, ejecuta el 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

Haz los cambios siguientes:

  • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster que vas a crear. El ID de instancia debe tener entre 1 y 63 caracteres, y solo puede incluir letras minúsculas, números o guiones. Debe empezar por una letra minúscula y terminar por una letra minúscula o un número.

  • REGION_ID es la región en la que quieres colocar la instancia.

  • NETWORK es la red que se ha usado para crear la instancia. Debe usar el formato projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. El ID de red que se usa aquí debe coincidir con el que usa la política de conexión de servicio. De lo contrario, la operación create no se realizará.

  • REPLICA_COUNT es el número de réplicas que quieres (por partición). Los valores aceptados son 0, 1 y 2.

  • NODE_TYPE es el tipo de nodo que has elegido. Los valores aceptados son:

    • redis-shared-core-nano
    • redis-standard-small
    • redis-highmem-medium
    • redis-highmem-xlarge
  • SHARD_COUNT determina el número de particiones de tu instancia. El número de particiones determina la capacidad total de memoria para almacenar datos del clúster. Para obtener más información sobre las especificaciones de los clústeres, consulta Especificaciones de clústeres y nodos.

Por ejemplo:

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

Descargar las autoridades de certificación

Si el cifrado en tránsito está habilitado en tu clúster, verás los certificados de las autoridades de certificación cuando ejecutes el comando get-cluster-certificate-authority:

gcloud redis clusters get-cluster-certificate-authority INSTANCE_ID

Haz los cambios siguientes:

  • INSTANCE_ID es el ID de tu instancia de Memorystore for Redis Cluster.

El cuerpo de la respuesta incluye certificados de todas las autoridades de certificación aplicables.

Instalar autoridades de certificación en el cliente

Debes instalar las autoridades de certificación de tu clúster en el cliente que se conecta. La instalación de la CA puede variar en función del tipo de cliente. En los pasos que se indican a continuación se explica cómo instalar una CA en una máquina virtual Linux de Compute Engine.

  1. Conéctate con SSH a tu cliente Linux de Compute Engine.

  2. Crea un archivo llamado server_ca.pem en tu cliente:

    sudo vim /tmp/server_ca.pem
    
  3. Descarga las autoridades de certificación y pégalas en el archivo server_ca.pem que has creado anteriormente.

    El texto de las ACs debe tener el formato correcto. El archivo server_ca.pem debería tener un aspecto similar a este:

    -----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-----
    

    Tu archivo, como se muestra en el ejemplo anterior, debe seguir estas directrices:

    • Copia toda la autoridad de certificación, incluidas las líneas -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----.

    • Asegúrate de que el texto de las autoridades de certificación esté completamente justificado a la izquierda. No debe haber espacios delante de ninguna línea de las autoridades de certificación.

    • Cada autoridad de certificación debe añadirse en una línea nueva. No debe haber líneas en blanco entre las autoridades certificadoras.

Configurar el cliente para el cifrado en tránsito

El cliente que uses para conectarte al clúster debe admitir TLS o usar un sidecar de terceros para habilitar TLS.

Si tu cliente admite TLS, configúralo para que apunte a la IP de tu instancia de Redis, al puerto 6379 y al archivo que contiene la autoridad de certificación. Si decides usar un sidecar, te recomendamos que utilices Stunnel.

Conectarse de forma segura a un clúster de Memorystore mediante Stunnel y telnet

Para obtener instrucciones sobre cómo usar Stunnel para habilitar el cifrado en tránsito en un cliente de Compute Engine, consulta el artículo Conectarse de forma segura a una instancia de Memorystore mediante Stunnel y telnet.

Gestionar la rotación de la autoridad de certificación

Debes instalar todas las autoridades de certificación descargables en los clientes que accedan a tu clúster.

Instalar las nuevas ACs, además de las anteriores, una vez que estén disponibles es la forma más sencilla de asegurarse de que tiene las ACs necesarias cuando se produzca el evento de rotación de la autoridad de certificación.

Para asegurarte de que tienes la autoridad de certificación necesaria, solo tienes que comprobar que las autoridades de certificación guardadas en tu archivo de cliente coincidan con las que se muestran al descargar autoridades de certificación. Tanto las autoridades de certificación nuevas como las antiguas están activas durante la rotación para garantizar un tiempo de inactividad mínimo.

Código de ejemplo para conectarse a una instancia que usa el cifrado en tránsito

Para ver un ejemplo de código sobre cómo configurar una biblioteca de cliente para conectarse a una instancia que usa el cifrado en tránsito, consulta el ejemplo de código de la biblioteca de cliente de cifrado en tránsito.