Pourquoi ma rubrique Amazon SNS ne reçoit-elle pas de notifications CloudWatch Events ?

Date de la dernière mise à jour : 10/09/2021

J'ai configuré une règle Amazon CloudWatch Events pour envoyer des notifications à ma rubrique Amazon Simple Notification Service (Amazon SNS). Pourquoi ma rubrique Amazon SNS ne reçoit-elle pas les notifications d'événements ?

Résolution

Vérifier que les cibles de la règle CloudWatch Events se trouvent dans la même région AWS que la règle

Les cibles que vous associez à une règle doivent se trouver dans la même région que la règle. Pour plus d'informations, consultez Mise en route avec Amazon CloudWatch Events.

Remarque : pour connaître la région dans laquelle se trouve une ressource AWS, consultez l'Amazon Resource Name (ARN) de la ressource.

Vérifiez la cause du problème en examinant les métriques « Invocations » et « FailedInvocations » de votre règle CloudWatch Events

Dans la console CloudWatch, passez en revue les métriques Invocations et FailedInvocations de votre règle CloudWatch Event.

S'il existe des points de données pour les deux métriques, c'est que la notification de règle CloudWatch Events a tenté d'appeler la cible, mais l'appel a échoué. Pour résoudre ce problème, vous devez accorder à CloudWatch les autorisations requises pour publier des messages dans votre rubrique. Pour obtenir des instructions, consultez la section Confirmer que vous avez accordé à CloudWatch les autorisations requises pour publier des messages dans votre rubrique de cet article.

S'il existe des points de données uniquement pour la métrique Invocations, c'est que la notification de règle CloudWatch Events n'a pas atteint la cible. Pour résoudre le problème, corrigez la mauvaise configuration sur la cible.

Pour plus d'informations, consultez la section Affichage des métriques disponibles dans le guide de l'utilisateur de CloudWatch.

Vérifiez que vous avez accordé à CloudWatch les autorisations requises pour publier des messages dans votre rubrique

La politique basée sur les ressources de votre rubrique Amazon SNS doit permettre à CloudWatch de publier des messages dans la rubrique. Passez en revue la politique AWS Identity and Access Management (IAM) de votre rubrique pour vérifier qu'elle dispose des autorisations requises, puis ajoutez-les si nécessaire.

Important : « events.amazonaws.com » doit être répertorié en tant que valeur « Service ». « SNS:Publish » doit être répertorié en tant que valeur « Action ».

Pour ajouter les autorisations requises, suivez les instructions de la section Ma règle s'exécute, mais je ne vois aucun message publié dans ma rubrique Amazon SNS.

Exemple d'instruction d'autorisations IAM qui permet à CloudWatch de publier des messages sur une rubrique Amazon SNS

{
    "Sid": "AWSEvents_ArticleEvent_Id4950650036948",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": "sns:Publish",
    "Resource": "arn:aws:sns:us-east-1:123456789012:My_SNS_Topic"
}

(Pour les rubriques avec le chiffrement côté serveur (SSE) activé) Vérifiez que votre rubrique dispose des autorisations AWS Key Management (AWS KMS) requises.

Votre rubrique Amazon SNS doit utiliser une clé AWS KMS gérée par le client. Cette clé KMS doit inclure une politique de clé personnalisée qui accorde à CloudWatch des autorisations d'utilisation de clés suffisantes.

Pour configurer les autorisations AWS KMS requises, procédez comme suit :

1.    Créez une nouvelle clé KMS gérée par le client et incluant les autorisations requises pour CloudWatch.

2.    Configurez SSE pour votre rubrique Amazon SNS à l'aide de la clé KMS personnalisée que vous venez de créer.

3.    Configurez les autorisations AWS KMS qui permettent à CloudWatch de publier des messages dans votre rubrique chiffrée.

Exemple de déclaration de politique IAM qui permet à CloudWatch de publier des messages dans une rubrique Amazon SNS chiffrée

{
    "Sid": "Allow CWE to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
    ],
    "Resource": "*"
}

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?