2023年9月21日
こんにちは、阿形です。
今回はAmazon S3でイベント通知をAmazon SNSに送信するよう設定しようとしたら、”Unable to validate the following destination configurations” というエラーが出て設定できないということがあったので、その作業メモです。
SNSのトピック側の問題です。
デフォルトではAccess policyがS3からのアクセスを許可するようになっていないため、S3バケット側からAmazon SNSのトピックにアクセスできるようにAccess policyを設定する必要があります。
以下の手順でAmazon SNSのトピックのAccess policyを設定します。
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:GetTopicAttributes",
"SNS:SetTopicAttributes",
"SNS:AddPermission",
"SNS:RemovePermission",
"SNS:DeleteTopic",
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:Publish"
],
"Resource": "arn:aws:sns:<Region>:<AccountID>:<Topic>",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "<AccountID>"
}
}
},
{
"Sid": "S3-policy",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:<region>:<AccountID>:<Topic>",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:s3:::<BucketName>"
}
}
}
]
}
入力が終わったら、右下の”Save Changes”ボタンをクリックして終了します。
このあと、S3側で通知の設定を行えば、問題なく設定できるはずです。