Amazon SES のSPF/DKIM設定とドメイン認証
目次
この記事でわかること
- Amazon SES の Easy DKIM と BYODKIM、どちらを選ぶべきかの判定基準
- SES のリージョン(us-east-1 / ap-northeast-1 等)ごとに違う SPF include の値
- Sandbox 環境を解除して本番送信に移るときに DMARC 対応で詰まらないための準備
なぜ SES は「設定したのに届かない」が起きやすいのか
Amazon SES(Simple Email Service)は AWS の汎用メール送信基盤で、トランザクションメール用途で広く使われています。一方、Cloudflare Email Routing や SendGrid のような「全部入り」サービスではないため、ドメイン認証は利用者側で正しく設計する必要があります。
具体的には次の 3 点でつまずくケースが多いです。
- Easy DKIM を有効化しただけで終わってしまう(SPF と DMARC が未対応)
- リージョンを跨いで送信しているのに SPF include が片方しか入っていない
- Sandbox を解除した直後に大量送信して、Gmail 側で迷惑判定される
最新の管理画面操作はAmazon SES 公式ドキュメントをご確認ください。本記事は UI に依存しない設計の方針に絞ります。
Easy DKIM と BYODKIM の選び方
SES は DKIM 鍵の管理方式を 2 つ用意しています。
| 方式 | 鍵の生成と保管 | DNS に書く内容 | 推奨ケース |
|---|---|---|---|
| Easy DKIM | AWS 側で生成・自動ローテート | CNAME 3 本(<token>._domainkey) |
通常はこれで十分。鍵管理を AWS に任せられる |
| BYODKIM (Bring Your Own DKIM) | 利用者が秘密鍵を生成し SES に登録 | 公開鍵を TXT で 1 本 | 既存の DKIM 鍵を流用したい / 監査要件で鍵を自社管理したい |
ほとんどの企業は Easy DKIM で問題ありません。BYODKIM を選ぶのは、すでに別環境で同じセレクタを運用していて移行できないとか、DKIM の秘密鍵を社内 KMS で管理しなければならない監査要件がある場合に限られます。鍵は 1024bit / 2048bit が選べますが、現代では 2048bit が推奨です(DKIM 鍵ローテーションも参照)。
リージョン別 SPF include の落とし穴
SES のメール送信は MTA がリージョン単位で異なるため、SPF の include もリージョンごとに違います。代表的な値は次のとおりです。
| リージョン | 推奨 SPF include |
|---|---|
| us-east-1(バージニア北部) | amazonses.com |
| us-west-2(オレゴン) | amazonses.com |
| ap-northeast-1(東京) | amazonses.com |
| eu-west-1(アイルランド) | amazonses.com |
SES の場合、リージョンを問わず include:amazonses.com で全リージョンの送信元 IP がカバーされる設計になっています。リージョンを跨いで複数 SES アカウントから送る場合でも include は 1 個で済むのが SES の利点です。ただし、独自の専用 IP プール(Dedicated IP)を借りている場合は専用 IP を直接 SPF に書く運用に切り替える企業もあります。
複数の送信サービスと併用すると、SPF lookup 上限 10 個(RFC 7208)にすぐ達します。詳細はSPF レコードのフラット化と上限対策をご参照ください。
Sandbox 解除と DMARC 必須性
新規 SES アカウントは Sandbox モードで作成され、検証済みのアドレス宛にしか送れません。本番運用には「Sending limit increase」リクエストで Sandbox を解除する必要があります。AWS のレビューでは過去の到達率や送信内容も確認されるため、解除申請の前に次を整えておきます。
- DMARC レコードを
p=noneで公開しておく(v=DMARC1; p=none; rua=mailto:...) - rua のレポート受信メールアドレスを実在のものにする
- 1 日数千通以上送る予定なら、初日からフルスロットルではなくウォームアップ(段階的に送信量を増やす)を計画する
Gmail / Yahoo の送信者要件では 5,000 通/日を超えると DMARC が必須です。SES は到達率が低い専用 IP を引いてしまうリスクもあるため、最初から DMARC レポートで状況を可視化する運用が安全です。DMARC 段階強化の進め方はDMARC 設定ガイドを参照してください。
IAM 権限と SMTP 認証情報
SES の送信は 2 つのインターフェースから行えます。
- AWS SDK / API:
ses:SendEmailの IAM 権限を付与した IAM ロールを使う。Lambda / ECS 等の AWS 内部処理に向く - SMTP インターフェース:
aws ses create-smtp-credentialsで発行した SMTP 認証情報を WordPress プラグイン等で利用する
どちらでも送信元アドレスが SES で verifiedかつ DKIM が DNS で公開済みであることが前提です。SDK 利用時は IAM ロールで権限最小化し、長期 SMTP パスワードを残さない構成が推奨です。
設定後の検証はDKIM の仕組みと検証手順を参照。dig か無料ドメイン診断でまとめて確認できます。
まとめ
- 通常は Easy DKIM。鍵を自社管理する監査要件があれば BYODKIM
- SES の SPF include はリージョン横断で
amazonses.com1 個で OK - Sandbox 解除前に DMARC
p=noneを公開し、rua アドレスを実在にする - IAM 権限は最小化、SMTP 認証情報の長期保管は避ける
- 5,000 通/日を超える予定なら DMARC 必須要件を見越したウォームアップ
- 最新の管理画面操作は必ずAmazon SES 公式ドキュメントで確認
自社の状況を確認してみませんか
設定状況がわからない方は、無料のドメイン診断で現状をチェックできます。 DMARC・SPF・DKIM・SSL の状態が数十秒でレポートされます。 判断に迷う場合はお問い合わせからご相談ください。専門家がわかりやすくサポートいたします。