Amazon Simple Notification Service(Amazon SNS) 주제를 통해 메시지를 보내기 위해 Amazon Simple Storage Service(Amazon S3) 이벤트 알림을 생성했습니다. 하지만 Amazon S3 버킷의 새로운 이벤트 알림은 Amazon SNS 주제에 메시지를 게시하지 않았습니다.
해결 방법
Amazon S3 이벤트 유형이 올바르게 구성되었는지 확인
Amazon S3 이벤트 알림을 구성할 때 Amazon S3에서 알림을 보내도록 하는 Amazon S3의 지원되는 이벤트 유형을 지정해야 합니다. 지정하지 않은 이벤트 유형이 Amazon S3 버킷에서 발생하면 Amazon S3에서 알림을 보내지 않습니다.
객체 키 이름 필터가 URL 인코딩(퍼센트 인코딩) 형식인지 확인
이벤트 알림에서 객체 키 이름 필터링을 사용하도록 구성한 경우 Amazon S3는 특정 접두사 또는 접미사가 있는 객체에 대해서만 알림을 게시합니다.
접두사 또는 접미사에 특수 문자를 사용하는 경우 URL 인코딩(퍼센트 인코딩) 형식으로 입력해야 합니다. 자세한 내용은 객체 키 명명 지침 및 객체 메타데이터로 작업하기를 참조하십시오.
참고: 필터에는 문자를 나타내는 접두사나 접미사로 와일드카드 문자("*")를 사용할 수 없습니다.
주제에 메시지를 게시하는 데 필요한 권한을 Amazon S3에 부여했는지 확인
Amazon SNS 주제의 리소스 기반 정책은 Amazon S3 버킷이 주제에 메시지를 게시할 수 있도록 허용해야 합니다. 해당 주제의 AWS Identity and Access Management(IAM) 정책을 확인하여 필요한 권한이 있는지 확인하고, 필요한 경우 권한을 부여하십시오.
주제에 SSE 암호화 주제에 대한 AWS KMS 권한이 있는지 확인
SNS 주제에서 서버 측 암호화(SSE)를 활성화한 경우 주제는 고객 관리형 AWS Key Management(AWS KMS) 키를 사용해야 합니다. AWS KMS 키에는 Amazon S3에 키 사용 권한을 부여하는 사용자 지정 키 정책이 포함되어야 합니다.
필요한 AWS KMS 권한을 설정하려면 다음 단계를 완료하십시오.
-
새 고객 관리형 AWS KMS 키 및 키 정책을 생성합니다.
-
Amazon S3가 암호화된 SNS 주제에 메시지를 게시할 수 있도록 허용하는 다음 문을 포함하도록 키 정책을 편집합니다.
{
"version": "2012-10-17",
"statement": [
{
"effect": "allow",
"principal": {
"service": "s3.amazonaws.com"
},
"action": [
"kms:generatedatakey*",
"kms:decrypt"
],
"resource": "*"
}
]
}
-
AWS KMS 키를 사용하여 Amazon SNS 주제에 대한 SSE를 구성합니다.
추가 문제 해결을 위해 CloudWatch 지표 사용
SNS 주제가 여전히 Amazon S3 이벤트 알림을 받지 못하는 경우 SNS에 대한 NumberOfMessagePublished Amazon CloudWatch 지표를 확인하십시오. 이 지표는 Amazon S3가 이벤트를 게시했는지 여부를 보여줍니다. NumberOfMessagePublished에 대한 지표가 없는 경우 Amazon S3에서 Amazon SNS로의 구성에 문제가 있는 것입니다.
NumberOfMessagePublished에 대한 지표가 있는 경우 NumberOfNotificationsDelivered 및 NumberOfNotificationsFailed 지표를 확인하십시오. 이러한 지표는 SNS 주제가 구독 엔드포인트에 메시지를 전송했는지 여부를 보여줍니다.
문제 해결에 도움이 되도록 SNS 주제에 대한 전송 상태 로깅을 구성할 수도 있습니다.
관련 정보
Amazon S3 이벤트 알림이 주제에 게시되도록 허용