自由気ままに書いちゃおう

好きなことをつらつらと・・・

【AWS】SESで宛先メールドメインを制限する

今回はSESにてメール送信する際の宛先メールドメインを制限する方法についてです。

はじめに

SESを利用する際、

① 送信元制限

② 送信先(宛先)制限

の2つがよく用いられます。

今回は、「② 送信先(宛先)制限」についてです。

「② 送信先(宛先)制限」方法について1

早速にはなりますが、以下のようなIAMポリシーにて設定できます。

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "ForAnyValue:StringLike":{
          "ses:Recipients":[
            "*@example.com"
          ]
        }
      }
    }
  ]
}

上記IAMポリシーの場合には、

*@example.com 宛のメール送信のみ許可する

という内容になります。

そのため、

test1@example.com

testtest@example.com

のようなメールアドレス宛にメール送信ができるという意味です。

また、

test1@test.com

のようなメールドメイン宛は送信できないという意味になります。

「② 送信先(宛先)制限」方法について2

上記では*@example.com を指定しましたが、

*@*.example.com のように設定すれば、example.comのサブドメインをメール送信先(宛先)として設定可能という意味になります。

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "ForAnyValue:StringLike":{
          "ses:Recipients":[
            "*@*example.com"
          ]
        }
      }
    }
  ]
}

つまり、以下のようなメールアドレスへのメール送信が可能です。

test-one@test1.example.com

test-two@test2.example.com

test-three@test3.example.com

補足

宛先メールアドレスを制限するには、上記のようにIAMポリシーを作成すればよいです。

補足にはなりますが、

・EC2のインスタンスプロファイルに当該IAMポリシーを設定

・ECSタスクのタスクロールに当該IAMポリシーを設定

など、送信媒体(ここでは、EC2やECS)に応じて、適切な場所にIAMポリシーを適用する必要があります。

以上です。