Menu

BLOG ベアメールブログ

Amazon Route 53でSPF・DKIM・DMARCのDNSレコードを設定する

パブリッククラウドのグローバルスタンダードの一つであるAWS。無い機能は無い?とまで言われるAWSが提供するDNSサービスが「Amazon Route 53」です。本記事では、Route 53でのSPF・DKIM・DMARCレコードの設定方法について解説します。

Route 53 とは

Amazon Web Service (AWS)が提供している、ドメインの取得・管理・運用サービスです。

Route 53のメリット

公式ページによると、「ドメイン登録、DNS ルーティング、ヘルスチェックの 3 つの主要な機能を任意の組み合わせで実行できます」ということです。

ブラウザでAWSのコンソールから比較的簡単に操作が可能で、DNSサーバの用意やその設定・管理等が不要です。

Route 53のデメリット

AWSの他のサービスと同様、基本的に使った分に対して課金される従量制の費用体系です。そのため、利用料が一定ではありませんし、利用方法やDNSへのクエリ数によっては想定外の費用になってしまう懸念があります。

また、メリットでもあるのですが、とても多機能です。よって、使わない機能が多くある場合は多少わかりづらい部分もあると思われます。

Route 53でSPF・DKIM・DMARCレコードを設定する流れ

Route 53でSPF・DKIM・DMARCを設定する手順は以下の通りです。

① AWSのマネジメントコンソールにログイン

Amazon Web Service「AWS マネジメントコンソール」https://aws.amazon.com/jp/console

ログインしたら、コンソールホームの上段検索窓に「Route 53」と入力し、選択します。

AWSマネージドコンソールのスクリーンショット

② ホストゾーンを選択

左のメニューから「ホストゾーン」を選択します。

ホストゾーン選択の画面

③ ドメインを選択

対象のドメインを選択します。

対象ドメインの選択画面

④ DNSレコード設定画面に移動

「レコードを作成」をクリックします。

ホストゾーンの編集画面

⑤ SPF・DKIM・DMARCレコードの設定内容を入力

レコードの作成画面。レコード名、レコードタイプ、値を入力します

「別のレコードを追加」をクリックすることで、3つのレコードを続けて入力することができます。

以下は各レコードのサンプルです。

■SPF

SPFレコードには、メール送信に利用するメールサーバーのIPアドレスをすべて記載する必要があります。以下のサンプルでは、そのドメインのMXサーバーと、メールを送信するサーバーのIPv4アドレスを指定し、それ以外のIPアドレスを「~all」でSoftfail(完全に拒否とはしないが、疑わしいメールとしてマークする)にしています。

example.com.  TXT     “v=spf1 +mx ip4:[そのドメインでメールを送信するIPアドレス] ~all”
レコード名なにも入力しなくてOKです
レコードタイププルダウンで「TXT」を選択してください
上記の “v=spf1 から始まる””で囲んだ部分を入力します(「””」の入力も必要です)

※SPFレコードの詳しい書き方は別途以下の記事を参考にしてください。
SPFレコードの書き方とは? 記述例を総まとめ | ベアメールブログ

■DKIM

DKIMはSPFやDMARCと異なり、DNSのレコードだけで完結するものではありません。DKIM署名を行うメールサーバーの秘密鍵とペアになる公開鍵を公開するためのものです。
以下の例において ”p=” で指定しているのが公開鍵の情報で、今回は鍵長が1028bitと2048bitの2パターンを記載しています。以下はサンプルのため、実際には正しい公開鍵情報を使用してください。

<1028bit の場合>

default._domainkey.example.com.  TXT "v=DKIM1; k=rsa; p=MMRTYA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJNtEcnCoi844trqgs9ijYEHE2zlXBrz/yEJPcNIPGChsNvbSm2sUiH3uiu+AkaB4EelRoUFm9hzLiWIBffiS94o1r0ZlyVWIVP7m0Eh9CmooHfhaXMl7jJHUvfJz+Z9+mEdLNHmgTZOAx/2Hv4rQR/wd3YXEDZ7y8eAfOKk0BsQIDAQAB"

<2048bitの場合>

