Assurez-vous que les équilibreurs de charge AWS utilisent des protocoles d'écoute sécurisés (HTTPS, SSL/TLS) - 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.

Assurez-vous que les équilibreurs de charge AWS utilisent des protocoles d'écoute sécurisés (HTTPS, SSL/TLS)

Créée par Chandini Penmetsa (AWS) et Purushotham GK (AWS)

Environnement : Production

Technologies : sécurité, identité, conformité

Charge de travail : toutes les autres charges de travail

Services AWS : Amazon SNS ; AWS CloudWatch ; CloudFormation Amazon ; AWS Lambda ; Elastic Load Balancing (ELB)

Récapitulatif

Sur le cloud Amazon Web Services (AWS), Elastic Load Balancing distribue automatiquement le trafic applicatif entrant sur plusieurs cibles, telles que les instances Amazon Elastic Compute Cloud (Amazon EC2), les conteneurs, les adresses IP et les fonctions AWS Lambda. Les équilibreurs de charge utilisent des écouteurs pour définir les ports et les protocoles utilisés par l'équilibreur de charge pour accepter le trafic provenant des utilisateurs. Les équilibreurs de charge d'application prennent les décisions de routage au niveau de la couche application et utilisent les protocoles HTTP/HTTPS. Les équilibreurs de charge réseau prennent les décisions de routage au niveau de la couche transport et utilisent les protocoles TCP (Transmission Control Protocol), TLS (Transport Layer Security), UDP (User Datagram Protocol) ou TCP_UDP. Les équilibreurs de charge classiques prennent les décisions de routage soit au niveau de la couche transport, à l'aide des protocoles TCP ou SSL (Secure Sockets Layer), soit au niveau de la couche application, à l'aide du protocole HTTP/HTTPS.

Votre entreprise a peut-être une exigence de sécurité ou de conformité selon laquelle les équilibreurs de charge n'acceptent le trafic provenant des utilisateurs que sur des protocoles sécurisés, tels que HTTPS ou SSL/TLS.

Ce modèle fournit un contrôle de sécurité qui utilise une EventBridge règle Amazon pour surveiller les appels d'ModifyListenerAPI pour les équilibreurs de charge d'application CreateListener et les équilibreurs de charge réseau, et les appels d'API et d'CreateLoadBalancerAPI pour les CreateLoadBalancerListeners équilibreurs de charge classiques. Si HTTP, TCP/UDP ou TCP_UDP est utilisé pour le protocole d'écoute de l'équilibreur de charge, le contrôle invoque une fonction Lambda. La fonction Lambda publie un message dans une rubrique Amazon Simple Notification Service (Amazon SNS) pour envoyer une notification contenant les détails de l'équilibreur de charge.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif

  • Adresse e-mail à laquelle vous souhaitez recevoir la notification de violation

  • Un bucket Amazon Simple Storage Service (Amazon S3) pour stocker le fichier .zip du code Lambda

Limites

  • Ce contrôle de sécurité ne vérifie pas les équilibreurs de charge existants à moins qu'une mise à jour ne soit apportée aux écouteurs des équilibreurs de charge.

  • Ce contrôle de sécurité est régional et doit être déployé dans les régions AWS que vous souhaitez surveiller.

Architecture

Pile technologique cible

  • Fonction Lambda

  • Rubrique Amazon SNS

  • EventBridge règle

Architecture cible

Automatisation et mise à l'échelle

  • Si vous utilisez AWS Organizations, vous pouvez utiliser AWS Cloudformation StackSets pour déployer ce modèle sur plusieurs comptes que vous souhaitez qu'il surveille.

Outils

  • AWS CloudFormation — AWS CloudFormation est un service qui vous aide à modéliser et à configurer les ressources AWS en utilisant l'infrastructure sous forme de code.

  • Amazon EventBridge — Amazon EventBridge fournit un flux de données en temps réel à partir de vos propres applications, d'applications SaaS (software as a service) et de services AWS, en acheminant ces données vers des cibles telles que les fonctions Lambda.

  • AWS Lambda — Lambda prend en charge l'exécution de code sans provisionner ni gérer de serveurs.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets hautement évolutif qui peut être utilisé pour un large éventail de solutions de stockage, notamment les sites Web, les applications mobiles, les sauvegardes et les lacs de données.

  • Amazon SNS — Amazon Simple Notification Service (Amazon SNS) coordonne et gère la distribution ou 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.

