Amazon Cognito ユーザープールの E メール設定 - Amazon Cognito

Amazon Cognito ユーザープールの E メール設定

ユーザープールに関するクライアントアプリでの特定のイベントにより、Amazon Cognito がユーザーに E メールを送信する場合があります。例えば、E メールの検証を必須とするようにユーザープールを設定している場合、ユーザーがアプリの新しいアカウントにサインアップする、またはパスワードをリセットする場合に Amazon Cognito が E メールを送信します。E メールを開始するアクションに応じて、検証コードまたは仮パスワードが含まれます。

E メール配信を処理するには、次のいずれかのオプションを使用できます。

これらの設定は元に戻すことができます。必要に応じて、ユーザープールを更新して切り替えることができます。

デフォルトの E メール機能

サービスに装備されているデフォルトの E メール機能を使用して E メール配信を処理することを Amazon Cognito に許可できます。デフォルトのオプションを使用すると、Amazon Cognito により、限られた数の E メールのみが毎日ユーザープールに対して処理されます。制限の詳細については、「Amazon Cognito のクォータ」を参照してください。一般的な実稼働環境では、デフォルトの E メール制限は必要な配信ボリュームを下回っています。大規模な配信ボリュームを有効にするには、Amazon SES E メール設定を使用する必要があります。

デフォルトのオプションでは、次のいずれかの E メールアドレスを FROM アドレスとして使用できます。

  • デフォルトの E メールアドレス (no-reply@verificationemail.com)。

  • 所有するカスタム E メールアドレス。独自の E メールアドレスを使用する前に、それを Amazon SES で検証し、それを使用するための許可を Amazon Cognito に付与する必要があります。

Amazon SES の E メール設定

アプリケーションは、デフォルトのオプションで利用できるよりも大きいボリュームを必要とする可能性があります。大規模な配信ボリュームを可能にするには、Amazon SES の設定を使用してユーザーに E メールを送信するようにユーザープールを設定します。Amazon SES の設定を使用することで、E メール送信アクティビティのモニタリング機能も向上します。

Amazon SES の設定を使用する前に、1 つ、または複数の E メールアドレスを Amazon SES で検証する必要があります。検証済み E メールアドレスを、ユーザープールに割り当てる FROM E メールアドレスとして使用します。これにより、Amazon Cognito が E メールを送信するときは、代理で Amazon SES を呼び出すことによってその E メールアドレスを使用するようになります。

Amazon SES の設定を使用するときは、ユーザープールの E メール配信制限が、AWS アカウントの Amazon SES 検証済み E メールアドレスに適用される制限と同じになります。

注記

Amazon Cognito を利用できるリージョンは、us-east-1、us-east-2、us-west-2、eu-west-1、eu-west-2、eu-central-1、ap-northeast-1、ap-northeast-2、ap-south-1、ap-southeast-1、ap-southeast-2、および ca-central-1 です。Amazon SES を利用できるリージョンは、us-east-1、us-west-2、eu-west-1 です。

ユーザープールの E メールの設定

ユーザープールの E メール設定を指定するには、以下のステップを完了します。使用する設定に応じて、Amazon SES、AWS Identity and Access Management (IAM)、および Amazon Cognito でのステップを完了することが必要になる場合があります。

注記

これらのステップで作成したリソースを AWS アカウント間で共有することはできません。例えば、1 つのアカウントのユーザープールを、別のアカウントの Amazon SES E メールアドレスで設定することはできません。このため、複数のアカウントで Amazon Cognito を使用する場合は、それぞれのアカウントでこれらのステップを繰り返すようにしてください。

ステップ 1: Amazon SES での E メールアドレスを検証する

次のいずれかを行う場合は、ユーザープールを設定する前に、Amazon SES で 1 つ、または複数の E メールアドレスを検証する必要があります。

  • FROM アドレスとして独自の E メールアドレスを使用する

  • Amazon SES の設定を使用して E メール配信を処理する

E メールアドレスを検証することにより、そのアドレスを所有していることを確認する (不正使用の防止に役立ちます)

この手順のステップについては、Amazon Simple Email Service デベロッパーガイドの「E メールアドレスの検証」を参照してください。

ステップ 2: Amazon SES サンドボックスからアカウントを移動する

Amazon SES の使用を始めて開始するときは、AWS アカウントが Amazon SES サンドボックスに配置されます。Amazon SES は、サンドボックスを使用して不正使用や悪用を防ぎます。Amazon SES 設定を使用して E メール配信を処理している場合は、Amazon Cognito がユーザーに E メールを送信する前に、サンドボックスから AWS アカウントを移動させる必要があります。

デフォルトの Amazon Cognito E メール機能を使用している場合は、このステップを省略できます。

サンドボックスでは、Amazon SES が、送信できる E メールの数と、それらの送信先に制限を課します。E メールは、Amazon SES で検証したアドレスとドメインのみに送信できます。または、Amazon SES メールボックスシミュレーターのアドレスにも E メールを送信できます。AWS アカウントがサンドボックスに置かれている間は、本番環境のアプリケーションに Amazon SES の設定を使用しないでください。この状況では、Amazon Cognito がユーザーの E メールアドレスにメッセージを送信することができません。

サンドボックスの外への移動のための手順については、Amazon Simple Email Service デベロッパーガイドの「Amazon SES サンドボックス外への移動」を参照してください。

ステップ 3: Amazon Cognito に E メール許可を付与する

