Pourquoi n'ai-je pas reçu de notification SNS relative à mon déclencheur d'alarme CloudWatch ?
Date de la dernière mise à jour : 27/08/2021
J'ai créé une alarme Amazon CloudWatch pour envoyer des notifications via une rubrique Amazon Simple Notification Service (Amazon SNS) lorsque l'état de l'alarme change. Pourtant, l'alarme CloudWatch a effectivement changé d'état mais je n'ai pas reçu de notification SNS. Pourquoi n'ai-je pas reçu de notification SNS relative à mon déclencheur d'alarme CloudWatch ?
Résolution
L'envoi des notifications SNS est fonction de la configuration de la rubrique SNS et de l'alarme CloudWatch. Pour savoir pourquoi vous ne recevez pas de notifications SNS, cherchez à connaître l'état de l'action de déclenchement dans l'historique de l'alarme CloudWatch.
Si votre action de déclenchement a échoué en raison des restrictions de stratégie d'accès SNS :
- L'historique de l'alarme CloudWatch affiche un message semblable à :
Impossible d'exécuter l'action arn:aws:sns:: »: . Erreur reçue : « Resource: arn:aws:cloudwatch: : :alarm: is not authorized to perform: SNS:Publish on resource: arn:aws:sns: : : - SNS limite les sources habilitées à publier des messages dans la rubrique à l'aide de stratégies d'accès. Si une erreur d'autorisation se produit, alors les autorisations suivantes doivent être ajoutées dans la section « Statement » (Instruction) de la stratégie d'accès SNS. Cette mise à jour accorde des autorisations au service d'alarmes CloudWatch pour publier des messages dans la rubrique SNS.
Remarque : remplacezpar la Région pour laquelle cette notification est destinée. Remplacez par votre ID de compte. Remplacez par le nom de la rubrique SNS.
{
"Sid": "Allow_Publish_Alarms",
"Effect": "Allow",
"Principal":
{
"Service": [
"cloudwatch.amazonaws.com"
]
},
"Action": "sns:Publish",
"Resource": "arn:aws:sns:<region>:<account-id>:<topic-name>"
}
Remarque : remplacez
{
"Sid": "Allow_Publish_Alarms",
"Effect": "Allow",
"Principal": {
"Service": [
"cloudwatch.amazonaws.com"
]
},
"Action": "sns:Publish",
"Resource": "arn:aws:sns:<region>:<account-id>:<topic-name>",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:cloudwatch:<region>:<account-id>:alarm:<alarm-name>"
}
}
}
Si votre action de déclenchement a échoué en raison du chiffrement de rubrique SNS :
- L'historique de l'alarme CloudWatch affiche un message semblable à :
Impossible d'exécuter l'action arn:aws:sns:: : . Erreur reçue : "null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException;)" - SNS autorise le chiffrement au repos pour sa rubrique. Les alarmes CloudWatch ne peuvent pas publier de messages dans la rubrique SNS si la clé AWS Key Management Service (KMS) par défaut « alias/aws/sns » est utilisée pour ce chiffrement. La stratégie de clé de la clé AWS KMS par défaut pour SNS n'autorise pas les alarmes CloudWatch à effectuer des appels d'API « kms:Decrypt » et «kms:GenerateDataKey». Cette clé est gérée par AWS, vous ne pouvez donc pas modifier manuellement la politique.
- Si la rubrique SNS doit être chiffrée au repos, vous pouvez utiliser une clé gérée par le client. La clé gérée par le client doit inclure les autorisations suivantes dans la section « Statement » (Instruction) de la politique de clé. Ces autorisations permettent aux alarmes CloudWatch de publier des messages dans des rubriques SNS chiffrées.
{
"Sid": "Allow_CloudWatch_for_CMK",
"Effect": "Allow",
"Principal": {
"Service":[
"cloudwatch.amazonaws.com"
]
},
"Action": [
"kms:Decrypt","kms:GenerateDataKey*"
],
"Resource": "*"
}
Si votre action de déclenchement a réussi, alors :
- L'historique de l'alarme CloudWatch affiche un message semblable à :
Action exécutée avec succès arn:aws:sns:: : - Cela signifie que l'alarme CloudWatch a publié un message dans la rubrique SNS. Si la notification n'a pas été envoyée par SNS, vérifiez les échecs d'envoi dans la rubrique SNS et ses métriques. Pour en savoir plus, consultez la section Comment puis-je accéder aux journaux de diffusion des rubriques Amazon SNS pour les notifications push ?
Remarque : CloudWatch ne teste ni ne valide les actions que vous spécifiez. Il ne détecte pas non plus les erreurs Amazon EC2 Auto Scaling ou Amazon SNS résultant d'une tentative d'appel d'actions inexistantes. Assurez-vous que vos actions existent.
Informations connexes
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?