Notifications d'environnement Elastic Beanstalk avec Amazon SNS - AWS Elastic Beanstalk

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.

Notifications d'environnement Elastic Beanstalk avec Amazon SNS

Vous pouvez configurer votre environnement AWS Elastic Beanstalk pour utiliser Amazon Simple Notification Service (Amazon SNS) et vous informer des événements importants qui affectent votre application. Pour recevoir des e-mails d'AWS lorsqu'une erreur survient ou que l'état de votre environnement change, spécifiez une adresse e-mail lorsque vous créez un environnement ou ultérieurement.

Note

Elastic Beanstalk utilise Amazon SNS pour les notifications. Pour de plus amples informations sur la tarification Amazon SNS, veuillez consulter https://aws.amazon.com/sns/pricing/.

Lorsque vous configurez des notifications pour votre environnement, Elastic Beanstalk crée une rubrique Amazon SNS pour votre environnement en votre nom. Pour envoyer des messages à une rubrique Amazon SNS, Elastic Beanstalk doit disposer de l'autorisation requise. Pour de plus amples informations, veuillez consulter Configuration des autorisations d'envoi de notifications.

Lorsqu'un événement notable se produit, Elastic Beanstalk envoie un message à la rubrique. Ensuite, Amazon SNS transmet les messages qu'il reçoit aux abonnés à la rubrique. Les événements importants incluent les erreurs de création d'environnement et toutes les modifications de l'état d'un environnement ou d'une instance. Les événements relatifs à des opérations Amazon EC2 Auto Scaling (comme l'ajout et la suppression d'instances dans l'environnement) et les autres événements informatifs ne déclenchent pas l'envoi de notifications.

Envoi de notifications Amazon SNS par e-mail

Vous pouvez entrer une adresse e-mail dans la console Elastic Beanstalk lorsque vous créez un environnement ou quelque temps après. Cela créera une rubrique Amazon SNS et vous y abonnera. Elastic Beanstalk gère le cycle de vie de la rubrique et la supprime lorsque votre environnement est arrêté ou lorsque vous supprimez votre adresse e-mail de la console de gestion de l'environnement.

L'espace de noms aws:elasticbeanstalk:sns:topics fournit des options permettant de configurer une rubrique Amazon SNS à l'aide de fichiers de configuration, d'une interface de ligne de commande (CLI) ou d'un kit SDK. En employant l'une de ces méthodes, vous pouvez configurer le type d'abonné et le point de terminaison. Pour le type d'abonné, vous pouvez choisir une file d'attente Amazon SQS ou une URL HTTP.

Vous pouvez seulement activer ou désactiver les notifications Amazon SNS. Selon la taille et la composition de votre environnement, la fréquence des notifications envoyées à la rubrique peut être élevée. Pour configurer les notifications à envoyer dans des cas précis, vous disposez d'autres options. Vous pouvez définir des règles axées sur les événements avec Amazon EventBridge qui vous avertit lorsque Elastic Beanstalk émet des événements répondant à des critères spécifiques. En variante, vous pouvez configurer votre environnement de sorte qu'il publie des métriques personnalisées et définir des alarmes Amazon CloudWatch pour être informé lorsque ces métriques atteignent le seuil de défectuosité.

Configuration des notifications à l'aide de la console Elastic Beanstalk

Vous pouvez entrer une adresse e-mail dans la console Elastic Beanstalk pour créer une rubrique Amazon SNS pour votre environnement.

Pour configurer les notifications dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk et, dans la liste Regions (Régions), sélectionnez votre Région AWS.

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Mises à jour, surveillance et journalisation, sélectionnez Modifier.

  5. Faites défiler jusqu'à la section Notifications par e-mail.

  6. Entrez une adresse e-mail.

  7. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

Si vous saisissez une adresse e-mail pour les notifications, Elastic Beanstalk crée une rubrique Amazon SNS pour votre environnement et ajoute un abonnement. Amazon SNS envoie un e-mail à l'adresse indiquée afin de confirmer l'abonnement. Vous devez cliquer sur le lien figurant dans l'e-mail de confirmation afin d'activer l'abonnement et de recevoir les notifications.

Configuration des notifications à l'aide des options de configuration

Utilisez les options de l'espace de noms aws:elasticbeanstalk:sns:topics afin de configurer les notifications Amazon SNS pour votre environnement. Vous pouvez définir ces options à l'aide de fichiers de configuration, d'une CLI ou d'un kit SDK.

  • Point de terminaison de notification : l'adresse e-mail, la file d'attente Amazon SQS ou l'URL à laquelle les notifications doivent être envoyées. Si vous définissez cette option, une file d'attente SQS et un abonnement pour le point de terminaison spécifié sont créés. Si le point de terminaison n'est pas une adresse e-mail, vous devez également définir l'option Notification Protocol. SNS valide la valeur de Notification Endpoint en fonction de la valeur de Notification Protocol. Si vous configurez plusieurs fois cette option, vous créez des abonnements supplémentaires à la rubrique. Si vous supprimez cette option, la rubrique est supprimée.

  • Protocole de notification : le protocole qui est utilisé pour envoyer les notifications au Notification Endpoint. La valeur par défaut de cette option est email. Définissez cette option sur email-json pour envoyer des e-mails au format JSON, sur http ou https pour publier les notifications au format JSON à un point de terminaison HTTP, ou sur sqs pour envoyer les notifications à une file d'attente SQS.

    Note

    Les notifications AWS Lambda ne sont pas prises en charge.

  • ARN de rubrique de notification : une fois que vous avez défini un point de terminaison de notification pour votre environnement, consultez ce paramètre afin d'obtenir l'ARN de la rubrique SNS. Vous pouvez également définir cette option afin d'utiliser une rubrique SNS existante pour les notifications. La rubrique que vous associez à votre environnement via cette option n'est pas supprimée lorsque l'option est modifiée ou que l'environnement est arrêté.

    Pour configurer les notifications Amazon SNS, vous devez disposer des autorisations requises. Si votre utilisateur IAM utilise la stratégie utilisateur gérée AdministratorAccess-AWSElasticBeanstalk d'Elastic Beanstalk, vous disposez déjà des autorisations requises pour configurer la rubrique Amazon SNS par défaut créée par Elastic Beanstalk pour votre environnement. Toutefois, si vous configurez une rubrique Amazon SNS qu'Elastic Beanstalk ne gère pas, vous devez ajoutez la stratégie suivante à votre rôle utilisateur.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:SetTopicAttributes", "sns:GetTopicAttributes", "sns:Subscribe", "sns:Unsubscribe", "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }
  • Nom de rubrique de notification : définissez cette option pour personnaliser le nom de la rubrique Amazon SNS utilisée pour les notifications relatives à l'environnement. Si une rubrique portant le même nom existe déjà, Elastic Beanstalk associe cette rubrique à l'environnement.

    Avertissement

    Si vous associez une rubrique SNS existante à un environnement avec Notification Topic Name, Elastic Beanstalk supprimera la rubrique si vous arrêtez l'environnement ou modifiez ce paramètre ultérieurement.

    Si vous modifiez cette option, l'Notification Topic ARN est également modifié. Si une rubrique est déjà associée à l'environnement, Elastic Beanstalk supprime l'ancienne rubrique et crée une rubrique et un abonnement.

    En utilisant un nom de rubrique personnalisé, vous devez également fournir l'ARN d'une rubrique personnalisée créée en externe. Comme la stratégie utilisateur géré ne détecte pas automatiquement une rubrique avec un nom personnalisé, vous devez fournir des autorisations Amazon SNS personnalisées à vos utilisateurs IAM. Utilisez une stratégie semblable à celle utilisée pour un ARN de rubrique personnalisée, mais incluez les ajouts suivants :

    • Incluez deux autres actions dans la liste Actions, en particulier : sns:CreateTopic et sns:DeleteTopic

    • Si vous modifiez le Notification Topic Name d'une rubrique personnalisée à une autre, vous devez inclure les ARN des deux rubriques dans la liste Resource. En variante, incluez une expression régulière qui couvre les deux rubriques. Ainsi, Elastic Beanstalk dispose des autorisations pour supprimer l'ancienne rubrique et en créer une nouvelle.

