この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
いわさです。
Amazon SESでメールを送信する準備としてEメールアドレスか送信元ドメインの検証を行いますが、送信元ドメイン検証を行った状態だと、検証ドメインの任意のFromアドレスでメール送信が可能です。
ここをもう少しいくつかのFromアドレスに制限したい場合は、送信承認ポリシーが利用出来るので今日は少し触ってみました。
通常の状態
ここでは、mail1.tak1wa.com
を検証済みドメインとして作成しています。
開発者からhoge@mail1.tak1wa.com
で送信したいというので認証情報を公開しました。
これで無事、期待どおりのFromアドレスで送信が出来ます。
送信できたのですがfuga@mail1.tak1wa.com
でも送信出来てしまいます。
管理者がもう少し追加の制限を行いたい場合は、送信承認ポリシーが活用出来ます。
送信承認ポリシーを使う
他アカウントから送信出来るようにする時に送信承認ポリシーを使うケースは多いかもしれません。
送信する際の制限を加える使い方も出来ます。
以下のようにポリシーを設定することで追加のセキュリティレイヤーとなります。
Amazon SES のアクション、リソース、および条件キー - サービス認証リファレンス
ここではいくつか例をご紹介します。
Fromアドレスを絞る
Fromアドレスを制限したい場合は、ses:FromAddress
条件キーが利用出来ます。
以下の場合は、hoge@mail1.tak1wa.com
以外のFromアドレスでは送信が出来なくなります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Resource": "arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Principal": "*",
"Condition": {
"StringNotLike": {
"ses:FromAddress": "hoge@mail1.tak1wa.com"
}
}
}
]
}
You do not have sufficient access to perform this action. User
arn:aws:sts::550669467088:assumed-role/cm-iwasa.takahito/cm-iwasa.takahito' is not authorized to perform
ses:SendEmail' on resource `arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com'
To, Cc, Bccアドレスを絞る
逆に、Toアドレスを制限したい場合は、ses:Recipients
条件キーが利用出来ます。
ただし、ToだけでなくCcやBccも制限対象に含まれます。
以下の場合はexample.com
ドメイン以外への送信を禁止しています。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com",
"Condition": {
"ForAnyValue:StringNotLike": {
"ses:Recipients": "*@example.com"
}
}
}
]
}
送信元を制限する(IPアドレス)
送信元自体を制限することも可能で、ここではaws:SourceIp
条件キーを使って、特定の送信元IPアドレス以外からの送信を許可しないように設定しています。
以下の場合は送信元のIPアドレスが203.0.113.224
以外の場合は送信が拒否されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Resource": "arn:aws:ses:ap-northeast-1:123456789012:identity/mail1.tak1wa.com",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Principal": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "203.0.113.224/32"
}
}
}
]
}
さいごに
本日は、SESの送信承認ポリシーで追加の制限を行う方法を紹介しました。
本日ご紹介した以外にも、Return-Pathを制限したり、Fromの表示名を制限することも出来ます。
VPCエンドポイントからSMTPサーバーを利用するシーンなども多いと思いますが、追加のセキュリティ設定を行いたい場合に送信承認ポリシーを活用出来るか検討してみてください。