これまで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よりの書き込みのみに制限すべきですが、今回はメール受信のみの利用となっており、使用後削除を考えているため、「被付与者:全員」「アップロード/削除許可」のアクセス許可設定を行っております。

こちらが準備できているのであれば、SESよりメール受信設定を行いましょう。
SESにてドメイン認証
AWSのコンソールよりSESを選択します。

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

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

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

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

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

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

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

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

これでSESにて該当ドメインを使用する申請が完了しました。次は受信設定を行っていきます。
SESでのメール受信設定
SESのメニューよりRule Setsを選択すると、どのRule setを編集するか確認できます。ここではデフォルトで登録されている「default-rule-set」に設定するため、「default-rule-set」の「View Active Rule Set」を選択します。

「Create Rule」を選択します。

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

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

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

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

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

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

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

これにてメールをS3に配送する設定が完了しました。これで証明書の認証メールを受け取る準備が出来ましたのでACMより申請しましょう。
※このタイミングでリージョンをオレゴンより東京に戻しておきましょう。戻し忘れているとこれよりの操作全てオレゴンリージョンで行ってしまいます。
ACM認証
ACMのメニューより証明書のリクエストを行います。今回はドメインそのものに加え、ワイルドカード証明書としても使用出来るよう別名を指定したものを発行します。

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

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

ファイルの中身にメールの本文等記載されているため、中身を確認する必要があります。ここの確認方法は自由ですが、今回はサーバ内よりawsコマンドにて直接取得しました。
まず下記コマンドにてメールのファイルを取得します。
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@XXXXXX.com mail]# aws s3 cp s3://ses-mail-test1100/ . --recursive download: s3://ses-mail-test1100/2u4obj46cr5mfketnXXXXXXXXXXXXXXXXXXXXXXX to ./2u4obj46cr5mfketnXXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/33lq7gbqpdvv8vjn7XXXXXXXXXXXXXXXXXXXXXXX to ./33lq7gbqpdvv8vjn7XXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/91hctf9qd72svgid2XXXXXXXXXXXXXXXXXXXXXXX to ./91hctf9qd72svgid2XXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/7gapmkis5cm03rvklXXXXXXXXXXXXXXXXXXXXXXX to ./7gapmkis5cm03rvklXXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/7fjde6hiuscb5b33lXXXXXXXXXXXXXXXXXXXXXXX to ./7fjde6hiuscb5b33lXXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/o6lbqd7pkgm3uqqv5XXXXXXXXXXXXXXXXXXXXXXX to ./o6lbqd7pkgm3uqqv5XXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/cfhvd4mudo97mea2cXXXXXXXXXXXXXXXXXXXXXXX to ./cfhvd4mudo97mea2cXXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/d5t0a70p8u0bu33raXXXXXXXXXXXXXXXXXXXXXXX to ./d5t0a70p8u0bu33raXXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/1vtukb6le0qihsj66XXXXXXXXXXXXXXXXXXXXXXX to ./1vtukb6le0qihsj66XXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/6c5lial4uc7kgcd71XXXXXXXXXXXXXXXXXXXXXXX to ./6c5lial4uc7kgcd71XXXXXXXXXXXXXXXXXXXXXXX download: s3://ses-mail-test1100/AMAZON_SES_XXXXXXXXXXXXXXXXXXXXXXX to ./AMAZON_SES_XXXXXXXXXXXXXXXXXXXXXXX |
該当ファイル群より、認証用のURLを抽出します。抽出方法も様々あるかとは存じますが、ここでは下記コマンドにて「https://~」より始まる行のみを抽出しております。
URLを抽出することができたら、該当のURLにアクセスします。今回は2つ申請しているため、双方のURLにアクセスする必要があります。
1 2 3 |
[root@XXXXXX.com mail]# cat * | grep "^https" | sort -u https://certificates.amazon.com/approvals?code=1aefbb46XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX https://certificates.amazon.com/approvals?code=578309aaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
該当のURLにアクセスすると、認証画面が表示されます。「I Approve」を選択します。

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

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

まとめ
今回はSESを使用したACMの認証方法を紹介しました。これにて発行したいドメインのメール受信環境がない状況であっても、ACMにて証明書を発行することが可能となっております。
使用したS3バケット等は、メールを受信するためだけに使用致しましたので、不要であれば削除してしまって構いません。
3回に渡ってACMを紹介してきましたが今回が最後となります。無料で発行することが出来、証明書の更新作業も不要となっているため、現在ELBを使用している環境で証明書をご検討であれば、導入をお勧め致します。
今回はここまでとさせていただきます。
投稿者プロフィール
-
未経験で中途入社でした文系エンジニア。
顔と年齢の差が激しいとよく言われます。
最新の投稿
WordPress2018年2月16日本ブログが突然重く…原因は? ※2018/02/19追記あり
AWS2018年2月13日AWS大阪ローカルリージョンが開設されました!
AWS Summit2017年6月7日AWS Summit Tokyo 2017で認定試験を受けてきました
AWS2017年5月31日[速報]Amazon Web Services 2018年の大阪リージョンを開設を発表!