View a markdown version of this page

ElastiCache chiffrement en transit (TLS) - Amazon ElastiCache

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 proposent des mécanismes de protection contre tout accès non autorisé à vos données sur le serveur. En fournissant une capacité de cryptage 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é pour tous les caches sans serveur Valkey ou Redis OSS. Pour les clusters basés sur des nœuds, 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' Console de gestion AWS aide de l' AWS CLI API ou de l' ElastiCache API.

Le chiffrement en transit est activé pour tous les caches sans serveur. Pour les clusters basés sur des nœuds, vous pouvez activer le chiffrement en transit sur un cluster en définissant le paramètre sur true (CLI :--transit-encryption-enabled) lorsque vous créez le cluster TransitEncryptionEnabled à l'aide de l'opération CreateCacheCluster (CLI :create-cache-cluster).

In-transit présentation du chiffrement

Le chiffrement ElastiCache en transit d'Amazon est une fonctionnalité qui vous permet de renforcer la sécurité de vos données à leurs 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 chiffrées : les connexions client aux nœuds de cache sont chiffrées à l’aide du protocole TLS.

  • 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 de la fonction Valkey et Redis OSS AUTH, le serveur peut authentifier les clients.

Note

ElastiCache ne prend pas en charge le mTLS (TLS mutuel).

Enregistrement de la transparence des certificats

ElastiCache fournit un certificat TLS qui inclut le nom du cluster pour le point de terminaison de chaque cluster sur lequel le chiffrement en transit est activé. AWS Certificate Manager enregistre les certificats TLS approuvés par le public dans des journaux de transparence des certificats publics, accessibles uniquement en ajout. Par conséquent, le nom d'un cluster pour lequel le chiffrement en transit est activé apparaît dans les journaux publics de transparence des certificats. N'incluez pas d'informations confidentielles ou sensibles dans les noms de clusters. Pour plus d'informations sur la journalisation de la transparence des certificats, consultez la section Journalisation de la transparence des AWS certificats dans le guide de l'utilisateur du gestionnaire de certificats.

In-transit conditions de chiffrement (Valkey et Redis OSS)

Les contraintes suivantes relatives au chiffrement ElastiCache en transit d'Amazon doivent être prises en compte lorsque vous planifiez la mise en œuvre de votre cluster basé sur des nœuds :

  • In-transit le chiffrement est pris en charge sur les groupes de réplication exécutant Valkey et Redis OSS.

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

    Si votre cluster exécute une version de moteur qui ne prend pas en charge cette modification, l'option de chiffrement en transit apparaît désactivée (grisée) dans la console de AWS gestion lorsque vous tentez de modifier le cluster. Pour activer le chiffrement en transit dans ce cas, vous devez mettre à niveau la version de votre moteur vers Valkey 7.2 ou version ultérieure, ou Redis OSS version 7 ou ultérieure.

  • In-transit le chiffrement n'est pris en charge que pour les groupes de réplication exécutés dans un Amazon VPC.

  • In-transit le chiffrement 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.

  • In-transit le chiffrement est activé en définissant explicitement le paramètre TransitEncryptionEnabled surtrue.

  • Assurez-vous que votre client de mise en cache prend en charge la connectivité TLS et que vous l’avez activée dans la configuration du client.

  • À compter du 28 avril 2026, la version TLS minimale prise en charge AWS sera mise à jour vers 1.2 ElastiCache pour Valkey version 7.2 et supérieure, et ElastiCache pour Redis OSS version 6 et supérieure. Les clients doivent mettre à jour leur logiciel client avant cette date. Cette mise à jour vous permet de répondre à vos besoins en matière de sécurité, de conformité et de réglementation.

In-transit conditions de chiffrement (Memcached)

Les contraintes suivantes relatives au chiffrement ElastiCache en transit d'Amazon doivent être prises en compte lorsque vous planifiez la mise en œuvre de votre cluster basé sur des nœuds :

  • In-transit le chiffrement est pris en charge sur les clusters exécutant les versions 1.6.12 et ultérieures de Memcached.

  • In-transit le chiffrement prend en charge les versions 1.2 et 1.3 de Transport Layer Security (TLS).

  • In-transit le chiffrement n'est pris en charge que pour les clusters exécutés dans un Amazon VPC.

  • In-transit le chiffrement 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.

  • In-transit le chiffrement 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 la connectivité TLS et que vous l’avez activée dans la configuration du client.

In-transit bonnes pratiques en matière de chiffrement

  • 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 étant parfois coûteuse, vous pouvez réduire l'impact du chiffrement en transit sur les performances en conservant vos connexions TLS.

  • N'incluez pas d'informations confidentielles ou sensibles dans les noms de clusters. Lorsque vous activez le chiffrement en transit, le certificat TLS du cluster inclut le nom du cluster et AWS Certificate Manager enregistre ce certificat dans les journaux publics de transparence des certificats.

Autres options de Valkey et Redis OSS

Pour plus d'informations sur les options disponibles pour Valkey et Redis OSS, 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 processus étape par étape, voirCréation d'un cluster pour Valkey ou Redis OSS.

Connexion aux nœuds activée avec le chiffrement en transit à l'aide d'Openssl (Memcached)

Pour accéder aux données depuis ElastiCache les nœuds Memcached dotés du chiffrement en transit, vous devez utiliser des clients qui fonctionnent avec le protocole SSL (Secure Socket Layer). 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 Memcached en mode TLS avec Java

Pour créer un client en mode TLS, procédez comme suit pour initialiser le client avec le contexte SSLContext approprié :

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 Memcached en mode TLS avec PHP

Pour créer un client en mode TLS, procédez comme suit pour initialiser le client avec le contexte SSLContext approprié :

<?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 client PHP, consultez Installation du client de ElastiCache cluster pour PHP.