Notifier les utilisateurs en cas de changements d'alertes
Cette section explique comment utiliser les notifications utilisateur AWS ou Amazon Simple Notification Service pour notifier les utilisateurs des changements d'alertes.
Configuration des notifications utilisateur AWS
Vous pouvez utiliser les notifications utilisateur AWS pour configurer des canaux de diffusion afin d'être notifié des changements d'état des alertes et des événements de modification de configuration de CloudWatch. Vous recevez une notification lorsqu'un événement correspond à une règle que vous avez spécifiée. Vous pouvez recevoir des notifications relatives à des événements via plusieurs canaux, notamment les notifications de discussion AWS Chatbot ou les notifications push AWS Console Mobile Application. Vous pouvez également consulter les notifications dans le Centre de notifications de la console
Les configurations de notification que vous créez avec les notifications utilisateur AWS ne sont pas prises en compte dans la limite du nombre d'actions que vous pouvez configurer par état d'alerte cible. Étant donné que les notifications utilisateur AWS correspondent aux événements envoyés à Amazon EventBridge, celui-ci envoie des notifications pour toutes les alarmes de votre compte et des régions sélectionnées, sauf si vous spécifiez un filtre avancé pour autoriser ou refuser des alarmes ou des modèles spécifiques.
L'exemple suivant de filtre avancé correspond à un changement d'état d'alerte de OK à ALARM pour l'alerte nommée ServerCpuTooHigh.
{ "detail": { "alarmName": ["ServerCpuTooHigh"], "previousState": { "value": ["OK"] }, "state": { "value": ["ALARM"] } } }
Vous pouvez utiliser n'importe laquelle des propriétés publiées par une alerte dans les événements EventBridge pour créer un filtre. Pour de plus amples informations, consultez Événements d'alerte et EventBridge.
Configuration des notifications Amazon SNS
Vous pouvez utiliser Amazon Simple Notification Service pour envoyer à la fois des messages d'application à application (A2A) et d'application à personne (A2P), y compris des messages texte mobile (SMS) et des e-mails. Pour plus d'informations, consultez la rubrique Destinations des évènements Amazon SNS.
Pour chaque état qu'une alerte peut prendre, vous pouvez configurer l'alerte pour envoyer un message à une rubrique SNS. Chaque rubrique Amazon SNS que vous configurez pour un état associé à une alerte donnée est prise en compte dans la limite du nombre d'actions que vous pouvez configurer pour cette alerte et cet état. Vous pouvez envoyer des messages à la même rubrique Amazon SNS à partir de n'importe quelle alerte de votre compte, et utiliser la même rubrique Amazon SNS pour les utilisateurs d'application à application (A2A) et d'application à personne (A2P). Étant donné que cette configuration est effectuée au niveau des alertes, seules les alertes que vous avez configurées envoient des messages à la rubrique Amazon SNS sélectionnée.
Pour commencer, créez une rubrique à laquelle vous vous abonnez. Vous pouvez, le cas échéant, publier un message test dans cette rubrique. Pour obtenir un exemple, consultez Configuration d'une rubrique Amazon SNS à l'aide de la AWS Management Console. Pour plus d'informations, consultez Démarrage avec Amazon SNS.
Par ailleurs, si vous prévoyez d'utiliser l'AWS Management Console pour créer votre alerte CloudWatch, vous pouvez ignorer cette procédure, car vous pouvez créer la rubrique lorsque vous créez l'alerte.
Lorsque vous créez une alerte CloudWatch, vous pouvez ajouter des actions pour n'importe quel état cible dans lequel l'alerte entre. Ajoutez une notification Amazon SNS pour l'état dont vous souhaitez être informé et sélectionnez la rubrique Amazon SNS que vous avez créée à l'étape précédente pour envoyer une notification par e-mail lorsque l'alerte passe à l'état sélectionné.
Note
Lorsque vous créez une rubrique Amazon SNS, vous choisissez d'en faire une rubrique standard ou une rubrique FIFO. CloudWatch garantit la publication de toutes les notifications d'alerte sur les deux types de rubriques. Toutefois, même si vous utilisez une rubrique FIFO, dans de rares cas, CloudWatch envoie les notifications à la rubrique non sollicitée. Si vous utilisez une rubrique FIFO, l'alerte définit l'ID du groupe de messages des notifications d'alerte comme un hachage de l'ARN de l'alerte.
Rubriques
Prévention des problèmes de sécurité liés à la confusion d’identité
Le problème de député confus est un problème de sécurité dans lequel une entité qui n’est pas autorisée à effectuer une action peut contraindre une entité plus privilégiée à le faire. Dans AWS, l’emprunt d’identité entre services peut entraîner le problème de député confus. L’usurpation d’identité entre services peut se produire lorsqu’un service (le service appelant) appelle un autre service (le service appelé). Le service appelant peut être manipulé et ses autorisations utilisées pour agir sur les ressources d’un autre client auxquelles on ne serait pas autorisé d’accéder autrement. Pour éviter cela, AWS fournit des outils qui vous aident à protéger vos données pour tous les services avec des principaux de service qui ont eu accès aux ressources de votre compte.
Nous recommandons d’utiliser les clés de contexte de condition globales aws:SourceArn, aws:SourceAccount, aws:SourceOrgID et aws:SourceOrgPaths dans les politiques de ressources pour limiter les autorisations accordées par Amazon SNS lorsqu’un autre service accède à la ressource. Utilisez aws:SourceArn pour associer une seule ressource à l’accès interservice. Utilisez aws:SourceAccount pour permettre à n’importe quelle ressource de ce compte d’être associée à l’utilisation interservice. Utilisez aws:SourceOrgID pour permettre à n’importe quelle ressource de n’importe quel compte au sein d’une organisation d’être associée à l’utilisation interservice. Utilisez aws:SourceOrgPaths pour associer n’importe quelle ressource des comptes d’un chemin d’accès AWS Organizations à l’utilisation interservice. Pour plus d’informations sur l’utilisation et la compréhension des chemins, consultez aws:SourceOrgPaths dans le Guide de l’utilisateur IAM.
Le moyen le plus efficace de se protéger contre le problème de député confus consiste à utiliser la clé de contexte de condition globale aws:SourceArn avec l’ARN complet de la ressource. Si vous ne connaissez pas l’ARN complet de la ressource ou si vous spécifiez plusieurs ressources, utilisez la clé de contexte de condition globale aws:SourceArn avec des caractères génériques (*) pour les parties inconnues de l’ARN. Par exemple, arn:aws:. servicename:*:123456789012:*
Si la valeur aws:SourceArn ne contient pas l'ID du compte, tel qu'un ARN de compartiment Amazon S3, vous devez utiliser à la fois aws:SourceAccount et aws:SourceArn pour limiter les autorisations.
Pour se protéger contre le problème de l'adjoint confus à grande échelle, utilisez la clé de contexte de condition globale aws:SourceOrgID ou aws:SourceOrgPaths avec l'ID de l'organisation ou le chemin de l'organisation de la ressource dans vos politiques basées sur les ressources. Lorsque vous ajoutez, supprimez et déplacez des comptes dans votre organisation, les politiques qui contiennent la clé aws:SourceOrgID ou aws:SourceOrgPaths incluront automatiquement les bons comptes et vous n'avez pas besoin de mettre manuellement à jour les polices.
La valeur de aws:SourceArn doit être l’ARN de l’alarme qui envoie les notifications.
L’exemple suivant montre comment utiliser les clés de contexte globales de condition globale aws:SourceArn et aws:SourceAccount dans CloudWatch pour éviter les problèmes de confusion d’identité.
{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:us-east-2:111122223333:alarm:*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }] }
Si un ARN d'alerte contient des caractères non ASCII, utilisez uniquement l'option aws:SourceAccountclé de condition globale pour limiter les autorisations.
Configuration d'une rubrique Amazon SNS à l'aide de la AWS Management Console
Pour commencer, créez une rubrique à laquelle vous vous abonnez. Vous pouvez, le cas échéant, publier un message test dans cette rubrique.
Pour créer une rubrique SNS
Ouvrez la console Amazon SNS à partir de l’adresse https://console.aws.amazon.com/sns/v3/home
. -
Dans le tableau de bord Amazon SNS, sous Common actions (Actions courantes), choisissez Create topic (Créer une rubrique).
-
Dans la boîte de dialogue Create new topic (Créer une rubrique), pour Topic name (Nom de rubrique), saisissez un nom de rubrique (par exemple
my-topic). -
Choisissez Create topic (Créer une rubrique).
-
Copiez Topic ARN (ARN de la rubrique) pour la tâche suivante (par exemple, arn:aws:sns:us-east-1:111122223333:my-topic).
Pour s'abonner à une rubrique SNS
Ouvrez la console Amazon SNS à partir de l’adresse https://console.aws.amazon.com/sns/v3/home
. -
Dans le panneau de navigation, choisissez Subscriptions (Abonnements), puis Create a subscription (Créer un abonnement).
-
Dans la boîte de dialogue Create subscription (Créer un abonnement), sous Topic ARN (ARN de la rubrique), collez l'ARN de la rubrique que vous avez créé à l'étape précédente.
-
Pour Protocole, choisissez E-mail.
-
Pour Endpoint (Point de terminaison), saisissez une adresse e-mail que vous pouvez utiliser pour recevoir la notification, puis choisissez Create subscription (Créer un abonnement).
-
À partir de votre application de messagerie, ouvrez le message à partir des notifications AWS, puis confirmez votre abonnement.
Votre navigateur Web affiche une réponse de confirmation provenant de Amazon SNS.
Pour publier un message test dans une rubrique SNS
-
Ouvrez la console Amazon SNS à partir de l’adresse https://console.aws.amazon.com/sns/v3/home
. -
Dans le volet de navigation, choisissez Rubriques.
-
Sur la page Topics (Rubriques), sélectionnez une rubrique, puis choisissez Publish to topic (Publier dans la rubrique).
-
Sur la page Publish a message (Publier un message), tapez l'objet de votre message dans Subject (Sujet), puis saisissez un court message dans Message.
-
Choisissez Publish Message (Publier un message).
-
Vérifiez votre messagerie électronique afin de confirmer que vous avez reçu le message en provenance de la rubrique.
Configuration d'une rubrique SNS à l'aide de l'AWS CLI
Pour commencer, créez une rubrique SNS, puis publiez-y un message directement afin de vérifier que vous l'avez configurée correctement.
Pour configurer une rubrique SNS
-
Créez la rubrique à l'aide de la commande create-topic, comme suit.
aws sns create-topic --namemy-topicAmazon SNS renvoie l'ARN d'une rubrique avec le format suivant :
{ "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic" } -
Abonnez votre adresse e-mail à la rubrique à l'aide de la commande subscribe. Si la demande d'abonnement aboutit, vous recevrez un e-mail de confirmation.
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic--protocol email --notification-endpointmy-email-addressAmazon SNS retourne les informations suivantes :
{ "SubscriptionArn": "pending confirmation" } -
À partir de votre application de messagerie, ouvrez le message à partir des notifications AWS, puis confirmez votre abonnement.
Votre navigateur Web affiche une réponse de confirmation provenant de Amazon Simple Notification Service.
-
Vérifiez l'abonnement à l'aide de la commande list-subscriptions-by-topic.
aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:us-east-1:111122223333:my-topicAmazon SNS retourne les informations suivantes :
{ "Subscriptions": [ { "Owner": "111122223333", "Endpoint": "me@mycompany.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic", "SubscriptionArn": "arn:aws:sns:us-east-1:111122223333:my-topic:64886986-bf10-48fb-a2f1-dab033aa67a3" } ] } -
(En option) Publiez un message test dans la rubrique à l'aide de la commande publish.
aws sns publish --message "Verification" --topic arn:aws:sns:us-east-1:111122223333:my-topicAmazon SNS retourne les informations suivantes.
{ "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d" } -
Vérifiez votre messagerie électronique afin de confirmer que vous avez reçu le message en provenance de la rubrique.
Schéma des notifications Amazon SNS lors d’un changement d’état d’alarme
Cette section répertorie les schémas des notifications envoyées aux rubriques Amazon SNS lorsque les alarmes changent d’état.
Schéma lorsqu’une alarme de métrique change d’état
{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "AlarmConfigurationUpdatedTimestamp": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OldStateValue": "string", "OKActions": ["string"], "AlarmActions": ["string"], "InsufficientDataActions": ["string"], "Trigger": { "MetricName": "string", "Namespace": "string", "StatisticType": "string", "Statistic": "string", "Unit": "string or null", "Dimensions": [ { "value": "string", "name": "string" } ], "Period": "integer", "EvaluationPeriods": "integer", "DatapointsToAlarm": "integer", "ComparisonOperator": "string", "Threshold": "number", "TreatMissingData": "string", "EvaluateLowSampleCountPercentile": "string or null" } }
Schéma lorsqu’une alarme composite change d’état
{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OKActions": [String], "AlarmActions": [String], "InsufficientDataActions": [String], "OldStateValue": "string", "AlarmRule": "string", "TriggeringChildren": [String] }