Amazon SESを自分のドメインでメール送信してどのように認証されるか確認した
公開日: 2024/11/04
概要
Amazon SESで実際にメールを送信することでメールの検証についてについて少し勉強になった。 SPF,DKIM,DMARCの設定をそれぞれ実施してどのような挙動になるか確認した。
ドメインの登録
ドメインはこのブログでも使用しているものを使った。
このドメインはムームードメインからNSレコードでサブドメイン含めすべてをCloudflareに委任している。
Cluodflare上で設定することもできるが設定の簡単さのため、mail
サブドメインをそこからさらにRoute53にNSレコードで委任する。
SPF設定なし/DKIM署名なし/DMARC設定なし
まずはDNSの登録までおこないDKIM、SPF、DMARCの設定をしない状態でメールを送ってみる。
手順
IDを作成しIDタイプをドメイン、ドメインを mail.kktkht94.work
に設定する。
比較のため一旦カスタムMAIL FROMドメインの使用、DNSレコードのRoute53への発行、DKIM署名を無効にする。
DKIMはEasy DKIMを設定しておく。
この状態ではDNS検証されていないので誰でも他人のドメインを勝手に設定できてしまうことになる。 そのため、テストメールを送ることもできない。
DNSサーバに検証用のレコードを追加する。Route53にDNSレコードをワンクリックで追加できる。
Route53側を見るとCNAMEレコードが3つ追加されていた。 CNAMEでAmazon SESで管理するドメインを指定することで実際の署名自体は記載しないようだ。
これでドメインが検証済みとなった。テストEメールを送信してみる。
結果
Gmailメールを受信できた。SPFもDKIMもpassしている。
メールのAuthentication-Resultsヘッダを確認してもpassしていることがわかる。 どちらもap-northeast-1.amazonses.comとしてpassしている。
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=wf7ez2pjvcsodozkoqksj277kza7wu47 header.b=Bp3zwBAT;
spf=pass (google.com: domain of 01060192f6bcf19c-b0104cf4-439f-4763-b934-f987f089f32e-000000@ap-northeast-1.amazonses.com designates 23.251.234.8 as permitted sender) smtp.mailfrom=01060192f6bcf19c-b0104cf4-439f-4763-b934-f987f089f32e-000000@ap-northeast-1.amazonses.com
mail.kktkht94.workとしては何も設定していないのでpassしていない。
DKIM署名の追加
引き続きでDKIM署名を有効にしてメール送信してみる。
手順
DKIM署名を有効にする。
結果
Authentication-Resultsにmail.kktkht94.work
のドメインが追加された。
これによりDKIM署名のドメインとメール送信元(From)のドメインが一致するようになった。
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=5fk64cpnhu4ib67isszacsaptfn4wpix header.b=E1Vbe2WQ;
dkim=pass [email protected] header.s=wf7ez2pjvcsodozkoqksj277kza7wu47 header.b=IhFJqhog;
spf=pass (google.com: domain of 01060192f698a1ad-4238de79-f8b0-4082-93e2-10f7f1020c90-000000@ap-northeast-1.amazonses.com designates 23.251.234.10 as permitted sender) smtp.mailfrom=01060192f698a1ad-4238de79-f8b0-4082-93e2-10f7f1020c90-000000@ap-northeast-1.amazonses.com
SPF設定の追加
ここから更にSPFについてもメール送信元と一致するようにする。
手順
MAIL FROMドメインをカスタムにする。
ここでサブドメインを指定する必要があるためspf
とした。
SPFのためにAmazon SESのTXTレコードとMXレコードを追加する。こちらについてもボタンをクリックだけで実施できる。 TXTレコードを見るとamazonses.comをincludeしている。
結果
これでSPFについても自身のドメインでpassされることを確認できた。
ドメインはspf.mail.kktkht94.work
となっている。
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=5fk64cpnhu4ib67isszacsaptfn4wpix header.b=ZJLwsNrV;
dkim=pass [email protected] header.s=wf7ez2pjvcsodozkoqksj277kza7wu47 header.b=Uk50hfqH;
spf=pass (google.com: domain of 01060192f6a02e0a-259e68ff-e0eb-4e05-b6f9-02cd4cd546af-000000@spf.mail.kktkht94.work designates 23.251.234.9 as permitted sender) smtp.mailfrom=01060192f6a02e0a-259e68ff-e0eb-4e05-b6f9-02cd4cd546af-000000@spf.mail.kktkht94.work
DMARC設定の追加
ここまででSPFのドメイン検証とDMARC署名の検証を自身のドメインでできるようになった。最後にDMARCの設定を追加する。
手順
こちらもボタンクリックで追加できた。
"v=DMARC1; p=none;"
となっており特にDMARCとしての設定は追加でしていない。
結果
Authentication-Resultsを確認しDMARCもpassされることを確認した。
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=5fk64cpnhu4ib67isszacsaptfn4wpix header.b=YSMfOuYj;
dkim=pass [email protected] header.s=wf7ez2pjvcsodozkoqksj277kza7wu47 header.b=hAmHHFwc;
spf=pass (google.com: domain of 01060192f69b485e-e0626f05-c8ee-4775-a249-5eb4f66fd6b6-000000@admin.mail.kktkht94.work designates 23.251.234.9 as permitted sender) smtp.mailfrom=01060192f69b485e-e0626f05-c8ee-4775-a249-5eb4f66fd6b6-000000@admin.mail.kktkht94.work;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mail.kktkht94.work
DKIM署名あり、SPF設定なし、DMARC設定ありの確認
ここでSPF設定をあえて削除したがDMARCはpassのままだった。
SPFがap-northeast-1.amazonses.com
に戻っている。
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=5fk64cpnhu4ib67isszacsaptfn4wpix header.b=iNKFR56v;
dkim=pass [email protected] header.s=wf7ez2pjvcsodozkoqksj277kza7wu47 header.b=bmcuY1SQ;
spf=pass (google.com: domain of 01060192f6f6b342-2ba8b635-97eb-4348-9d39-df6115ed1623-000000@ap-northeast-1.amazonses.com designates 23.251.234.12 as permitted sender) smtp.mailfrom=01060192f6f6b342-2ba8b635-97eb-4348-9d39-df6115ed1623-000000@ap-northeast-1.amazonses.com;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mail.kktkht94.work
DKIM署名なし、SPF設定なし、DMARC設定ありの確認
さらにDKIM署名も無効にしたところ、DMARCはfailとなった。
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=wf7ez2pjvcsodozkoqksj277kza7wu47 header.b=BP4adKyP;
spf=pass (google.com: domain of 01060192f6f85d0c-90e92a54-dd8e-4f70-a01e-a1380725d9a1-000000@ap-northeast-1.amazonses.com designates 23.251.234.8 as permitted sender) smtp.mailfrom=01060192f6f85d0c-90e92a54-dd8e-4f70-a01e-a1380725d9a1-000000@ap-northeast-1.amazonses.com;
dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mail.kktkht94.work
DKIM署名なし、SPF設定あり、DMARC設定ありの確認
さらにSPFを再度設定したところDMARCがpassとなった。 DMARCがpassするためには、SPFまたはDKIM署名についてメール送信元のドメインと一致している必要があることを確認できた。
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=wf7ez2pjvcsodozkoqksj277kza7wu47 header.b=GAQiyp75;
spf=pass (google.com: domain of 01060192f71530e9-342c9ac8-e12f-4104-bc0c-f3e2704840a3-000000@spf.mail.kktkht94.work designates 23.251.234.8 as permitted sender) smtp.mailfrom=01060192f71530e9-342c9ac8-e12f-4104-bc0c-f3e2704840a3-000000@spf.mail.kktkht94.work;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mail.kktkht94.work
感想
SPF/DKIM/DMARCについてそれぞれのON、OFFの設定をすることで仕組みが少しだけわかった。 Gmailのガイドラインはこれだけではないので用途に合わせて再確認する。
それぞれについて深くわからなくてもDNSサーバへの追加するだけで対応でき、メールサーバを用意しなくてよいのは本当に便利。