ElastiCache cifrado en tránsito () TLS - Amazon ElastiCache

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

ElastiCache cifrado en tránsito () TLS

Para ayudar a mantener sus datos seguros, Amazon ElastiCache y Amazon EC2 proporcionan mecanismos para protegerlos del acceso no autorizado a sus datos en el servidor. Al proporcionar la capacidad de cifrado en tránsito, ElastiCache le brinda una herramienta que puede usar para ayudar a proteger sus datos cuando se mueven de un lugar a otro.

Todas las cachés OSS sin servidor de Valkey o Redis tienen activado el cifrado en tránsito. En el caso de los clústeres de diseño propio, puede habilitar el cifrado en tránsito en un grupo de replicación configurando el parámetro en true (CLI:--transit-encryption-enabled) TransitEncryptionEnabled al crear el grupo de replicación. Puede hacerlo tanto si crea el grupo de replicación con AWS Management Console, el o el AWS CLI. ElastiCache API

Todas las cachés sin servidor tienen activado el cifrado en tránsito. Para los clústeres de diseño propio, puede habilitar el cifrado en tránsito en un clúster de caché configurando el parámetro TransitEncryptionEnabled en true (CLI:--transit-encryption-enabled) al crear el clúster de caché mediante la operación CreateCacheCluster (CLI:create-cache-cluster).

Información general sobre el cifrado en tránsito

El cifrado ElastiCache en tránsito de Amazon es una función que te permite aumentar la seguridad de tus datos en los puntos más vulnerables, cuando están en tránsito de un lugar a otro. Como se requiere cierto procesamiento para cifrar y descifrar los datos en los puntos de enlace, habilitar el cifrado en tránsito puede afectar al rendimiento. Debe comparar los datos con y sin cifrado en tránsito para determinar el impacto en el rendimiento de los casos de uso.

ElastiCache el cifrado en tránsito implementa las siguientes funciones:

  • Conexiones de cliente cifradas: las conexiones de los clientes a los nodos de caché están TLS cifradas.

  • Conexiones de servidor cifradas: los datos que se mueven entre los nodos de un clúster están cifrados.

  • Autenticación de servidores: los clientes pueden autenticar que se encuentran conectados al servidor correcto.

  • Autenticación de clientes: mediante la OSS AUTH función Valkey y Redis, el servidor puede autenticar los clientes.

Condiciones de cifrado en tránsito (Valkey y Redis) OSS

Al planificar la implementación de un clúster de diseño propio, debes tener en cuenta las siguientes restricciones del cifrado en ElastiCache tránsito de Amazon:

  • El cifrado en tránsito se admite en los grupos de replicación que ejecutan Valkey 7.2 y versiones posteriores, y en las OSS versiones 3.2.6, 4.0.10 y posteriores de Redis.

  • Los grupos de replicación que ejecutan Valkey 7.2 y versiones posteriores y Redis 7 y versiones posteriores admiten la modificación de la configuración de cifrado en tránsito para un clúster existente. OSS

  • El cifrado en tránsito solo se admite para los grupos de replicación que se ejecutan en AmazonVPC.

  • El cifrado en tránsito no es compatible con los grupos de replicación que ejecutan los siguientes tipos de nodos: M1, M2.

    Para obtener más información, consulte Tipos de nodos compatibles.

  • El cifrado en tránsito se habilita estableciendo explícitamente el parámetro TransitEncryptionEnabled en true.

  • Asegúrese de que su cliente de almacenamiento en caché sea compatible con la TLS conectividad y de que la haya habilitado en la configuración del cliente.

  • El uso de las versiones TLS 1.0 y TLS 1.1 antiguas está obsoleto en todas AWS las regiones para las ElastiCache versiones 6 y posteriores. ElastiCache seguirá siendo compatible con las versiones TLS 1.0 y 1.1 hasta el 8 de mayo de 2025. Los clientes deben actualizar su software de cliente antes de esa fecha.

Condiciones de cifrado en tránsito (Memcached)

Al planificar la implementación de un clúster de diseño propio, debes tener en cuenta las siguientes restricciones del cifrado en ElastiCache tránsito de Amazon:

  • El cifrado en tránsito es compatible con los clústeres que ejecutan la versión 1.6.12 y posteriores de Memcached.

  • El cifrado en tránsito es compatible con las versiones 1.2 y 1.3 de Transport Layer Security (TLS).

  • El cifrado en tránsito solo se admite para los clústeres que se ejecutan en AmazonVPC.

  • El cifrado en tránsito no es compatible con los grupos de replicación que ejecutan los siguientes tipos de nodos: M1, M2, M3, R3, T2.

    Para obtener más información, consulte Tipos de nodos compatibles.

  • El cifrado en tránsito se habilita estableciendo explícitamente el parámetro TransitEncryptionEnabled en true.

  • Solamente puede habilitar el cifrado en tránsito de un clúster en el momento de su creación. El cifrado en tránsito no se puede habilitar y desactivar modificando un clúster.

  • Asegúrese de que su cliente de almacenamiento en caché sea compatible con la TLS conectividad y de que la haya habilitado en la configuración del cliente.

