DKIMメール認証Web 担当者

DKIM の CNAME 委譲とは|SaaS 送信

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

この記事でわかること

  • DKIM の「CNAME 委譲(委任)方式」と「TXT 直書き方式」の違い
  • selector._domainkey.example.com を送信サービス側に CNAME で向ける仕組み
  • 鍵のローテーション(定期的な鍵の入れ替え)を送信サービスに任せられる利点
  • Cloudflare などで設定するときのハマりどころ(CNAME フラット化・プロキシ無効化)

SaaS から送るメールに「自社ドメインで」署名するには

SendGrid・Amazon SES・Mailchimp などの送信サービスからメールを配信するとき、受信側(Gmail / Outlook など)に「このメールは確かに自社ドメインが許可したものだ」と認めてもらう必要があります。その鍵になるのが DKIM(ディーキム:メールに電子署名を付けて改ざんと送信元を検証する仕組み)です。

DKIM では、署名に使う「公開鍵」を DNS に置いて受信側に参照させます。このとき、公開鍵そのものを自社の DNS に書く方法(TXT 直書き)と、送信サービス側が管理する場所へ向き先だけを書く方法(CNAME 委譲)の 2 通りがあります。主要な送信サービスの多くは後者の CNAME 委譲方式を採用しています。

DKIM の前提となる「セレクタ」の考え方はDKIM セレクタとは何かをわかりやすく解説で先に押さえておくと、本記事の内容が理解しやすくなります。

TXT 直書き方式と CNAME 委譲方式の違い

まず 2 つの方式を並べて比較します。

TXT 直書き方式と CNAME 委譲方式の比較

TXT 直書き方式

公開鍵の文字列を、自社ドメインの DNS に TXT レコードとして直接書き込む方式です。たとえば送信サービスの管理画面に表示された長い公開鍵を、selector._domainkey というホスト名の TXT レコードへそのまま貼り付けます。Resend のように、DKIM 用の公開鍵を TXT レコードとして配布する送信サービスもこの形です。

この方式はシンプルですが、鍵を入れ替える(ローテーションする)たびに、新しい公開鍵を自分で DNS に貼り直す必要があります。鍵の管理責任が自社側に残るのが特徴です。

CNAME 委譲方式

公開鍵そのものは書かず、selector._domainkey.example.com というホスト名を、送信サービスが管理するホスト名へ CNAME(別名)で向けるだけの方式です。実際の公開鍵は委譲先(送信サービス側)に置かれており、受信側は CNAME をたどってそこを参照します。

公開鍵の中身を自社 DNS に持たないため、鍵の入れ替えは送信サービス側で完結します。自社側は一度 CNAME を設定すれば、その後の鍵管理に手を触れずに済みます。

selector._domainkey を送信サービスへ向ける仕組み

受信側が DKIM を検証するとき、メールの署名ヘッダーに書かれたセレクタとドメインから selector._domainkey.example.com という名前を組み立て、その公開鍵を DNS に問い合わせます。CNAME 委譲では、この問い合わせが委譲先までたどられて公開鍵にたどり着きます。

受信側が CNAME をたどって公開鍵を参照する流れ

具体的な値は送信サービスごとに異なりますが、形としてはおおむね次のようになります(実際のホスト名やセレクタ名は、各サービスの管理画面に表示される値を使ってください)。

  • Amazon SES(Easy DKIM): <selector>._domainkey.example.com<selector>.dkim.amazonses.com に向ける CNAME を 3 本登録します。SES は 2048 ビットの鍵を既定で使います。
  • SendGrid(Automated Security): s1._domainkey.example.com / s2._domainkey.example.com などの CNAME を含む 3 本を登録します。セレクタ名は管理画面で変更できる場合があります。
  • Mailchimp(Mandrill): mte1._domainkey.example.comdkim1.mandrillapp.commte2._domainkey.example.comdkim2.mandrillapp.com に向ける 2 本の CNAME を登録します。

いずれも、複数のセレクタ(鍵)を並行して用意しておくことで、鍵を切り替える途中でも片方で検証を通せるようにしている点が共通しています。委譲先のホスト名は推測で書かず、必ず管理画面に表示された値をそのままコピーしてください。

鍵ローテーションを送信サービスに任せられる

CNAME 委譲方式の最大の利点は、鍵のローテーションを送信サービス側に任せられることです。

