Surveillez les ElastiCache clusters Amazon pour le chiffrement au repos - Recommandations AWS

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.

Surveillez les ElastiCache clusters Amazon pour le chiffrement au repos

Abhishek Agawane, Amazon Web Services

Résumé

Amazon ElastiCache est un service Amazon Web Services (AWS) qui fournit une solution de mise en cache performante, évolutive et rentable pour distribuer un stockage de données en mémoire ou un environnement de cache dans le cloud. Il extrait les données des magasins de données en mémoire à haut débit et à faible latence. Cette fonctionnalité en fait un choix populaire pour les cas d'utilisation en temps réel tels que la mise en cache, les magasins de sessions, les jeux, les services géo-spatiaux, les analyses en temps réel et les files d'attente. ElastiCache propose des magasins de données Redis et Memcached, qui fournissent tous deux des temps de réponse inférieurs à la milliseconde.

Le chiffrement des données permet d'empêcher les utilisateurs non autorisés de lire les données sensibles disponibles sur vos clusters Redis et leurs systèmes de stockage en cache associés. Cela inclut les données enregistrées sur un support persistant, appelées données au repos, et les données susceptibles d'être interceptées lorsqu'elles transitent par le réseau entre les clients et les serveurs de cache, appelées données en transit.

Vous pouvez activer le chiffrement au repos pour ElastiCache (Redis OSS) lorsque vous créez un groupe de réplication, en définissant le AtRestEncryptionEnabled paramètre sur. true Lorsque ce paramètre est activé, il chiffre le disque pendant les opérations de synchronisation, de sauvegarde et de swap, et chiffre les sauvegardes stockées dans Amazon Simple Storage Service (Amazon S3). Vous ne pouvez pas activer le chiffrement au repos sur un groupe de réplication existant. Lorsque vous créez un groupe de réplication, vous pouvez activer le chiffrement au repos de deux manières :

  • En choisissant l'option Par défaut, qui utilise le chiffrement géré par le service au repos.

  • En utilisant une clé gérée par le client et en fournissant l'ID de clé ou le nom de ressource Amazon (ARN) de AWS Key Management Service (AWS KMS).

Ce modèle fournit un contrôle de sécurité qui surveille les appels d'API et génère un événement Amazon EventBridge Events lors de l'CreateReplicationGroupopération. Cet événement appelle une AWS Lambda fonction qui exécute un script Python. La fonction obtient l'ID du groupe de réplication à partir de l'entrée JSON de l'événement et effectue les vérifications suivantes pour déterminer s'il existe un cluster non chiffré :

  • Vérifie si la AtRestEncryptionEnabled clé existe.

  • S'AtRestEncryptionEnabledil existe, vérifie la valeur pour voir si c'est le castrue.

  • Si la AtRestEncryptionEnabled valeur est définie surfalse, définit une variable qui suit les violations et envoie un message de violation à l'adresse e-mail que vous fournissez, en utilisant une notification Amazon Simple Notification Service (Amazon SNS).

Conditions préalables et limitations

Conditions préalables

  • Un actif Compte AWS.

  • Un compartiment S3 pour télécharger le code Lambda fourni.

  • Adresse e-mail à laquelle vous souhaitez recevoir des notifications de violation.

  • ElastiCache journalisation activée, pour accéder à tous les journaux de l'API.

Limites

  • Ce contrôle de détection est régional et doit être déployé dans chacune des régions Région AWS que vous souhaitez surveiller.

  • Le contrôle prend en charge les groupes de réplication qui s'exécutent dans un cloud privé virtuel (VPC).

  • Le contrôle prend en charge les groupes de réplication qui exécutent les types de nœuds suivants :

    • R7g, R6gd, R6g, R5, R4, R3

    • M7g, M6g, M5, M4, M3

    • T4, T3, T2

    • C7gn

Versions du produit

  • Supporte ElastiCache (Redis OSS) version 3.2.6 ou ultérieure, et Valkey 7.2 ou version ultérieure

Architecture

Architecture du flux de travail