Prácticas recomendadas de cifrado en tránsito

  • Debido al procesamiento requerido para cifrar y descifrar los datos en los puntos de enlace, la implementación del cifrado en tránsito puede reducir el rendimiento. Compare sus datos con y sin cifrado en tránsito para determinar el impacto en el rendimiento de la implementación.

  • Dado que crear nuevas conexiones puede resultar caro, puede reducir el impacto del cifrado en tránsito en el rendimiento si conserva las conexiones. TLS

Más opciones de Valkey y Redis OSS

Para obtener más información sobre las opciones disponibles para Valkey y RedisOSS, consulta los siguientes enlaces.

Habilitar el cifrado en tránsito para Memcached

Para habilitar el cifrado en tránsito al crear un clúster de Memcached a través de la Consola de administración de AWS , seleccione las siguientes opciones:

  • Elija Memcached como motor.

  • Elija la versión del motor 1.6.12 o posterior.

  • En Encryption in transit (Cifrado en tránsito), elija Enable (Habilitar).

Para conocer el step-by-step proceso, consulte. Crear un clúster para Valkey o Redis OSS

Conexión a nodos habilitados con cifrado en tránsito mediante Openssl (Memcached)

Para acceder a los datos desde nodos ElastiCache (Memcached) habilitados con el cifrado en tránsito, debe utilizar clientes que funcionen con Secure Socket Layer (). SSL También puede utilizar Openssl s_client en Amazon Linux y Amazon Linux 2.

Para utilizar Openssl s_client para conectarse a un clúster de Memcached que tiene habilitado el cifrado en tránsito en Amazon Linux 2 o Amazon Linux:

/usr/bin/openssl s_client -connect memcached-node-endpoint:memcached-port

Crear un cliente de TLS Memcached mediante Java

Para crear un cliente en TLS modo, haga lo siguiente para inicializarlo con lo apropiado: SSLContext

import java.security.KeyStore; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; import net.spy.memcached.AddrUtil; import net.spy.memcached.ConnectionFactoryBuilder; import net.spy.memcached.MemcachedClient; public class TLSDemo { public static void main(String[] args) throws Exception { ConnectionFactoryBuilder connectionFactoryBuilder = new ConnectionFactoryBuilder(); // Build SSLContext TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init((KeyStore) null); SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, tmf.getTrustManagers(), null); // Create the client in TLS mode connectionFactoryBuilder.setSSLContext(sslContext); MemcachedClient client = new MemcachedClient(connectionFactoryBuilder.build(), AddrUtil.getAddresses("mycluster.fnjyzo.cfg.use1.cache.amazonaws.com:11211")); // Store a data item for an hour. client.set("theKey", 3600, "This is the data value"); } }

Crear un cliente de TLS Memcached mediante PHP

Para crear un cliente en TLS modo, haga lo siguiente para inicializarlo con lo apropiado: SSLContext

<?php /** * Sample PHP code to show how to create a TLS Memcached client. In this example we * will use the Amazon ElastiCache Auto Descovery feature, but TLS can also be * used with a Static mode client. * See Using the ElastiCache Cluster Client for PHP (https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/AutoDiscovery.Using.ModifyApp.PHP.html) for more information * about Auto Discovery and persistent-id. */ /* Configuration endpoint to use to initialize memcached client. * this is only an example */ $server_endpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"; /* Port for connecting to the cluster. * This is only an example */ $server_port = 11211; /* Initialize a persistent Memcached client and configure it with the Dynamic client mode */ $tls_client = new Memcached('persistent-id'); $tls_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_MODE); /* Add the memcached's cluster server/s */ $tls_client->addServer($server_endpoint, $server_port); /* Configure the client to use TLS */ if(!$tls_client->setOption(Memcached::OPT_USE_TLS, 1)) { echo $tls_client->getLastErrorMessage(), "\n"; exit(1); } /* Set your TLS context configurations values. * See MemcachedTLSContextConfig in memcached-api.php for all configurations */ $tls_config = new MemcachedTLSContextConfig(); $tls_config->hostname = '*.mycluster.fnjyzo.use1.cache.amazonaws.com'; $tls_config->skip_cert_verify = false; $tls_config->skip_hostname_verify = false; /* Use the created TLS context configuration object to create OpenSSL's SSL_CTX and set it to your client. * Note: These TLS context configurations will be applied to all the servers connected to this client. */ $tls_client->createAndSetTLSContext((array)$tls_config); /* test the TLS connection with set-get scenario: */ /* store the data for 60 seconds in the cluster. * The client will decide which cache host will store this item. */ if($tls_client->set('key', 'value', 60)) { print "Successfully stored key\n"; } else { echo "Failed to set key: ", $tls_client->getLastErrorMessage(), "\n"; exit(1); } /* retrieve the key */ if ($tls_client->get('key') === 'value') { print "Successfully retrieved key\n"; } else { echo "Failed to get key: ", $tls_client->getLastErrorMessage(), "\n"; exit(1); }

Para obtener más información sobre el uso del PHP cliente, consulteInstalación de ElastiCache Cluster Client para .PHP.