DKIM の鍵は、漏えいリスクを下げるために定期的に新しいものへ入れ替えるのが望ましいとされています。TXT 直書き方式だと、入れ替えのたびに自社で DNS を更新する作業が発生し、貼り間違いや更新漏れがそのまま認証失敗(メールが迷惑メール扱いされる原因)につながります。

CNAME 委譲方式では、自社 DNS には「向き先」しか書かれていません。実際の公開鍵は委譲先にあるため、送信サービスが裏側で鍵を入れ替えても、自社側の CNAME は変えなくて済みます。たとえば Amazon SES の Easy DKIM は鍵を定期的に自動で入れ替える仕様で、SendGrid の Automated Security も安定した CNAME の裏で鍵材料を差し替えていきます。複数セレクタを用意してあるのは、切り替え期間中も古い鍵で署名されたメールを受信側が検証できるようにするためです。

この「設定は一度きり、運用は任せきり」という性質が、送信サービスが CNAME 委譲方式を好む理由です。自社で鍵を保持して管理したい場合は、自前の鍵を持ち込む BYODKIM という選択肢もあります。両者の考え方の違いはBYODKIM とは何かで整理しています。

Cloudflare で設定するときのハマりどころ

CNAME 委譲は仕組みとしては単純ですが、Cloudflare で DNS を管理している場合は 2 つの落とし穴があります。これを踏むと、設定したのに認証が通らないという状態になります。

プロキシ(オレンジの雲)を必ずオフにする

Cloudflare で CNAME レコードを追加すると、初期状態でプロキシ(オレンジの雲アイコン)が有効になることがあります。DKIM の CNAME がプロキシされると、受信側が委譲先の公開鍵を正しくたどれず、検証に失敗します。DKIM 用の CNAME は必ず「DNS only(グレーの雲)」に切り替えてください。

CNAME フラット化(CNAME flattening)に注意する

Cloudflare には CNAME を解決結果(A レコードなど)に置き換えて応答する「CNAME フラット化」という機能があります。これが DKIM 用の CNAME に効くと、受信側が本来たどるべき委譲先の名前にたどり着けず、公開鍵を参照できなくなります。DKIM の CNAME はフラット化の対象にしないよう設定してください。

Cloudflare 環境での DKIM 設定全般の手順はCloudflare での DKIM 設定手順にまとめています。設定後にきちんと検証が通っているかはDKIM の確認方法も合わせてご確認ください。

よくある質問

CNAME 委譲と TXT 直書き、どちらを選べばよいですか

利用する送信サービスが指定する方式に従うのが基本です。SendGrid・Amazon SES・Mailchimp などは CNAME 委譲を前提にしており、管理画面に表示される CNAME をそのまま登録します。Resend のように TXT で公開鍵を配布するサービスもあります。自分で方式を選ぶというより、サービスの案内どおりに設定すると考えてください。

CNAME を登録したのに「未検証」のままです

Cloudflare ならプロキシ(オレンジの雲)が残っていないか、CNAME フラット化が効いていないかをまず確認してください。値のコピー漏れや、ホスト名末尾にドメインが二重に付いてしまう入力ミスも典型的な原因です。反映には時間がかかる場合があるため、登録直後は少し待ってから再確認します。

鍵のローテーションのために自分で何かする必要はありますか

CNAME 委譲方式であれば、基本的に自社側の作業は不要です。鍵の入れ替えは送信サービス側で行われ、自社 DNS の CNAME は変更しなくて済みます。

まとめ

  • DKIM の公開鍵を自社 DNS に直接書くのが TXT 直書き、向き先だけを送信サービスへ向けるのが CNAME 委譲
  • selector._domainkey.example.com を委譲先へ CNAME で向けると、受信側はそれをたどって公開鍵を参照する
  • CNAME 委譲では鍵のローテーションを送信サービスに任せられ、設定は一度きりで済む
  • Cloudflare ではプロキシ(オレンジの雲)をオフにし、CNAME フラット化の対象から外す

自社ドメインの DKIM 設定を確認しませんか

送信サービスの CNAME を登録したのに認証が通っているか不安な場合は、ドメイン番人の無料診断で SPF・DKIM・DMARC の設定状況を数秒で確認できます。CNAME 委譲の設定や送信サービスの切り替えで迷う場合は、お問い合わせフォームから状況をお知らせください。専門家が一緒に整理いたします。

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