Flux de travail pour la surveillance ElastiCache des clusters.
  1. L'utilisateur lance un groupe de ElastiCache réplication via le AWS Management Console, le AWS Command Line Interface (AWS CLI) ou un appel d'API.

  2. ElastiCache génère EventBridge des événements lorsque l'CreateReplicationGroup API est appelée.

  3. Une EventBridge règle déclenche et appelle la fonction Lambda pour vérifier la conformité.

  4. La fonction Lambda traite l'événement et vérifie si le chiffrement au repos est activé sur le cluster. ElastiCache

  5. Si une violation du chiffrement est détectée, la fonction Lambda publie un message de notification dans une rubrique SNS.

  6. Amazon SNS envoie une notification par e-mail aux administrateurs concernant la violation de conformité au chiffrement.

Automatisation et mise à l'échelle

  • Si vous l'utilisez AWS Organizations, vous pouvez l'utiliser AWS CloudFormation StackSetspour déployer ce modèle dans plusieurs comptes que vous souhaitez surveiller.

Outils

Services AWS

  • Amazon ElastiCache facilite la configuration, la gestion et le dimensionnement des environnements de cache en mémoire distribués dans le AWS Cloud. Il fournit un cache en mémoire performant, redimensionnable et économique, tout en éliminant la complexité associée au déploiement et à la gestion d'un environnement de cache distribué. ElastiCache fonctionne avec les moteurs Redis et Memcached.

  • AWS CloudFormationvous aide à modéliser et à configurer vos AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie. Vous pouvez utiliser un modèle pour décrire vos ressources et leurs dépendances, puis les lancer et les configurer ensemble sous forme de pile, au lieu de gérer les ressources individuellement. Vous pouvez gérer et approvisionner des piles sur plusieurs Comptes AWS et Régions AWS.

  • Amazon EventBridge fournit un flux d'événements système en temps quasi réel qui décrivent les modifications apportées aux AWS ressources. EventBridge prend connaissance des changements opérationnels au fur et à mesure qu'ils se produisent et prend les mesures correctives nécessaires, en envoyant des messages pour répondre à l'environnement, en activant des fonctions, en apportant des modifications et en capturant des informations d'état.

  • AWS Lambdaest un service de calcul qui prend en charge l'exécution de code sans provisionnement ni gestion de serveurs. Lambda exécute votre code uniquement lorsque cela est nécessaire et passe automatiquement de quelques requêtes par jour à des milliers par seconde. Vous payez uniquement le temps de calcul que vous utilisez. Vous n'exposez aucuns frais quand votre code n'est pas exécuté. 

  • Amazon SNS coordonne et gère l'envoi de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail. Les abonnés reçoivent tous les messages publiés dans les rubriques auxquelles ils sont abonnés, et tous les abonnés à une rubrique reçoivent les mêmes messages.

Code

Le code de ce modèle est disponible dans le référentiel GitHub Monitor Amazon ElastiCache clusters for at-rest encryption. Consultez la section Epics pour plus d'informations sur l'utilisation des fichiers du référentiel.

Bonnes pratiques

Déploiement

  • Assurez-vous que les appels AWS CloudTrail d' ElastiCache API sont enregistrés avant de déployer ce contrôle.

  • Il s'agit d'un contrôle régional ; déployez le contrôle dans chaque Région AWS endroit où vous l'utilisez ElastiCache.

  • Validez la solution dans dev/test des environnements avant de la déployer en production.

Sécurité

  • Pour un meilleur contrôle des clés de chiffrement, utilisez des clés KMS gérées par le client.

  • Vérifiez les autorisations Gestion des identités et des accès AWS (IAM) afin de garantir un accès avec le moins de privilèges pour le rôle d'exécution Lambda.

  • Configurez des alertes pour les messages figurant dans la file d'attente des lettres mortes.

Opérations

  • Définissez une conservation appropriée des journaux pour trouver un équilibre entre les besoins de conformité et les coûts.

  • Réglez la simultanéité réservée de Lambda pour l'ajuster en fonction de ElastiCache votre fréquence de création.

  • Abonnez plusieurs adresses e-mail à Amazon SNS pour recevoir des notifications d'équipe.

Surveillance

  • Passez en revue les CloudWatch alarmes Amazon pour vous assurer que les seuils d'alarme correspondent à vos besoins opérationnels.

  • Surveillez régulièrement la durée d'exécution des métriques Lambda et les taux d'erreur.

  • Auditez régulièrement les violations pour examiner les notifications de conformité en matière de chiffrement.

Épopées

Sous-tâcheDescriptionCompétences requises

Téléchargez le code depuis GitHub.

Clonez ou téléchargez le référentiel de code depuis GitHub. Le référentiel contient les fichiers index.py etelasticache_encryption_at_rest.yml.

