Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
ElastiCache chiffrement en transit () TLS
Pour garantir la sécurité de vos données, Amazon ElastiCache et Amazon EC2 fournissent des mécanismes de protection contre tout accès non autorisé à vos données sur le serveur. En fournissant une fonctionnalité de chiffrement en transit, vous ElastiCache disposez d'un outil que vous pouvez utiliser pour protéger vos données lorsqu'elles sont déplacées d'un endroit à un autre.
Le chiffrement en transit est activé dans tous les caches OSS sans serveur Valkey ou Redis. Pour les clusters conçus par vos soins, vous pouvez activer le chiffrement en transit sur un groupe de réplication en définissant le paramètre TransitEncryptionEnabled
sur true
(CLI:--transit-encryption-enabled
) lorsque vous créez le groupe de réplication. Vous pouvez le faire, que vous créiez le groupe de réplication à l'aide du AWS Management Console AWS CLI, ou du ElastiCache API.
Le chiffrement en transit est activé pour tous les caches sans serveur. Pour les clusters conçus par vos soins, vous pouvez activer le chiffrement en transit sur un cluster de cache en définissant le paramètre sur true
(CLI:--transit-encryption-enabled
) lorsque vous créez le cluster de cache TransitEncryptionEnabled
à l'aide de l'opération CreateCacheCluster
(CLI:create-cache-cluster
).
Rubriques
- Présentation du chiffrement en transit
- Conditions de chiffrement en transit (Valkey et Redis) OSS
- Conditions de chiffrement en transit (Memcached)
- Bonnes pratiques en matière de chiffrement en transit
- Autres options Valkey et Redis OSS
- Activation du chiffrement en transit pour Memcached
- Activation du chiffrement en transit
- Connexion à ElastiCache (Valkey) ou Amazon ElastiCache (RedisOSS) avec chiffrement en transit à l'aide de valkey-cli
- Activation du chiffrement en transit sur un cluster Redis OSS conçu par ses soins à l'aide de Python
- Bonnes pratiques lors de l’activation du chiffrement en transit
- Connexion à des nœuds activés avec le chiffrement en transit à l'aide d'OpenSSL (Memcached)
- Création d'un client TLS Memcached à l'aide de Java
- Création d'un client TLS Memcached à l'aide de PHP
Présentation du chiffrement en transit
Le chiffrement ElastiCache en transit d'Amazon est une fonctionnalité qui vous permet de renforcer la sécurité de vos données aux points les plus vulnérables, lorsqu'elles sont en transit d'un endroit à un autre. Puisque certains traitements nécessitaient de chiffrer et de déchiffrer les données aux points de terminaison, l'activation du chiffrement en transit peut avoir un certain impact sur la performance. Vous devez référencer vos données avec et sans le chiffrement en transit pour déterminer l'impact sur la performance pour vos cas d'utilisation.
ElastiCache le chiffrement en transit met en œuvre les fonctionnalités suivantes :
-
Connexions client cryptées : les connexions client aux nœuds de cache sont TLS cryptées.
-
Connexions serveur chiffrées : les données transférées entre les nœuds d’un cluster sont chiffrées.
-
Authentification du serveur : les clients peuvent authentifier leur connexion au bon serveur.
-
Authentification du client : à l'aide des OSS AUTH fonctionnalités Valkey et Redis, le serveur peut authentifier les clients.
Conditions de chiffrement en transit (Valkey et Redis) OSS
Les contraintes suivantes relatives au chiffrement ElastiCache en transit d'Amazon doivent être prises en compte lorsque vous planifiez l'implémentation de votre propre cluster :
-
Le chiffrement en transit est pris en charge sur les groupes de réplication exécutant Valkey 7.2 et versions ultérieures, et Redis OSS versions 3.2.6, 4.0.10 et ultérieures.
-
La modification du paramètre de chiffrement en transit, pour un cluster existant, est prise en charge sur les groupes de réplication exécutant Valkey 7.2 et versions ultérieures, et Redis OSS version 7 et versions ultérieures.
-
Le chiffrement en transit n'est pris en charge que pour les groupes de réplication exécutés sur un AmazonVPC.
-
Le chiffrement en transit n'est pas pris en charge pour les groupes de réplication exécutant les types de nœuds suivants : M1, M2.
Pour de plus amples informations, veuillez consulter Types de nœuds pris en charge.
-
Le chiffrement en transit est activé en définissant explicitement le paramètre
TransitEncryptionEnabled
surtrue
. -
Assurez-vous que votre client de mise en cache prend en charge TLS la connectivité et que vous l'avez activée dans la configuration du client.
-
L'utilisation des anciennes versions TLS 1.0 et TLS 1.1 est déconseillée dans toutes les AWS régions pour les ElastiCache versions 6 et supérieures. ElastiCache continuera à prendre en charge les versions TLS 1.0 et 1.1 jusqu'au 8 mai 2025. Les clients doivent mettre à jour leur logiciel client avant cette date.
Conditions de chiffrement en transit (Memcached)
Les contraintes suivantes relatives au chiffrement ElastiCache en transit d'Amazon doivent être prises en compte lorsque vous planifiez l'implémentation de votre propre cluster :
-
Le chiffrement en transit est pris en charge sur les clusters exécutant Memcached versions 1.6.12 et ultérieures.
-
Le chiffrement en transit prend en charge les versions 1.2 et 1.3 de Transport Layer Security (TLS).
-
Le chiffrement en transit n'est pris en charge que pour les clusters exécutés sur un AmazonVPC.
-
Le chiffrement en transit n'est pas pris en charge pour les groupes de réplication exécutant les types de nœuds suivants : M1, M2, M3, R3, T2.
Pour de plus amples informations, veuillez consulter Types de nœuds pris en charge.
-
Le chiffrement en transit est activé en définissant explicitement le paramètre
TransitEncryptionEnabled
surtrue
. -
Vous pouvez activer le chiffrement en transit sur un cluster uniquement lors de la création du cluster. Vous ne pouvez pas activer et désactiver le chiffrement en transit en modifiant un cluster.
-
Assurez-vous que votre client de mise en cache prend en charge TLS la connectivité et que vous l'avez activée dans la configuration du client.
Bonnes pratiques en matière de chiffrement en transit
-
Puisque le traitement nécessitait de chiffrer et de déchiffrer les données aux points de terminaison, l'implémentation du chiffrement en transit peut réduire la performance. Référencez le chiffrement en transit en comparaison avec l'absence de chiffrement sur vos propres données pour déterminer l'impact sur la performance pour votre cas d'utilisation.
-
La création de nouvelles connexions pouvant être coûteuse, vous pouvez réduire l'impact du chiffrement en transit sur les performances en maintenant vos TLS connexions.
Autres options Valkey et Redis OSS
Pour plus d'informations sur les options disponibles pour Valkey et RedisOSS, consultez les liens suivants.
Activation du chiffrement en transit pour Memcached
Pour activer le chiffrement en transit lors de la création d'un cluster Memcached à l'aide de la Console de gestion AWS , effectuez les sélections suivantes :
-
Choisissez Memcached comme moteur.
-
Choisissez la version de moteur 1.6.12 ou ultérieure.
-
Sous Encryption in transit (Chiffrement en transit), choisissez Enable (Activer).
Pour le step-by-step processus, voirCréation d'un cluster pour Valkey ou Redis OSS.
Connexion à des nœuds activés avec le chiffrement en transit à l'aide d'OpenSSL (Memcached)
Pour accéder aux données à partir de nœuds ElastiCache (Memcached) activés avec le chiffrement en transit, vous devez utiliser des clients qui fonctionnent avec Secure Socket Layer (). SSL Vous pouvez également utiliser openssl s_client sur Amazon Linux et Amazon Linux 2.
Pour utiliser openssl s_client afin de se connecter à un cluster Memcached activé avec le chiffrement en transit sur Amazon Linux 2 ou Amazon Linux :
/usr/bin/openssl s_client -connect
memcached-node-endpoint
:memcached-port
Création d'un client TLS Memcached à l'aide de Java
Pour créer un client en TLS mode, procédez comme suit pour initialiser le client avec le mode approprié 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"); } }
Création d'un client TLS Memcached à l'aide de PHP
Pour créer un client en TLS mode, procédez comme suit pour initialiser le client avec le mode approprié 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); }
Pour plus d'informations sur l'utilisation du PHP client, consultezInstallation du client de cluster ElastiCache pour .NET.