
Cognitoの送信元アドレスをRoute53のドメインアドレスにカスタマイズ
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
アプリケーションの認証にCognio User Poolを使っている場合、Cognitoから送信されるシステムメールの送信元はデフォルトだと no-reply@verificationemail.com になっています。
この送信元アドレスをRoute53で取得したドメインのメールアドレスにカスタマイズする方法をご紹介したいと思います。
変更するためには、まずAmazon SES(Simple Email Service)に変更後のアドレスを登録する必要があります。
しかし、単にRoute53で取得したドメインだと、メールサーバーがない為SESの検証メールを受信できずSESに登録できません。 なので今回はAmazon SNS(Simple Notification Service)を使ってSESの検証メールを別の受信アドレスに飛ばして進めたいと思います。
また、受信できるアドレスであれば以下の手順で変更することができます。
シチュエーション
- SESは東京リージョンでは使えないのでここではバージニアリージョンを使用
- ドメインはRoute53で取得済み
- ドメイン:
okaharuna.ga - 変更後のアドレス:
no-reply@okaharuna.ga - 検証メールを受け取るアドレス:
test@gmail - DKIM認証
大まかな手順
- ドメインの登録&検証(SES)
- トピック&サブスクリプションの作成(SNS)
- 受信ルールの設定(SES)
- メールアドレスの登録&検証(SES)
- 送信元アドレスの設定(Cognito)
手順
ドメインの登録&検証(SES)
- コンソールSESページの左ペインから
Domainsを選択します。 Verify a New Domainをクリックします。
-
ドメインを入力して
Verify This Domainをクリックします。DKIM認証が必要な場合はチェックを入れましょう。
-
ドメインの検証がpendingになったので次はDNSの設定です。ドメインがRoute53にある場合は
Use Route53のボタンが出てきます。これを押せば自動的にレコードを追加してくれるので楽チンです。
-
MXレコードにもチェックを入れて、
Create Recode Setをクリックします。
-
pending verificationのステータスでドメインが追加されています。
-
Route53の方を見てみると各レコードが自動的に追加されています。

トピック&サブスクリプションの作成(SNS)
SESの検証メールを受信するための設定を行います。 作成したトピックをSESから設定するため、バージニアリージョンを使用します。
- SNSコンソールを開き左ペインからトピックを選択します。
新しいトピックの作成をクリックします。
-
任意のトピック名を入力して作成します。

-
トピックが作成できたら実際に受信するメールアドレスを設定するサブスクリプションを作成します。トピックにチェックをつけて
アクションのプルダウンを開いたらトピックへのサブスクリプションを選択します。
-
プロトコルに
Emailを選択して、エンドポイントには実際に検証メールを受信するアドレスを入力します。
-
サブスクリプションが作成されるとエンドポイントに設定したアドレスに検証メールが届いています。 メール内の
Confirm subscriptionのリンクをクリックします。
-
リンクを踏むと
Subscription confirmed!のページが開かれます。
これでエンドポイントの設定が完了です。 次に、SESで受信ルールを作成します。
受信ルールの設定(SES)
- SESコンソールを開き、左ペインから
Rule Setsを選択します。開いたらCreate a Receipt Ruleをクリックします。
-
Receipient欄に送信元に設定したいアドレスを入力して、
Add Receipientをクリックします。
-
statusが
pendingの状態で追加されたら、Next Stepをクリックします。
-
ここで先程作成したSNSトピックを設定します。
Add actionでSNSを選択し、プルダウンから作成したSNSトピックを選択したらNext Stepをクリックします。 ※プルダウンに表示されない場合、別リージョンになっている可能性があります。
-
確認して
Create Rule
ここまでで、no-reply@okaharuna.ga宛のメールを test@gmailで受信できるようになりました。
次はSESにno-reply@okaharuna.gaを登録します。
メールアドレスの登録&検証(SES)
- SESコンソールの
Email Addressesを選択して、Verify This Email Addressをクリックします。
-
送信元アドレスを入力して
Verify a New Email Addressで登録します。
-
登録すると、
test@gmail宛に検証メールが届いているかと思います。 件名はAmazon SES Email Receipt Notificationです。 メール内のhttps://email-verification.us-east-1.amazonaws.comで始まる検証リンクがあるはずなので、それをクリックしましょう。
クリックするとこんな画面になります。

メールアドレスのstatusもpendingからverifiedになっていることを確認します。

送信元アドレスの設定
ここでようやくno-reply@okaharuna.gaをCognitoの送信元アドレスに設定できるようになります。

テスト
試しにユーザーを作成してみましょう。
招待メールの送信元アドレスがきちんとRoute53のドメインのアドレスに変更できています。

まとめ
Cognitoのシステムメールの送信元アドレスをRoute53のドメインのアドレスに変更する方法をご紹介しました。 送信元に設定したいアドレスが、メールを受信できないアドレスであっても、SNSのトピックとSESの受信ルールを設定する事で検証することができました。
ちなみに今回使用したドメインはfreenomで取得したものです。 freenomで取得したドメインをRoute53で管理する方法は以下の記事で紹介されていますので参考にして下さい。









