AWSRoute 53メール認証SES

Route 53 で SPF/DKIM/DMARC を設定

ドメイン番人5 分で読めます
目次

Route 53 + SES のレコード構成

この記事でわかること

  • AWS Route 53 でメール認証 3 点(SPF / DKIM / DMARC)を整える順序
  • SES の Easy DKIM と Route 53 の自動レコード登録の流れ
  • SPF の MX レコード連動と include の書き方
  • DMARC を p=none から段階的に強化するロードマップ

全体像:Route 53 + SES の役割分担

AWS で自社ドメイン送信を整える典型構成は Route 53(DNS)と SES(送信)の組み合わせです。役割は明確に分かれます。

  • Route 53: SPF / DKIM / DMARC の DNS レコードを保持
  • SES: 実際の送信と DKIM 署名

すでに別の DNS サービスを使っている場合でも、SES が要求する CNAME / TXT を後から Route 53 以外に登録する流れは同じです。本記事は Route 53 を前提に書きます。

前提:Hosted Zone と SES の Region

example.co.jp の Hosted Zone が Route 53 に作成済みで、ネームサーバーが正しく委任されている前提です。SES は us-east-1 / ap-northeast-1 などリージョンごとの設定で、自社が送信元として使うリージョンを 1 つ決めて始めます。

ステップ 1: SES で ID 検証と Easy DKIM

SES コンソール → Verified identities → Create identity → Domain を選び example.co.jp を入力します。「Use a custom MAIL FROM domain」と「Easy DKIM (RSA 2048)」を有効化。

「Publish DNS records to Route 53」ボタンが表示されれば、SES が必要な CNAME 3 本(DKIM)と MX / TXT(custom MAIL FROM 用)を Route 53 に自動投入します。Hosted Zone が同一アカウントになければ表示されません。

DKIM の中身(セレクタの命名規則と TXT 形式)は DKIM セレクタの読み方 を参照。

ステップ 2: SPF を MX と整合させる

SPF(Sender Policy Framework)は送信元 IP / サーバーを宣言する仕組みです。SES からの送信を許可するレコード例。

example.co.jp.  TXT  "v=spf1 include:amazonses.com -all"

Google Workspace も併用する場合は include を増やします。

"v=spf1 include:_spf.google.com include:amazonses.com -all"

include は内部で別ドメインを参照するため、合計の DNS lookup が 10 を超えると PermError でメールが弾かれます。詳細と回避策は SPF レコード Flattening を参照。

Route 53 では TXT を 1 本に統合し、複数行で書かないよう注意します(SPF は 1 ドメインに 1 本が必須)。

SES + Route 53 の検証フロー

ステップ 3: DKIM を CNAME で SES に委任

ステップ 1 で「Publish DNS records to Route 53」を押した場合、以下のような CNAME が自動登録されます。

abc123._domainkey.example.co.jp  CNAME  abc123.dkim.amazonses.com
def456._domainkey.example.co.jp  CNAME  def456.dkim.amazonses.com
ghi789._domainkey.example.co.jp  CNAME  ghi789.dkim.amazonses.com

SES のコンソール「DKIM」セクションで「Successful」と表示されれば反映完了です。Route 53 の TTL はデフォルト 300 秒で、数分以内に検出されます。

ステップ 4: DMARC レコードを Route 53 に追加

Route 53 のコンソールで _dmarc.example.co.jp の TXT レコードを追加します。最初は p=none でレポート観察モードに。

_dmarc.example.co.jp.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.co.jp; adkim=r; aspf=r"

レポート受信箱は受信専用にし、検証 SaaS(dmarcian / EasyDMARC / Postmark)で集計するのがおすすめです。届かない場合は DMARC rua が届かないとき を確認。

DMARC 用語の前提が不安な場合は DMARC とは を先に読むと迷いません。

ステップ 5: テスト送信と検証

SES の sandbox を解除し、自社の Gmail 等にテスト送信します。Gmail で受信し、メニュー → 「メッセージのソースを表示」で Authentication-Results を確認。

Authentication-Results: mx.google.com;
       dkim=pass header.i=@example.co.jp;
       spf=pass smtp.mailfrom=bounce.example.co.jp;
       dmarc=pass header.from=example.co.jp

3 行すべて pass なら一通り通っています。手順や代替の検証手段は SPF / DKIM / DMARC の確認方法 にまとめています。

ステップ 6: DMARC を段階的に強化

p=none で 2 週間レポートを観察し、想定外の送信元(旧 ESP・グループ会社)が無いことを確認してから quarantine に。さらに 2 週間問題が無ければ reject へ進めます。詳細は DMARC ポリシー強化の手順 を参照。

Route 53 + SES 固有の注意点

1. Hosted Zone が別アカウント

クロスアカウントでは「Publish DNS records to Route 53」が出ません。SES が提示する値を別アカウント / 別 DNS に手動コピーします。

2. MAIL FROM ドメインのバウンス整合

bounce.example.co.jp のような MAIL FROM 専用サブドメインを使う場合、その MX を SES が指示するエンドポイントに向けます。設定漏れがあると SES が「MAIL FROM domain not configured」を返します。

3. Region 違いで DKIM CNAME が増殖

複数 Region から送る場合、Region ごとに別の DKIM セレクタ 3 本が出ます。Route 53 にどんどん溜まりやすいので、使っていない Region の ID は削除しておきます。

まとめ

  • Route 53 + SES の組み合わせは「Publish DNS records to Route 53」で 80% 自動化できる
  • SPF は include の合計 10 lookup 上限に注意
  • DKIM は SES が発行する CNAME を Route 53 に登録
  • DMARC は p=none で観察 → quarantinereject の段階強化

まずは現状を把握しましょう

自社ドメインの SPF・DKIM・DMARC が正しく設定できているかは、ドメイン番人の無料診断で確認できます。Route 53 + SES 構築後の動作確認にもご利用ください。設定にお困りの場合はお問い合わせからご相談ください。

次の一歩は無料診断から。