AWS
ses
route53
DKIM
送信ドメイン認証

AWS SESで送信ドメイン認証を設定する

More than 1 year has passed since last update.


送信ドメイン認証


  • 前回の記事では送信ドメイン認証について簡単にまとめてみました。

  • 今回はAWS SESを用いて実際に送信ドメイン認証を導入してみます

送信ドメイン認証についておさらいしたい方はこちらの記事もどうぞ↓


なりすまし攻撃の危険性

送信ドメイン認証



AWS SESとは


SES = Simple Email Service の略



  • AWSが提供する、メールを送ることに特化したシステムです。本来メールを送るには、いろいろとインストールをしたり、セットアップしたり、ライセンスが必要だったりします。でも、Amazon SES は単純に API を使うだけで利用出来ます。というかコンソール上でだいたいのことができます。


今回関わるものたち


  • AWS SES (上述のとおり)

  • AWS Route53 (AWSのDNSウェブサービス SESを使うならこれが便利)

  • Freenom (無料ドメインがもらえるDNSウェブサービス)

  • Gmail


送信ドメイン認証の導入

では本題の送信ドメイン認証の導入をしていきます。

今回はDKIMの設定をすることとします。

まずは、SESのDomainsの設定からです。AWS SESのコンソール画面へ行きます。


image


これはSESコンソールのDomains画面です。モザイクをかけていますが、3つドメインがありますね。

ここで、この記事のゴールを以下のように設定しましょう。


  • DKIMによって認証されたドメインがこの画面に追加されていること

  • DKIMによって認証されたドメインからメールを送ること

これらのゴールに向けて進めていきます。

では、次にドメインを入手します。ドメインの入手方法は以下の2つを紹介しようと思います。


・AWS Route53 (AWSのDNSウェブサービス SESを使うならこれが便利)

・Freenom (無料ドメインがもらえるDNSウェブサービス)



AWS Route53を使う場合

送信ドメイン認証の設定は非常に簡単ですが無料のドメインは無かったと思います。

すでに持っている方はいいですが、試しにこれからやってみる程度の温度感の場合ちょっと有料だと気が引けますね。

有料でもいいから試してみたいという方はこちらの記事を参考にドメインを取得してみてください。


http://qiita.com/sk565/items/2da1fc0c5fc676f54994



無料ドメインで試す場合

海外のサービスですが、freenomというDNSサービスを発見しました。期間はありますが、無料でドメインが取得できるのでこちらでも試すことができます。


http://www.freenom.com/ja/freeandpaiddomains.html


さて、ドメインを入手したらいよいよ送信ドメイン認証の導入作業に入ります。

先ほどのSESコンソールのDomains画面で「verify a New Domain」を押します。

すると、以下のような画面が出てくるので、登録するドメインを入力します。

このとき、「verify a New Domain」を押す前に「Generate DKIM Settings」にチェックを入れるのをお忘れなく。


image


「Verify this Domain」を押すと、以下のようにDKIMの設定に必要なレコードが複数出てくるので、これらを控えておいてください

もし、Route53で取得したドメインを使った場合は「USE Route53」のボタンが出現しこちらを押すだけでDKIMの設定が完了するので、レコードを控える必要もないです。おつかれさまでした。


image


Route53でドメインを取得していない場合は、先ほど控えたレコードをDNSサービス側で設定してあげなければなりません。

今回は先ほど紹介したfreenomでの作業例を紹介します。

こちらがfreenomのDNSレコード設定画面です。

取得したドメインに対して先ほど控えておいたTYPEがTXTのレコード1件と、TYPEがCNAMEのレコード3件を登録します。


image


登録が完了したら、数日待ちましょう。そのうち認証されます。


認証できているかどうかの確認(SESコンソール)

認証が完了した場合、DKIM欄の「pending verification」の文字列が


image


以下のように「verified」になります。この状態になればドメインに対してDKIMの設定が完了となります。


image



送信実験

せっかくドメインの認証をしたので、メールを送ってみましょう!

SESコンソールから、先ほど認証を済ませたドメインを選択して、「Send a test Email」します。


image


テストの時は何でもいいのでGmailのアカウントに送ってみましょう。確認したいことがあるので。


image


メールを送ったらGmailにログインしてメールを確認。

送信元を見てみましょう。別に普通やん。なんて言わないでください。DKIMが設定されていないとこうはならないのです。


image

では、DKIMが設定されていないドメインからSESを使ってメールを送信したものを見てみましょう。

image


「amazonses.com 経由」とありますね。

Amazon SESを使って普通にメールを送ると受け取った側のGmailでこのような表示がされてしまいます。

Gmailでは送信元アドレスのドメインとメールサーバーのドメインが違う場合には、ドメインを詐称してメールを送っている場合があるので、送信元アドレスとメールサーバーのドメインを両方表示しているというわけです。これは見栄えが悪いですし、スパム扱いされる危険性もあります。

これはDKIMの設定をSESで済ませることによって解決しますので、この記事を読んだ方はDKIM設定を行い「経由」の文字列を消せるようになったというわけです。

最高にCOOLですね。


結び

以前の記事でも書きましたが、送信ドメイン認証はもはや必須の設定とも言えるものになってきています。やってみると案外つまづくこともあると思いますので参考にしていただければ幸いです。