Amazon Cognito がユーザーに E メールを送信する前に、特定の許可を Amazon Cognito に付与する必要がある場合があります。付与する許可、およびそれらを付与するために使用するプロセスは、デフォルトの E メール機能と Amazon SES の設定のどちらを使用しているかに応じて異なります。

デフォルトの E メール機能を使用するようにユーザープールを設定する場合は、Amazon Cognito がユーザーに E メールを送信する FROM アドレスとして、以下のアドレスのいずれかを使用します。

  • デフォルトのアドレス

  • カスタムアドレス (Amazon SES で検証されたアドレスである必要があります)

デフォルトの E メールアドレスを使用している場合は、Amazon Cognito が追加の許可を必要としないため、このステップを省略できます。

カスタムアドレスを使用している場合、Amazon Cognito には、このアドレスを使用してユーザーに E メールを送信できるようにする追加の許可が必要です。これらの許可は、Amazon SES でアドレスにアタッチされる送信承認ポリシーによって付与されます。Amazon Cognito コンソールを使用してユーザープールにカスタムアドレスを追加する場合は、ポリシーが自動的にアタッチされますが、ユーザープールをコンソール以外 (AWS CLI または Amazon Cognito API を使用するなど) で設定する場合は、ポリシーを独自にアタッチする必要があります。

詳細については、Amazon Simple Email Service デベロッパーガイドの「Amazon SES での送信承認の使用」を参照してください。

例 送信承認ポリシー

以下は、Amazon Cognito が Amazon SES で検証された E メールアドレスを使用して E メールを送信できるようにする送信承認ポリシーの例です。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "stmnt1234567891234", "Effect": "Allow", "Principal": { "Service": "cognito-idp.amazonaws.com" }, "Action": [ "ses:SendEmail", "ses:SendRawEmail" ], "Resource": "<your SES identity ARN>" } ] }

この例では、「Sid」値はステートメントを一意に識別する任意の文字列です。

ポリシー構文の詳細については、Amazon Simple Email Service デベロッパーガイドの「Amazon SES 送信承認ポリシー」を参照してください。

その他の例については、Amazon Simple Email Service デベロッパーガイドの「Amazon SES 送信承認ポリシーの例」を参照してください。

Amazon SES の設定を使用するようにユーザープールを設定する場合、Amazon Cognito には、ユーザーに E メールを送信するときに代理で Amazon SES を呼び出すための追加の許可が必要です。この承認は、IAM サービスで付与されます。

このオプションでユーザープールを設定すると、Amazon Cognito はサービスリンクロールを作成します。これは、AWS アカウントにおける IAM ロールのタイプの 1 つです。このロールには、Amazon Cognito が Amazon SES にアクセスし、お客様のアドレスを使用して E メールを送信できるようにする許可が含まれています。

Amazon Cognito がこのロールを作成する前に、ユーザープールのセットアップに使用する IAM 許可に iam:CreateServiceLinkedRole アクションを含める必要があります。IAM での許可の更新に関する詳細については、IAM ユーザーガイドの「IAM ユーザーのアクセス許可の変更」を参照してください。

Amazon Cognito が作成するサービスリンクロールの詳細については、「Amazon Cognito のサービスリンクロールの使用」を参照してください。

ステップ 4: ユーザープールを設定する

以下のいずれかを使用してユーザープールを設定する場合は、次のステップを完了します。

  • E メール送信者として表示されるカスタムの FROM アドレス

  • ユーザーが FROM アドレスに送信するメッセージを受信するカスタムの REPLY-TO アドレス

  • Amazon SES の設定

デフォルトの Amazon Cognito E メール機能とアドレスを使用する場合は、この手順を完了する必要はありません。

E メールアドレスを設定する

  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/cognito で Amazon Cognito コンソールを開きます。

  2. [ユーザープールの管理] を選択します。

  3. [ユーザープール] ページで、設定するユーザープールを選択します。

  4. 左側のナビゲーションメニューで、[メッセージのカスタマイズ] を選択します。

  5. カスタムの FROM アドレスを使用する場合は、[カスタムの FROM アドレスの追加] を選択し、以下の操作を実行します。

    1. [SES リージョン] で、検証済み E メールアドレスが含まれているリージョンを選択します。

    2. [ソース ARN] で、E メールアドレスを選択します。Amazon Cognito コンソールでは、選択されたリージョンの Amazon SES で検証されたこれらの E メールアドレスのみを選択できます。

    3. [FROM E メールアドレス] で、E メールアドレスを選択します。E メールアドレスを入力するか、自分の名前で E メールアドレスを指定できます。

  6. [Do you want to send emails through your Amazon SES Configuration? (Amazon SES の設定を通じて E メールを送信しますか?)] で、[Yes - Use Amazon SES (はい - Amazon SES を使用します)] または [No - Use Cognito (いいえ - Cognito を使用します)] (デフォルト) を選択します。

    Amazon SES の使用を選択する場合は、変更の保存後に Amazon Cognito がサービスリンクロールを作成します。

  7. カスタムの REPLY-TO アドレスを使用する場合は、[カスタムの REPLY-TO アドレスの追加] を選択します。次に、ユーザーが FROM アドレスに送信するメッセージを受信する E メールアドレスを指定します。

  8. E メールアカウントオプションの設定を終了したら、[変更の保存] を選択します。

[Message customizations] ページでは、検証メッセージをカスタマイズするオプションや、招待メッセージをカスタマイズするオプションも用意されています。