Help us understand the problem. What is going on with this article?

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ですね。

結び

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした