本記事は TechHarmony Advent Calendar 2025 12/25付の記事です。 |
こんにちは、SCSK木澤です。
12/1から続けてきた今年のアドベントカレンダーも、ついに今日でラストですね。
本日発信される記事で、合計25日間で33記事が発信されたかと思います。
年末の忙しいさなか、お読み頂いた皆様、発信いただいた寄稿者の方々ありがとうございました。
さて今年のアドベントカレンダー、私は他のテーマの検証が完了しませんでしたので、今年はAmazon SESの小ネタを発信したい思います。
メール誤送信事故の防止
私は10年ほど前まで、色々なお客様のシステム開発や保守を担当していました。
その中で、メール誤送信の事故を見かけたことがありました(大量ではないですが)
結構ありがちなのが、開発中のシステムやリリース後においては開発/検証環境など、本番環境以外からの誤送信で、テスト実施の際に不必要な宛先にメールが送信されてしまった、というケースです。
とはいえ、本番環境以外においてもシステムの動作検証・テストとして全くメールを出さない訳にもいかないことがあります。
そうした場合、メール中継をするMTA(postfix等)において、不必要な宛先への送信をブロックする設定を行うことが事故防止のため望ましく、そのような実装をよく行っていました。
Amazon SESでの実装方法
AWSにおいてはAmazon SESを送信用のMTAとして用いることがベストプラクティスとなるかと思います。
Amazon SESにおいて送信の制限には、送信承認ポリシーによって行うことができます。
設定手順
Amazon SESコンソール、設定内-IDをクリックし、検証済み(であることが前提ですが)IDの設定に入ります。
「承認」タブより承認ポリシーの作成に入ります。
今回はカスタムポリシーから作成しました。
ポリシードキュメントは以下のようにします(AWSアカウントはマスクしています)
この設定では、 test@scsk.jp 宛のメールのみ送信を許可するように設定しています。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "stmt1766585448102",
"Effect": "Deny",
"Principal": "*",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "arn:aws:ses:ap-northeast-1:123456789012:identity/scsk.jp",
"Condition": {
"ForAnyValue:StringNotEquals": {
"ses:Recipients": "test@scsk.jp"
}
}
}
]
}
本ポリシーを設定し、適用します。
テスト
ID画面上の「テストEメールの送信」をクリックします。
許可されていない宛先を指定すると、下記のようにアクセス権がないというエラーが発生するはずです。
まとめ
今回はAmazon SESの小ネタをご紹介させていただきました。
開発/検証環境のメール環境においては、転ばぬ先の杖ということで必ず設定しておきましょう。
私は今年最後の投稿になるかもしれませんが、来年もTechHarmonyエンジニアブログ共、引き続きご愛顧の程よろしくお願いします。
皆様の2026年が良い年になりますように。今年もありがとうございました。




