CloudWatch 경보 트리거에 대한 SNS 알림을 받지 못한 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 2월 5일

경보 상태가 변경될 때 Amazon Simple Notification Service(Amazon SNS) 주제를 통해 알림을 전송하는 Amazon CloudWatch 경보를 생성했습니다. 하지만 CloudWatch 경보의 상태가 변경되어 SNS 알림을 받지 못했습니다. CloudWatch 경보 트리거에 대한 SNS 알림을 받지 못한 이유는 무엇입니까?

해결 방법

SNS 알림 전송은 SNS 주제와 CloudWatch 경보의 구성에 따라 다릅니다. 예상대로 SNS 알림을 수신하지 못하는 이유를 확인하려면 CloudWatch 경보의 기록을 확인하여 트리거 작업의 상태를 확인하십시오.

SNS 액세스 정책 제한으로 인해 트리거 작업이 실패한 경우:

  • CloudWatch 경보 기록에 [Failed to execute action arn: aws: sns: <region>: <account-id>: <topic-name>]과 유사한 메시지가 표시됩니다. 수신한 오류 메세지: [Resource: arn: aws: cloudwatch: <region>: <account-id>: alarm: <alarm-name> is not authorized to perform: SNS: Publish on resource: arn: aws: sns: <region>: <account-id>: <topic-name>].
  • SNS는 액세스 정책을 사용하여 주제에 메시지를 게시할 수 있는 소스를 제한합니다. 권한 오류가 발생하면 SNS 액세스 정책의 [Statement(문)] 섹션에 다음 권한을 추가해야 합니다. 이 업데이트는 CloudWatch 경보 서비스에서 SNS 주제에 메시지를 게시할 수 있는 권한을 부여합니다.
    참고: <region>을 이 알림의 대상인 리전으로 바꾸고, <account-id>를 사용자 계정 ID로 바꾸고, <topic name>을 SNS 주제 이름으로 바꾸십시오.
{
    "Sid": "Allow_Publish_Alarms",
    "Effect": "Allow",
    "Principal":
    {
        "Service": [
            "cloudwatch.amazonaws.com"
        ]
    },
    "Action": "sns:Publish",
    "Resource": "arn:aws:sns:<region>:<account-id>:<topic-name>"
}

SNS 주제 암호화로 인해 트리거 작업이 실패한 경우:

  • CloudWatch 경보 기록에 [Failed to execute action arn: aws: sns: <region>: <account-id>: <topic-name>]과 유사한 메시지가 표시됩니다. 수신한 오류: "null(Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException;)"
  • SNS는 주제에 대해 저장 중 암호화를 허용합니다. 이 암호화에 기본 AWS Key Management Service(KMS) 키 "alias/aws/sns"가 사용되는 경우 CloudWatch 경보는 SNS 주제에 메시지를 게시할 수 없습니다. SNS용 기본 AWS KMS 키의 키 정책은 CloudWatch 경보가 "kms: Decrypt" 및 "kms: GenerateDataKey" API 호출을 수행하도록 허용하지 않습니다. 이 키는 AWS 관리형이므로 정책을 수동으로 편집할 수 없습니다.
  • SNS 주제를 유휴 상태에서 암호화해야 하는 경우 고객 관리형 CMK를 사용할 수 있습니다. 고객 관리형 CMK는 키 정책의 [Statement(문)] 섹션에 다음 권한을 포함해야 합니다. 이러한 권한은 CloudWatch 경보가 암호화된 SNS 주제에 메시지를 게시하도록 허용합니다.
{
    "Sid": "Allow_CloudWatch_for_CMK",
    "Effect": "Allow",
    "Principal": {
        "Service":[
            "cloudwatch.amazonaws.com"
        ]
    },
    "Action": [
        "kms:Decrypt","kms:GenerateDataKey"
    ],
    "Resource": "*"
}

트리거 작업이 성공한 경우:

  • CloudWatch 경보 기록에 성공적으로 실행된 작업 arn: aws: sns: <region>: <account-id>: <topic-name>과 유사한 메시지가 표시됩니다.
  • 이는 CloudWatch 경보가 SNS 주제에 메시지를 성공적으로 게시했음을 의미합니다. SNS에서 알림을 전송하지 않은 경우 SNS 주제와 해당 지표에서 전송 실패가 있는지 확인합니다. 자세한 내용은 실패한 Amazon SNS 푸시 알림 전송 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

참고: CloudWatch는 지정한 작업을 테스트하거나 검증하지 않습니다. 또한 존재하지 않는 작업을 호출하려는 시도로 인해 발생하는 Amazon EC2 Auto Scaling 또는 Amazon SNS 오류를 감지하지 못합니다. 작업이 존재하는지 확인합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?