Bonnes pratiques

Assurez-vous que la rubrique SNS utilisée n'est pas accessible au public. Pour plus d'informations, consultez la documentation AWS.

Épopées

TâcheDescriptionCompétences requises

Définissez le compartiment S3.

Sur la console Amazon S3, choisissez ou créez un compartiment S3 avec un nom unique qui ne contient pas de barres obliques. Le nom d'un compartiment S3 est unique au monde et l'espace de noms est partagé par tous les comptes AWS. Votre compartiment S3 doit se trouver dans la même région que l'équilibreur de charge en cours d'évaluation.

Architecte du cloud

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

Téléchargez le fichier .zip de code Lambda fourni dans la section « Pièces jointes » dans le compartiment S3 défini.

Architecte du cloud

Déployez le CloudFormation modèle AWS.

Sur la CloudFormation console AWS, dans la même région AWS que le compartiment S3, déployez le modèle fourni dans la section « Pièces jointes ». Dans l'épopée suivante, indiquez les valeurs des paramètres.

Architecte du cloud
TâcheDescriptionCompétences requises

Nommez le compartiment S3.

Entrez le nom du compartiment S3 que vous avez créé dans le premier épisode épique.

Architecte du cloud

Fournissez le préfixe Amazon S3.

Indiquez l'emplacement du fichier .zip de code Lambda dans votre compartiment S3, sans barres obliques (par exemple,). <directory>/<file-name>.zip

Architecte du cloud

Indiquez l'ARN de la rubrique SNS.

Indiquez le sujet Amazon Resource Name (ARN) du SNS si vous souhaitez utiliser un sujet SNS existant pour les notifications de violation. Pour créer une nouvelle rubrique SNS, conservez la valeur comme None (valeur par défaut).

Architecte du cloud

Indiquez une adresse e-mail.

Fournissez une adresse e-mail active pour recevoir les notifications Amazon SNS.

Architecte du cloud

Définissez le niveau de journalisation.

Définissez le niveau et la fréquence de journalisation pour votre fonction Lambda. Infodésigne des messages d'information détaillés sur l'état d'avancement de l'application. Errordésigne les événements d'erreur susceptibles de permettre à l'application de continuer à fonctionner. Warningdésigne les situations potentiellement dangereuses.

Architecte du cloud
TâcheDescriptionCompétences requises

Téléchargez le modèle .

Téléchargez le CloudFormation modèle fourni dans la section Pièces jointes.

Architecte du cloud

Créez la pile.

Dans la même région que le compartiment S3, accédez à la console de CloudFormation service et déployez le modèle téléchargé. Reportez-vous à l'épopée précédente pour plus de détails sur les paramètres.

Architecte du cloud

Vérifiez les ressources.

Une fois la pile complètement créée, accédez à l'onglet Ressources et vérifiez les ressources. Le modèle créera les ressources suivantes :

  • EventBridge règle

  • Fonction Lambda

  • Rôle d'exécution Lambda

  • Autorisation d'appel Lambda

Architecte du cloud
TâcheDescriptionCompétences requises

Confirmez votre abonnement.

Lorsque le modèle est déployé avec succès, si une nouvelle rubrique SNS a été créée, un e-mail d'abonnement est envoyé à l'adresse e-mail fournie dans les paramètres. Vous devez confirmer cet abonnement par e-mail pour recevoir des notifications de violation.

Architecte du cloud

Résolution des problèmes

ProblèmeSolution

La création de la pile a échoué. Une erreur s'est produite pendant GetObject. Code d'erreur S3 : PermanentRedirect. Message d'erreur S3 : Le compartiment se trouve dans cette région : xx-xxxx-1. Veuillez utiliser cette région pour réessayer la demande.

Assurez-vous que la région du compartiment S3 et la région dans laquelle la pile est déployée sont identiques.

La création de la pile a échoué. Le paramètre d'exécution de python3.6 n'est plus pris en charge pour créer ou mettre à jour des fonctions AWS Lambda.

Mettez à jour le modèle téléchargé à la ligne 186 de la version 3.6 de Python à la version 3.9.

Ressources connexes

Pièces jointes

Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip