AWS環境ならSSL証明書が無料!? AWS Certificate Managerについて ~番外編 SESでのメール受信~

これまでAWSのSSLサービス、AWS Certificate Manager(以下ACM)について、紹介編と導入編を投稿させていただきました。

前回までの内容をご覧になっていない方は以下リンクをご覧ください。
AWS環境ならSSL証明書が無料!? AWS Certificate Managerについて ~概要編~
AWS環境ならSSL証明書が無料!? AWS Certificate Managerについて ~導入編~

今回は導入編でも触れました、SESでのメール受信方法を投稿させていただきます。こちらは申請するドメインにて、AWSからの認証メールを受信する環境がない時に使えます。

事前に

  • DNSはRoute53を使用
    SESを使用するに辺り、DNSはRoute53を使用すると非常にスムーズに行くため、今回の検証でも使用しております。

  • メール受信用S3バケットが必要
    今回メールの保存先はS3バケットを使用しております。こちら事前に作成が必要となっており、ポリシーによって外部よりの書き込み許可を与える必要もございます。
    本来はバケットポリシーにてSESよりの書き込みのみに制限すべきですが、今回はメール受信のみの利用となっており、使用後削除を考えているため、「被付与者:全員」「アップロード/削除許可」のアクセス許可設定を行っております。

0.バケットポリシー

こちらが準備できているのであれば、SESよりメール受信設定を行いましょう。

SESにてドメイン認証

AWSのコンソールよりSESを選択します。

1.SES選択

残念ながら、現在東京リージョンではSESを使用できないため、別のリージョンを選択する必要があります。検証では東京に一番近いオレゴンを選択しております。

2.地域選択

SESのメニューよりDomainsを選択し、「Verify a New Domain」を選択します。

3.domains

Domainの項に証明書を申請するドメインを入力し、「Verify This Domain」を選択します。

4.ドメイン入力

ドメイン認証のために必要なTXTレコードと、メール受信に必要なMXレコードが確認できます。
このレコードをRoute53に設定するため、「Use Route 53」を選択します。

5.認証内容確認

「Domain Verification Record」「Email Receiving Record」にチェックを入れます。「Hosted Zones」にはRoute53に登録されているドメインが表示されるため、申請するドメインにチェックを入れてください。

6.route53追記内容確認

設定を完了すると、申請したドメインのステータスが「pending verification」となっており、申請中であることがわかります。

8.pending verification

数分待機しているとステータスが「verified」となり、申請が完了します。

9.verified

Route53に設定されている、該当ドメインのレコードを見ると、先程設定したTXT/MXレコードが登録されていることを確認できます。

7.route53確認

これでSESにて該当ドメインを使用する申請が完了しました。次は受信設定を行っていきます。

SESでのメール受信設定

SESのメニューよりRule Setsを選択すると、どのRule setを編集するか確認できます。ここではデフォルトで登録されている「default-rule-set」に設定するため、「default-rule-set」の「View Active Rule Set」を選択します。

10.Create Rule set

「Create Rule」を選択します。

11.Create Rule

「Recipient」の項に先程申請したドメインを入力し、「Add Recipient」を選択します。

12.登録前

該当のドメインが入力されましたこと確認したら、Next Stepを選択します。

13.登録後

ここではどこにメールを配送するか選択します。今回はS3を使用しますので、「Add action」の項目にてS3を選択してください。

14.S3選択

「S3 backet」の項目で事前準備にて作成したバケットを選択します。今回その他に設定はしないため、2つめのActionにて「Stop Rule Set」を選択し、Next Stepを選択します。

15.S3設定内容

「Rule name」に本ルール名を入力してください。その他の設定はデフォルトで構いませんので、Next Stepを選択します。

14.5 ルール名

設定内容を確認します。問題がなければCreate Ruleを選択してください。

16.Review

設定が完了したら、該当のルールが「Enabled」となっていることが確認できます。

17.enabled

これにてメールをS3に配送する設定が完了しました。これで証明書の認証メールを受け取る準備が出来ましたのでACMより申請しましょう。
※このタイミングでリージョンをオレゴンより東京に戻しておきましょう。戻し忘れているとこれよりの操作全てオレゴンリージョンで行ってしまいます。

ACM認証

ACMのメニューより証明書のリクエストを行います。今回はドメインそのものに加え、ワイルドカード証明書としても使用出来るよう別名を指定したものを発行します。

18.確認とリクエスト

認証申請後、状況が「検証保留中」となっていることが確認できます。このタイミングにてメールが既に送信されているため、S3を確認します。

19.検証保留中

設定したS3のバケットを確認すると、メールが11通ほど届いております。「AMAZON_SES~」から始まるものは、SESの設定時送信されていたメールなので、それ以外の10通がACMよりの認証メールとなります。(1つの申請につき、administrator@等宛に5通ずつ送信されるが、今回はドメインに加えワイルドカードも併せて申請しているため、10通受信している)

20.バケット中身

ファイルの中身にメールの本文等記載されているため、中身を確認する必要があります。ここの確認方法は自由ですが、今回はサーバ内よりawsコマンドにて直接取得しました。
まず下記コマンドにてメールのファイルを取得します。

該当ファイル群より、認証用のURLを抽出します。抽出方法も様々あるかとは存じますが、ここでは下記コマンドにて「https://~」より始まる行のみを抽出しております。
URLを抽出することができたら、該当のURLにアクセスします。今回は2つ申請しているため、双方のURLにアクセスする必要があります。

該当のURLにアクセスすると、認証画面が表示されます。「I Approve」を選択します。

21.I approve

Success!と認証が出来た旨表示されます。もう一方のURLにもアクセスし、同様の作業を行ってください。

22.success

2つとも認証を終えACMのメニューを確認すると、先程「検証保留中」だったものが「発行済み」となり使用可能となったことが確認できます。これにて本証明書が使用可能となりました!

23.発行済み

まとめ

今回はSESを使用したACMの認証方法を紹介しました。これにて発行したいドメインのメール受信環境がない状況であっても、ACMにて証明書を発行することが可能となっております。
使用したS3バケット等は、メールを受信するためだけに使用致しましたので、不要であれば削除してしまって構いません。

3回に渡ってACMを紹介してきましたが今回が最後となります。無料で発行することが出来、証明書の更新作業も不要となっているため、現在ELBを使用している環境で証明書をご検討であれば、導入をお勧め致します。

今回はここまでとさせていただきます。

投稿者プロフィール

yajima
未経験で中途入社でした文系エンジニア。
顔と年齢の差が激しいとよく言われます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.