내용으로 건너뛰기

Amazon SNS 주제에서 EventBridge 알림을 받지 못한 이유는 무엇입니까?

3분 분량
0

Amazon Simple Notification Service(Amazon SNS) 주제에 알림을 전송하도록 Amazon EventBridge 규칙을 설정했습니다. 하지만 Amazon SNS 주제에서 이벤트 알림을 받지 못했습니다.

해결 방법

EventBridge 규칙의 대상이 규칙과 동일한 리전에 있는지 확인

규칙과 연결하는 대상은 규칙과 동일한 AWS 리전에 있어야 합니다.

참고: AWS 리소스가 있는 리전을 찾으려면 리소스의 Amazon 리소스 이름(ARN)을 검토하십시오.

EventBridge 규칙의 ‘Invocations’ 및 ‘FailedInvocations’ 지표를 검토하여 문제 파악

Amazon CloudWatch 콘솔을 사용하여 EventBridge 규칙의 InvocationsFailedInvocations 지표를 검토할 수 있습니다.

두 지표에 대한 데이터 포인트가 모두 있는 경우 EventBridge 규칙 알림에서 대상을 간접적으로 호출하려고 시도했지만 간접 호출이 실패한 것입니다. 문제를 해결하려면 주제에 메시지를 게시하는 데 필요한 권한을 EventBridge에 부여해야 합니다. 지침은 이 문서의 주제에 메시지를 게시하는 데 필요한 권한을 EventBridge에 부여했는지 확인 섹션을 참조하십시오.

Invocations 지표에 대한 데이터 포인트만 있는 경우 EventBridge 규칙 알림이 대상에 도달하지 못한 것입니다. 문제를 해결하려면 대상에 대한 규칙을 다시 구성하십시오.

주제에 메시지를 게시하는 데 필요한 권한을 EventBridge에 부여했는지 확인

Amazon SNS 주제의 리소스 기반 정책은 EventBridge가 주제에 메시지를 게시할 수 있도록 허용해야 합니다. 주제의 AWS Identity and Access Management(IAM) 정책을 검토하여 필요한 권한이 있는지 확인하십시오. 정책에 권한이 없는 경우 필요한 권한을 추가하십시오.

중요: events.amazonaws.comService 값으로, sns:PublishAction 값으로 나열해야 합니다.

EventBridge가 Amazon SNS 주제에 메시지를 게시할 수 있도록 허용하는 IAM 권한 문의 예시:

{    "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"
}

실행 역할을 통해 EventBridge가 대상에 게시할 수 있는지 확인

EventBridge 규칙 대상에 할당된 IAM 실행 역할에는 EventBridge 서비스와의 신뢰 관계가 필요합니다. 역할 신뢰 정책에 EventBridge(events.amazonaws.com)가 신뢰할 수 있는 엔터티로 포함되어 있는지 확인하십시오. 신뢰 정책에 필요한 권한이 포함되어 있지 않은 경우 신뢰 정책을 업데이트하여 역할을 맡는 데 필요한 권한을 EventBridge에 부여하십시오.

EventBridge가 대상의 실행 역할을 맡을 수 있도록 하는 IAM 신뢰 관계 문의 예시:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "ACCOUNT-ID",
                    "aws:SourceArn": "EVENTBRIDGE-RULE-ARN"
                }
            }
        }
    ]
}

중요: events.amazonaws.comService 값으로 나열하고 sts:AssumeRoleAction 값으로 나열합니다. ACCOUNT-ID를 AWS 계정 ID로 바꾸고 EVENTBRIDGE_RULE_ARN을 사용 중인 ARN으로 바꾸십시오.

(SSE가 활성화된 주제의 경우) 주제에 필요한 AWS KMS 권한이 있는지 확인

Amazon SNS 주제는 AWS Key Management Service(AWS KMS) 고객 관리형 키를 사용해야 합니다. 이 AWS KMS 키에는 EventBridge에 키 사용 권한을 부여하는 사용자 지정 키 정책이 포함되어야 합니다.

필요한 AWS KMS 권한을 설정하려면 다음 단계를 완료하십시오.

  1. 새 고객 관리형 키를 만들고 EventBridge(events.amazonaws.com)에 필요한 권한을 포함해야 합니다.
  2. 고객 관리형 키를 사용하여 Amazon SNS 주제에 대한 서버 측 암호화(SSE)를 구성합니다.
  3. EventBridge가 암호화된 주제(events.amazonaws.com)에 메시지를 게시할 수 있도록 허용하는 AWS KMS 권한을 구성합니다.

EventBridge가 암호화된 Amazon SNS 주제에 메시지를 게시할 수 있도록 허용하는 IAM 정책 문의 예시:

{    "Sid": "Allow CWE to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*"
}
AWS 공식업데이트됨 6달 전