La CLI EB et la console Elastic Beanstalk appliquent les valeurs recommandées pour les options précédentes. Vous devez supprimer ces paramètres si vous voulez utiliser des fichiers de configuration pour configurer la même chose. Consultez Valeurs recommandées pour plus de détails.

Configuration des autorisations d'envoi de notifications

Cette section présente les considérations de sécurité liées aux notifications envoyées avec Amazon SNS. Il existe deux cas distincts :

  • Utilisez la rubrique Amazon SNS par défaut qu'Elastic Beanstalk crée pour votre environnement.

  • Fournissez une rubrique Amazon SNS externe en utilisant les options de configuration.

La stratégie d'accès par défaut pour une rubrique Amazon SNS permet au seul propriétaire de la rubrique de la publier ou de s'y abonner. Toutefois, en utilisant la configuration de stratégie appropriée, Elastic Beanstalk peut être autorisé à publier sur une rubrique Amazon SNS dans l'un des deux cas décrits dans cette section. Vous trouverez davantage d'informations dans les sous-sections suivantes.

Autorisations pour une rubrique par défaut

Lorsque vous configurez des notifications pour votre environnement, Elastic Beanstalk crée une rubrique Amazon SNS pour votre environnement. Pour envoyer des messages à une rubrique Amazon SNS, Elastic Beanstalk doit disposer de l'autorisation requise. Si votre environnement utilise le rôle de service généré pour lui par la console Elastic Beanstalk ou l'interface de ligne de commande (CLI) EB, ou le rôle lié au service de surveillance de votre compte, vous n'avez pas besoin de faire quoi que ce soit d'autre. Ces rôles gérés contiennent l'autorisation nécessaire qui permet à Elastic Beanstalk d'envoyer des messages à la rubrique Amazon SNS.

