암호화된 Amazon Simple Notification Service(Amazon SNS) 주제를 사용하여 Amazon CloudWatch 경보를 구성하려고 합니다.
간략한 설명
CloudWatch 경보에 대한 암호화된 Amazon SNS 주제가 포함된 Amazon SNS 알림을 전송하려면 AWS Key Management Service(AWS KMS) 고객 관리형 키를 사용해야 합니다. 암호화에 기본 alias/aws/sns AWS 관리형 키를 사용하는 경우 CloudWatch 경보에서 경보 작업을 시작하지 못합니다. 그러면 경보 기록 섹션에 다음과 비슷한 메시지가 표시됩니다.
"Failed to execute action arn:aws:sns:us-east-1:ACCOUNT_ID:TOPIC_NAME. Received error: "CloudWatch Alarms does not have authorization to access the SNS topic encryption key.""
참고: Amazon SNS에 대한 기본 AWS KMS 키의 정책을 사용하면 CloudWatch 경보에서 kms:Decrypt 및 kms:GenerateDataKey API 호출을 수행할 수 없습니다. AWS 관리형 키에 대한 정책은 수동으로 편집할 수 없습니다.
해결 방법
암호화된 Amazon SNS 주제를 사용하여 CloudWatch 경보를 구성하려면 다음 단계를 완료하십시오.
-
Amazon SNS 콘솔을 엽니다.
-
**Create topic(주제 생성)**을 선택합니다.
-
유형에서 표준을 선택한, 다음 주제 이름과 표시 이름을 생성합니다.
-
암호화 - 선택 사항 설정을 확장하여 암호화를 켭니다.
-
고객 관리형 키를 선택합니다.
-
키 정책을 수동으로 편집하여 Decrypt 및 GenerateDataKey CloudWatch 경로 권한을 부여하여 암호화된 Amazon SNS 주제에 메시지를 게시합니다.
{
"Sid": "Allow_CloudWatch_for_CMK",
"Effect": "Allow",
"Principal": {
"Service": [
"cloudwatch.amazonaws.com"
]
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey*"
],
"Resource": "*"
}
-
(선택 사항) 정책을 더 제한적으로 만들려면 Condition 요소를 포함하십시오. 예를 들어 다음 정책의 Condition 컨텍스트 키는 조직 o-123456789의 작업만 허용합니다.
"Resource": "*"
"Condition": {
"StringEquals": {
"aws:SourceOrgID": "o-123456789"
}
-
Amazon SNS 주제의 액세스 정책에 Publish 권한이 부여되어 CloudWatch 경보가 메시지를 Amazon SNS 주제에 게시할 수 있어야 합니다.
{
"Sid": "Allow_Publish_Alarms",
"Effect": "Allow",
"Principal": {
"Service": [
"cloudwatch.amazonaws.com"
]
},
"Action": "sns:Publish",
"Resource": "arn:aws:sns:example-region:example-account-id:example-topic"}
참고: example-region을 AWS 리전으로 바꾸고, example-account-id를 계정 ID로 바꾸고, example-topic을 주제 이름으로 바꾸십시오.
-
주제 생성을 선택합니다.
-
다음 중 하나를 기반으로 CloudWatch 경보를 생성합니다.
정적 임계값
지표 수식
Metrics Insights 쿼리
연결된 데이터 소스
이상 탐지
관련 정보
Amazon CloudWatch 경보 사용
AWS KMS로 Amazon SNS에 게시된 메시지 암호화
CloudWatch 경보 트리거에 대한 SNS 알림을 받지 못한 이유는 무엇입니까?