SES の配信通知を東京リージョンのSQSで受け取る

こちらのアップデートで SES の配信通知が受け取れるようになりましたが、 SES はまだ東京リージョンで利用できないため、SES を他のリージョンで利用していた場合に、 配信通知を東京リージョンで受け取る方法を調べてみました。

SES は「バージニア北部」リージョンで利用しているものとします。

(1). Amazon Management Console にログインします。

(2). バージニア北部リージョンの SES を開きます。

(3). Email Addresses > メールアドレス > Notifications を開きます。

(4). Edit Configuration ボタンをクリックして、設定画面を開きます。

SNS Topic Configuration の項目で、通知先の SNS Topic を選べるのですが、 一覧に表示されているのは同一リージョンの Topic のみとなります。 SNS topic you do not own を選択して、フリー入力をした場合でも、 他リージョンの SNS Topic は受け付けてくれません。

(5). バージニア北部リージョンの SNS Topic を作成して SES の信通知に設定します。

(6). 東京リージョンで SQS のキューを作成します。

(7). (5). で作成したバージニア北部リージョンの SNS Topic のサブスクリプションに、(6). で作成した 東京リージョンの SQS キューを設定します。これでリージョンを跨ぐことができるようになります。

(8). 東京リージョンの SQS キューにアクセス権限を与えます。

{
  "Version": "2012-10-17",
  "Id": "SNStoSQS",
  "Statement": 
     {
        "Sid":"rule1",
        "Effect": "Allow",
        "Principal": {
           "AWS": "*"
         },
        "Action": "sqs:*",
        "Resource": "arn:aws:sqs:ap-northeast-1:**************:ses_test",
        "Condition" : {
            "StringEquals" : {
            "aws:SourceArn":"arn:aws:sns:us-east-1:**************:sns_test"
            }
        }
     }
}

これで配信通知が東京リージョンで受け取れるようになります。

{
    "Type" : "Notification", "MessageId" : "**************", "TopicArn" : "arn:aws:sns:us-east-1:**************:sns_test", 
    "Message" : "{\"notificationType\":\"Delivery\",\"mail\":{\"timestamp\":\"2014-08-01T08:58:19.841Z\",\"source\":\"=?ISO-2022-JP?B?QWlwbxskQiU1JV0hPCVIJTslcyU/ITwbKEI=?= <sample@sample.com>\",\"messageId\":\"**************\",\"destination\":[\"sample1@sample.com\",\"sample2@sample.com\"]},\"delivery\":{\"timestamp\":\"2014-08-01T08:58:21.446Z\",\"processingTimeMillis\":1605,\"recipients\":[\"sample1@sample.com\",\"sample2@sample.com\"],\"smtpResponse\":\"250 2.0.0 OK 1406883501 h10si14424390qgd.93 - gsmtp\",\"reportingMTA\":\"a8-87.smtp-out.amazonses.com\"}}", 
    "Timestamp" : "2014-08-01T08:58:21.554Z", "SignatureVersion" : "1", "Signature" : "**************", 
    "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-**************.pem", 
    "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:**************:sns_test:**************"
}