default._domainkey.example.com.  TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApU0CCtA1vPzTm1X1Jcz7U9mxSzS9WRAuCRwE2hmPJJRTXvP1o4fV5NjYRugdNnWK811U1ALwiOF79mdAoMX8Nnu86KDDoGSS3Ae7JEwaE55pjjKWWeIAuBAc93AU+kpc7EF/zA9L+Ujo6Tl96myw9a" "1TGaT5pvV2XvnV3V0HqjOcxnfUtw1sx/2K7u98AQSqPHOKKk9d1V3dP3A1i9DbqefxiPvAYL3RSaDU8OqtuQKLNs9s240B0ma7yySYMQOHD8e11Rf3O7CoBehmZyK8R0EVozicnX0kkSWBEvBbW9PsBiJAuQf20fFvFfaEHhMSXtGy4179KgoCY2BH4EduLQIDAQAB"
レコード名「default(※セレクタ名)._domainkey」を入力します(最後の「.」は不要です)
レコードタイププルダウンで「TXT」を選択してください
“v=DKIM1; から始まる ”” で囲んだ部分を入力します(「””」の入力も必要です)

DNSサービスによっては、TXTレコードに設定できる文字数に制限があり、2048bitの公開鍵を登録できないケースがあります。Route 53は、上記のとおり1024bit・2048bit どちらの鍵長でも設定可能です。

ただし2048bitの場合は、鍵長がDNSの仕様の上限である255文字を超えてしまうので、上記のとおり途中で「””」で区切り、2つに分ける必要があります。

※DKIMに関しては別途以下の記事も参考にしてみてください。
DKIM認証が失敗する原因とは? DKIM failの修正方法 | ベアメールブログ

■DMARC

DMARCは、以下のレコードを設定するだけなので簡単です。

_dmarc.example.com.  TXT "v=DMARC1; p=none; sp=quarantine; rua=mailto:[DMARCレポートを受信するメールアドレス]; ruf=mailto:[DMARCレポートを受信するメールアドレス] adkim=r; aspf=r;"
レコード名「_dmarc」を入力します(最後の「.」は不要です)
レコードタイププルダウンで「TXT」を選択してください
上記の”v=DMARC1; から始まる ”” で囲んだ部分を入力します(「””」の入力も必要です)

※DMARCレコードの詳しい書き方は、別途以下の記事を参考にしてください。
DMARCレコードの書き方は? 設定・確認方法や設定例も解説 | ベアメールブログ


入力できたら、「レコードを作成」をクリックします。

このように、青枠で表示されたら設定完了です。

※TTLについて

上記設定時にプルダウンでTTLの値を選択できますが、ここではデフォルト値300(5分)のままにしておきました。レコード内容に間違いがあった場合、修正しても反映に時間がかかってしまう可能性があるためです。長くするのは運用が安定してからにしましょう。

なお、変更の可能性が少ないレコードのTTLは3600(1時間)から86400(1日)が一般的です。

参考:「Amazon Route 53 DNS のベストプラクティス」https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/best-practices-dns.html(2025/1/9確認)

ただ、Route53のDNSは設定追加や変更の情報の反映・伝播が驚異的に早く、以下サイトによると 「変更は 60 秒以内にすべての Route 53 エッジロケーションに反映されます」とのことです!

AWS re:Post「DNS の変更が Route 53 とパブリックリゾルバーに反映されるまでに時間がかかるのはなぜですか?」https://repost.aws/ja/knowledge-center/route-53-propagate-dns-changes(2025/1/9確認)

⑤ 動作確認

念のため、Gmailにメールを送信して設定の正常反映を確認します。

Gmailで対象メールを選択>上段右端の「その他」(タテのポチ三つ)>メッセージのソースを表示
で、SPF DKIM DMARCが「PASS」になっていれば完了です。

Gmailのソースで認証状況を確認

※なお、送信環境によっては、SPFとDKIM認証がPASSしていてもDMARC認証に失敗するケースもあります…。詳しくはこちらの記事をご参照ください。
DMARCのアライメントとは? SPF・DKIMアライメントをPassするためのポイント | ベアメールブログ

まとめ

Route 53はAWSの機能の一つではありますが、DNSサービスとして独立して使うこともできますし、AWS外で運用するシステムとの連携もしやすいです。URL監視機能やGSLB(広域負荷分散)といった高度な機能もありますので、理解して使いこなすことができればより高度な運用ができそうです。

今回の記事は、そのほんの一部の解説ではありますが、SPF・DKIM・DMARCを始め、皆様のメール・DNS運用のお役に立てたら幸いです。