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 de Valkey o Redis OSS sin servidor tienen habilitado el cifrado en tránsito. En los clústeres de autodiseño, puede habilitar el cifrado en tránsito en un grupo de réplica estableciendo el parámetro TransitEncryptionEnabled
en true
(CLI: --transit-encryption-enabled
) cuando cree el grupo de réplica. Puede hacerlo tanto si crea el grupo de replicación mediante la AWS Management Console AWS CLI, la o la ElastiCache API.
Todas las cachés sin servidor tienen activado el cifrado en tránsito. Para los clústeres de autodiseño, 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
).
Temas
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 cliente a los nodos de caché están cifradas con TLS.
-
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: con la característica AUTH de Valkey o Redis OSS, el servidor puede autenticar a los clientes.
Condiciones del 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 es compatible con grupos de replicación que ejecuten Valkey 7.2 y versiones posteriores, y Redis OSS versiones 3.2.6, 4.0.10 y posteriores.
-
Para un clúster existente, la modificación de la configuración del cifrado en tránsito es compatible con los grupos de replicación que ejecutan Valkey 7.2 y versiones posteriores, y Redis OSS versión 7 y posteriores.
-
El cifrado en tránsito solo es compatible con los grupos de reproducción que se ejecutan en una Amazon VPC.
-
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
entrue
. -
El cliente de almacenamiento en caché debe ser compatible con la conectividad TLS y esta debe estar habilitada en la configuración del cliente.
-
El uso de los antiguos TLS 1.0 y TLS 1.1 está obsoleto en todas AWS las regiones a partir de la versión 6. ElastiCache ElastiCache seguirá siendo compatible con TLS 1.0 y 1.1 hasta el 8 de mayo de 2025. Los clientes deben actualizar su software cliente antes de esa fecha.
Condiciones del 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 admite las versiones 1.2 y 1.3 de seguridad de la capa de transporte (TLS).
-
El cifrado en tránsito solo es compatible con los clústeres que se ejecutan en una Amazon VPC.
-
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
entrue
. -
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.
-
El cliente de almacenamiento en caché debe ser compatible con la conectividad TLS y esta debe estar habilitada 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.
-
Puede reducir el impacto en el rendimiento del cifrado en tránsito al mantener las conexiones TSL existentes, ya que la creación de conexiones nuevas puede consumir muchos recursos.
Más opciones de Valkey y Redis OSS
Para obtener más información sobre las opciones disponibles para Valkey y Redis OSS, consulte los siguientes enlaces.
Habilitación del 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. Creación de un clúster para Valkey o Redis OSS
Conexión a nodos habilitados con el cifrado en tránsito mediante Openssl (Memcached)
Para acceder a los datos desde ElastiCache los nodos de 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
Creación de un cliente TLS Memcached mediante Java
Para crear un cliente en modo TLS, 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"); } }
Creación de un cliente TLS Memcached mediante PHP
Para crear un cliente en modo TLS, haga lo siguiente para inicializarlo con lo adecuado: 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 cliente PHP, consulte Instalación del cliente de ElastiCache clúster para PHP.