Toutefois, si vous avez fourni un rôle de service personnalisé lorsque vous avez créé votre environnement, vérifiez que ce rôle de service personnalisé inclut bien la stratégie suivante.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:ElasticBeanstalkNotifications*" ] } ] }

Autorisations pour une rubrique externe

Configuration des notifications à l'aide des options de configuration explique la façon dont vous pouvez remplacer la rubrique Amazon SNS qu'Elastic Beanstalk fournit avec une autre rubrique Amazon SNS. Si vous avez remplacé la rubrique, Elastic Beanstalk doit vérifier que vous êtes autorisé à publier dans cette rubrique SNS afin que vous puissiez associer la rubrique SNS à l'environnement. Vous devez disposer de sns:Publish. Le rôle de service utilise la même autorisation. Pour vérifier que c'est le cas, Elastic Beanstalk envoie une notification test à SNS dans le cadre de votre action de création ou de mise à jour de l'environnement. En cas d'échec de ce test, votre tentative de création ou de mise à jour de l'environnement échoue également. Elastic Beanstalk affiche un message détaillant la raison de cet échec.

Si vous fournissez un rôle de service personnalisé pour votre environnement, vérifiez que votre rôle de service personnalisé inclut bien la stratégie suivante pour permettre à Elastic Beanstalk d'envoyer des messages à la rubrique Amazon SNS. Dans le code suivant, remplacez sns_topic_name par le nom de la rubrique Amazon SNS que vous avez fourni dans les options de configuration.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-2:123456789012:sns_topic_name" ] } ] }

Pour plus d'informations sur le contrôle d'accès Amazon SNS, veuillez consulter Exemples de cas pour le contrôle d'accès Amazon SNS dans le Guide du développeur Amazon Simple Notification Service.