Architecte du cloud

Créez des packages de déploiement Lambda.

Créez deux fichiers .zip à partir du code Python :

  • CreateElastiCache-EncryptionAtRest.zip, qui contientindex.py.

  • Utilisez la commande suivante :

    zip ElastiCache-EncryptionAtRest.zip index.py
Architecte du cloud

Téléchargez le code dans un compartiment S3.

  1. Créez un nouveau compartiment S3 ou utilisez un compartiment S3 existant pour télécharger le code Lambda.

  2. Compressez le code Lambda (index.py) et nommez-le. ElastiCache-EncryptionAtRest.zip

  3. Téléchargez le fichier .zip dans le compartiment S3. Ce compartiment doit se trouver dans le même compartiment Région AWS que les ressources que vous souhaitez évaluer.

Architecte du cloud

Déployez le CloudFormation modèle.

Ouvrez la CloudFormation console au même endroit Région AWS que le compartiment S3 et déployez le elasticache_encryption_at_rest.yml fichier fourni dans le référentiel de code. Dans l'épopée suivante, fournissez des valeurs pour les paramètres du modèle.

Architecte du cloud
Sous-tâcheDescriptionCompétences requises

Indiquez le nom du compartiment S3.

Entrez le nom du compartiment S3 que vous avez créé ou sélectionné dans le premier épisode épique. Ce compartiment S3 contient le fichier .zip pour le code Lambda et doit être Région AWS identique au modèle et à CloudFormation la ressource qui seront évalués. 

Architecte du cloud

Fournissez la clé S3.

Indiquez l'emplacement du fichier .zip de code Lambda dans votre compartiment S3, sans barres obliques (par exemple, ou). ElasticCache-EncryptionAtRest.zip controls/ElasticCache-EncryptionAtRest.zip

Architecte du cloud

Indiquez une adresse e-mail.

Indiquez une adresse e-mail active à laquelle vous souhaitez recevoir des notifications de violation. 

Architecte du cloud

Spécifiez un niveau de journalisation.

Spécifiez le niveau de journalisation et la verbosité.

  • Infodésigne des messages d'information détaillés sur la progression de l'application et ne doit être utilisé que pour le débogage.

  • Errordésigne les événements d'erreur susceptibles de permettre à l'application de continuer à fonctionner.

  • Warningdésigne les situations potentiellement dangereuses.

Architecte du cloud
Sous-tâcheDescriptionCompétences requises

Confirmez l'abonnement par e-mail.

Lorsque le CloudFormation modèle est déployé avec succès, il envoie un message d'abonnement à l'adresse e-mail que vous avez fournie. Pour recevoir des notifications, vous devez confirmer cet abonnement par e-mail.

Architecte du cloud

Résolution des problèmes

ProblèmeSolution

La fonction Lambda n'est pas déclenchée

Symptôme : aucune connexion ne se connecte CloudWatch après avoir créé ou modifié ElastiCache des clusters.

Solutions :

  • Vérifiez l' EventBridge état de la règle : 

    aws events describe-rule --name <rule-name>
  • Vérifiez que la politique basée sur les ressources Lambda autorise l'invocation. EventBridge

  • Vérifiez que le modèle EventBridge d'événement correspond aux appels ElastiCache d'API.

Aucune notification par e-mail

Symptôme : La fonction Lambda s'exécute correctement, mais vous ne recevez aucune notification par e-mail.

Solutions :

  • Confirmez votre abonnement Amazon SNS via le lien de confirmation par e-mail.

  • Vérifiez la présence d'e-mails Amazon SNS dans les dossiers de spam ou de courrier indésirable.

  • Vérifiez le nom de ressource Amazon (ARN) pour la rubrique Amazon SNS dans la variable d'environnement Lambda : OUTBOUND_TOPIC_ARN

  • Testez Amazon SNS manuellement : 

    aws sns publish --topic-arn <arn> --message "Test"

Problèmes d’autorisations

Symptôme : erreurs de refus d'accès dans les journaux des fonctions Lambda. CloudWatch

Solutions :

  • Vérifiez que le rôle d'exécution Lambda dispose des autorisations de ElastiCache lecture requises.

  • Vérifiez que la politique AWS KMS clé inclut le rôle d'exécution Lambda.

  • Assurez-vous que la politique relative aux rubriques Amazon SNS autorise Lambda à publier.

Ressources connexes