Encriptación en tránsito

En esta página, se proporciona una descripción general de la encriptación en tránsito para Memorystore para Redis.

Para obtener instrucciones sobre cómo encriptar una conexión con la encriptación en tránsito, consulta Habilita la encriptación en tránsito.

Memorystore para Redis solo admite la versión 1.2 o una más reciente del protocolo TLS.

Introducción

Memorystore para Redis admite la encriptación de todo el tráfico de Redis mediante el protocolo de seguridad de la capa de transporte (TLS). Cuando la encriptación en tránsito está habilitada, los clientes de Redis se comunican exclusivamente a través de una conexión de puerto segura. Se bloquearán los clientes de Redis que no estén configurados para TLS. Si eliges habilitar la encriptación en tránsito, eres responsable de garantizar que tu cliente de Redis pueda usar el protocolo TLS.

Requisitos de encriptación en tránsito

Para usar la encriptación en tránsito con Memorystore para Redis, necesitas lo siguiente:

  1. Un cliente de Redis que admita TLS o un archivo adicional de TLS de terceros
  2. Una autoridad certificada instalada en la máquina cliente que accede a tu instancia de Redis

La TLS nativa no era compatible antes de la versión 6.0 de código abierto de Redis. Como resultado, no todas las bibliotecas cliente de Redis admiten TLS. Si usas un cliente que no admite TLS, te recomendamos usar el complemento de terceros Stunnel que habilita TLS para tu cliente. Consulta Conéctate a una instancia de Redis de forma segura mediante Stunnel y Telnet para ver un ejemplo de cómo conectarte a una instancia de Redis con Stunnel.

Autoridad certificada

Una instancia de Redis que usa encriptación en tránsito tiene una o más autoridades certificadas (CA) únicas que se usan para verificar la identidad del servidor. Una CA es una string que debes descargar y, luego, instalar en el cliente que accede a tu instancia de Redis. Una CA es válida durante diez años a partir de la fecha de creación. Para garantizar la continuidad del servicio, la CA nueva debe instalarse en los clientes de la instancia de Redis antes de que caduque la CA anterior.

Rotación de la autoridad certificada

Una CA es válida durante 10 años luego de la creación de la instancia. Además, una CA nueva está disponible cinco años después de la creación de la instancia.

La antigua CA es válida hasta su fecha de vencimiento. Esto te brinda un período de cinco años en el que puedes descargar y, luego, instalar la CA nueva en los clientes que se conectan a la instancia de Redis. Una vez que venza la CA anterior, puedes desinstalarla de los clientes.

Para obtener instrucciones sobre cómo rotar la CA, consulta Administra la rotación de las autoridades certificadas.

Rotación del certificado del servidor

La rotación del certificado del servidor se produce cada 180 días y provoca una desconexión transitoria de unos segundos. Para restablecer la conexión, debes tener una lógica de reintento con retirada exponencial. La rotación de certificados no genera una conmutación por error para las instancias de nivel Estándar.

Límites de conexión para la encriptación en tránsito

Habilitar la encriptación en tránsito en tu instancia de Redis genera límites en la cantidad máxima de conexiones de cliente que puede tener tu instancia. El límite depende del tamaño de la instancia. Deberías aumentar el tamaño de tu instancia de Redis si necesitas más conexiones de las que admite tu nivel de capacidad actual.

Nivel de capacidad Cantidad máxima de conexiones1
M1 (1-4 GB) 2,500
M2 (5-10 GB) 2,500
M3 (11-35 GB) 15,000
M4 (36-100 GB) 30,000
M5 (más de 101 GB) 65,000

1 Estos límites de conexión son aproximados y dependen de la frecuencia y la complejidad de los comandos de Redis que se envían por conexión.

Supervisa conexiones

Debido a que las instancias de Redis con encriptación en tránsito tienen límites de conexión específicos, debes supervisar la métrica redis.googleapis.com/clients/connected para asegurarte de no exceder el límite de conexiones. Si se excede el límite, la instancia de Redis rechaza las conexiones nuevas. En este caso, recomendamos aumentar la escala de la instancia al tamaño que se adapta a la cantidad requerida de conexiones. Si sospechas que las conexiones inactivas constituyen una cantidad significativa de conexiones, puedes finalizarlas de forma proactiva con el parámetro de configuración timeout.

Impacto en el rendimiento de habilitar la encriptación en tránsito

La función de encriptación en tránsito encripta y desencripta datos, que vienen con la sobrecarga de procesamiento. Como resultado, habilitar la encriptación en tránsito puede reducir el rendimiento. Además, cuando se usa la encriptación en tránsito, cada conexión adicional se incluye como un costo de recursos asociado. Para determinar la latencia asociada con el uso de la encriptación en tránsito, compara el rendimiento de la aplicación mediante el análisis del rendimiento de la aplicación con una instancia de Redis que tenga habilitada la encriptación en tránsito y una instancia de Redis que la tenga inhabilitada.

Lineamientos para mejorar el rendimiento

  • Disminuye la cantidad de conexiones de clientes siempre que sea posible. Establece y reutiliza conexiones de larga duración en lugar de crear conexiones de corta duración según demanda.
  • Aumenta el tamaño de tu instancia de Memorystore (se recomienda M4 o más).
  • Aumenta los recursos de CPU de la máquina anfitrión del cliente de Memorystore. Las máquinas cliente con un mayor recuento de CPU ofrecen un mejor rendimiento. Si usas una VM de Compute Engine, recomendamos las instancias optimizadas para procesamiento.
  • Disminuye el tamaño de la carga útil asociado con el tráfico de la aplicación porque las cargas útiles más grandes requieren más recorridos de ida y vuelta.

Impacto de la encriptación en tránsito en el uso de la memoria

Si habilitas la encriptación en tránsito, se reserva parte de la memoria de tu instancia de Redis para la función. En igualdad de condiciones, con la encriptación en tránsito habilitada, el valor de la métrica Proporción de uso de memoria del sistema es mayor debido a la memoria adicional adicional que usa la función.

¿Qué sigue?