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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

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

ユーザープールを作成した後に、配信オプションを変更できます。

Amazon Cognito は、ユーザーが入力できるコードか選択可能な URL リンクのいずれかを含む E メールメッセージをユーザーに送信します。次の表は、E メールメッセージを生成できるイベントを示しています。

メッセージオプション

アクティビティ API オペレーション 配信オプション 形式オプション カスタマイズ可能 メッセージテンプレート
パスワードを忘れてしまった ForgotPassword E メール、SMS コード いいえ 該当なし
招待 AdminCreateUser E メール、SMS コード はい 招待メッセージ
自己登録 SignUp E メール、SMS コード、リンク はい 検証メッセージ
E メールアドレスまたは電話番号の検証 UpdateUserAttributes E メール、SMS コード はい 検証メッセージ
多要素認証 (MFA) AdminInitiateAuth, InitiateAuth SMS コード Yes¹ MFA メッセージ

¹ SMS メッセージ用。

Amazon SES はメールメッセージに対して料金を請求します。詳細については、「Amazon SES の料金 」を参照してください。

デフォルトの E メール設定

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

デフォルト設定を使用する場合は、 によって AWS 管理される Amazon SES リソースを使用して E メールメッセージを送信します。Amazon SES は、ハードバウンスを返す E メールアドレスをアカウントレベルのサプレッションリストまたはグローバルサプレッションリストに追加します。配信不能な E メールアドレスが後で配信可能になった場合、ユーザープールがデフォルト設定を使用するように設定されている場合、サプレッションリストからの削除を制御できません。E メールアドレスは、 AWSマネージドサプレッションリストに無期限に残すことができます。配信不能な E メールアドレスを管理するには、次のセクションで説明するように、アカウントレベルのサプレッションリストで Amazon SES E メール設定を使用します。

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

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

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

Amazon SES の E メール設定

アプリケーションは、デフォルトのオプションで利用できるよりも大きいボリュームを必要とする可能性があります。可能なデリバリーボリュームを増やすには、Amazon SES リソースとユーザープールを使用してユーザーに E メールを送信します。独自の Amazon SES 設定で E メールメッセージを送信するときに、E メール送信アクティビティをモニタリングすることもできます。

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

Amazon SES の設定を使用する場合は、次の条件が適用されます。

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

  • Amazon SES のアカウントレベルのサプレッションリストで、グローバルサプレッションリストを上書きして、配信不能な E メールアドレスへのメッセージを管理することができます。アカウントレベルのサプレッションリストを使用すると、E メールメッセージのバウンスが送信者としてのアカウントの評価に影響します。詳細については、Amazon Simple Email Service デベロッパーガイドの「Amazon SES アカウントレベルのサプレッションリストの使用」を参照してください。

Amazon SES の E メール設定リージョン

ユーザープール AWS リージョン を作成する には、Amazon SES での E メールメッセージの設定に関する 3 つの要件のいずれかがあります。ユーザープールと同じリージョン、同じリージョンを含む複数のリージョン、または 1 つ以上のリモートリージョンで、Amazon SES から E メールメッセージを送信できます。最適なパフォーマンスを得るには、 オプションがある場合は、ユーザープールと同じリージョンで Amazon SES 検証済み ID を使用して E メールメッセージを送信します。

Amazon SES 検証済み ID のリージョン要件のカテゴリ
リージョン内のみ

ユーザープールは、ユーザープール AWS リージョン と同じ で検証済み ID を含む E メールメッセージを送信できます。カスタム E メールアドレスを使用しないデフォルトの FROM E メール設定では、Amazon Cognito は同じリージョンでno-reply@verificationemail.com検証済み ID を使用します。

下位互換性

ユーザープールは、同じリージョン AWS リージョン または次のいずれかの代替リージョンで、検証済み ID を含む E メールメッセージを送信できます。

  • 米国東部 (バージニア北部)

  • 米国西部 (オレゴン)

  • 欧州 (アイルランド)

この機能は、サービスの起動時に Amazon Cognito の要件に合わせて作成したユーザープールリソースの継続性をサポートします。その期間のユーザープールは、限られた数の で検証済み ID の E メールメッセージのみを送信できました AWS リージョン。カスタム E メールアドレスを使用しないデフォルトの FROM E メール設定では、Amazon Cognito は同じリージョンでno-reply@verificationemail.com検証済み ID を使用します。

代替リージョン

ユーザープールは、ユーザープールリージョン外の代替 で、検証 AWS リージョン 済み ID を含む E メールメッセージを送信できます。この設定は、Amazon Cognito が利用可能なリージョンで Amazon SES が利用できない場合に発生します。 Amazon Cognito

代替リージョンで検証済み ID の Amazon SES 送信承認ポリシーは、発信元リージョンの Amazon Cognito サービスプリンシパルを信頼する必要があります。詳細については、「デフォルトの E メール設定を使用するアクセス許可を付与するには」を参照してください。

これらのリージョンの一部では、Amazon Cognito は のデフォルトの E メール設定のために、E メールメッセージを 2 つの代替リージョンに分割しますCOGNITO_DEFAULT。このような場合、カスタム FROM E メールアドレスを使用するには、各代替リージョンで検証済み ID の Amazon SES 送信承認ポリシーが、発信元のリージョンの Amazon Cognito サービスプリンシパルを信頼する必要があります。詳細については、「デフォルトの E メール設定を使用するアクセス許可を付与するには」を参照してください。これらのリージョンDEVELOPERの の Amazon SES E メール設定では、最初にリストされたリージョンで検証済み ID を使用し、ユーザープールリージョンの Amazon Cognito サービスプリンシパルを信頼するように設定する必要があります。例えば、中東 (アラブ首長国連邦) のユーザープールで、 を信頼するように欧州 (フランクフルト) で検証済み ID を設定しますcognito-idp.me-central-1.amazonaws.com。カスタム E メールアドレスを使用しないデフォルトの FROM E メール設定では、Amazon Cognito は各リージョンでno-reply@verificationemail.com検証済み ID を使用します。

注記

以下の条件の組み合わせでは、リージョン要素でワイルドカードEmailConfigurationを使用して の SourceArnパラメータを 形式で指定する必要がありますarn:${Partition}:ses:*:${Account}:identity/${IdentityName}。これにより、ユーザープールは、両方の の で同じ検証済み ID AWS アカウント の E メールメッセージを送信できます AWS リージョン。

  • は EmailSendingAccount ですCOGNITO_DEFAULT

  • カスタムFROMアドレスを使用します。

  • ユーザープールは代替リージョン で E メールを送信します。

  • ユーザープールには、次の Amazon SES がサポートするリージョンの表で指定されている 2 番目の1代替リージョンがあります。 Amazon SES

AWS SDK、Amazon Cognito API または CLI、、または を使用してプログラムでユーザープールを作成する場合、 AWS CloudFormationユーザープールは AWS CDK、 のSourceArnパラメータでユーザープールにEmailConfiguration指定されている Amazon SES ID を含む E メールメッセージを送信します。Amazon SES ID は、サポートされている を占有する必要があります AWS リージョン。EmailSendingAccountCOGNITO_DEFAULTSourceArn パラメータを指定しない場合、Amazon Cognito はユーザープールを作成したリージョン内のリソースを使用して no-reply@verificationemail.com から E メールメッセージを送信します。

次の表は、Amazon Cognito で Amazon SES ID AWS リージョン を使用できる を示しています。 Amazon Cognito

ユーザープールリージョン リージョンオプション Amazon SES でサポートされているリージョン

米国東部 (バージニア北部)

下位互換性

米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

米国東部(オハイオ)

下位互換性

米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

米国西部(北カリフォルニア)

リージョン内のみ

米国西部(北カリフォルニア)

米国西部(オレゴン)

下位互換性

米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

カナダ (中部)

下位互換性

カナダ (中部)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

アジアパシフィック (東京)

下位互換性

アジアパシフィック (東京)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

アジアパシフィック (ソウル)

下位互換性

アジアパシフィック (ソウル)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

アジアパシフィック(ムンバイ)

下位互換性

アジアパシフィック (ムンバイ)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

アジアパシフィック (ハイデラバード)

代替リージョン

アジアパシフィック (ムンバイ)、アジアパシフィック (シンガポール)1

アジアパシフィック (シンガポール)

下位互換性

アジアパシフィック (シンガポール)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

アジアパシフィック (シドニー)

下位互換性

アジアパシフィック (シドニー)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

アジアパシフィック (大阪)

リージョン内のみ

アジアパシフィック (大阪)

アジアパシフィック (ジャカルタ)

リージョン内のみ

アジアパシフィック (ジャカルタ)

アジアパシフィック (メルボルン)

代替リージョン

アジアパシフィック (シドニー)、アジアパシフィック (シンガポール)1

欧州 (アイルランド)

下位互換性

米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

欧州 (ロンドン)

下位互換性

欧州 (ロンドン)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

欧州 (パリ)

リージョン内のみ

欧州 (パリ)

欧州 (フランクフルト)

下位互換性

欧州 (フランクフルト)、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)

欧州 (チューリッヒ)

代替リージョン

欧州 (フランクフルト)、欧州 (ロンドン)1

欧州 (ストックホルム)

リージョン内のみ

欧州 (ストックホルム)

欧州 (ミラノ)

リージョン内のみ

欧州 (ミラノ)
欧州 (スペイン)

代替リージョン

欧州 (パリ)、欧州 (ストックホルム)1

中東 (バーレーン)

リージョン内のみ

中東 (バーレーン)

中東 (アラブ首長国連邦)

代替リージョン

欧州 (フランクフルト)、欧州 (ロンドン)1

南米(サンパウロ)

リージョン内のみ

南米(サンパウロ)

イスラエル (テルアビブ)

リージョン内のみ

イスラエル (テルアビブ)

アフリカ (ケープタウン)

リージョン内のみ

アフリカ (ケープタウン)

1 デフォルトの E メール設定のユーザープールで使用されます。Amazon Cognito は、各リージョンで同じ E メールアドレスを持つ検証済み ID 間で E メールメッセージを配信します。カスタムFROMアドレスを使用するには、 形式の SourceArn パラメータEmailConfigurationを使用して を設定しますarn:${Partition}:ses:*:${Account}:identity/${IdentityName}

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

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

注記

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

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

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

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

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

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

Amazon SES での E メールアドレスの検証については、Amazon Simple Email Service デベロッパーガイドの「E メールアドレスの検証」を参照してください。Amazon SES でのドメインの検証の詳細については、「ドメインの検証」を参照してください。

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

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

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

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

サンドボックス AWS アカウント から を削除するには、Amazon SES サンドボックス外への移動」を参照してください。

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

Amazon Cognito がユーザーに E メールを送信する前に、特定の許可を Amazon Cognito に付与する必要がある場合があります。付与するアクセス許可と付与に使用するプロセスは、デフォルトの E メール設定を使用しているか、Amazon SES 設定を使用しているかによって異なります。

このステップは、Cognito で E メールを送信するようにユーザープールを設定するか、 EmailSendingAccountを に設定する場合にのみ実行しますCOGNITO_DEFAULT

デフォルトの E メール設定では、ユーザープールは次のいずれかのアドレスで E メールメッセージを送信できます。

  • デフォルトのアドレス no-reply@verificationemail.com

  • Amazon SES で検証済みの E メールアドレスまたはドメインからのカスタム FROM アドレス。

カスタムアドレスを使用している場合、Amazon Cognito には、そのアドレスからユーザーに E メールを送信するための追加のアクセス許可が必要です。これらのアクセス許可は、Amazon SES のアドレスまたはドメインの送信承認ポリシーによって付与されます。Amazon Cognito コンソールを使用してユーザープールにカスタムアドレスを追加する場合、ポリシーは Amazon SES 検証済み E メールアドレスに自動的にアタッチされます。ただし、 AWS CLI や Amazon Cognito API など、コンソールの外部でユーザープールを設定する場合は、Amazon SES コンソールまたは API を使用してポリシーをアタッチする必要があります。 PutIdentityPolicy

注記

FROM アドレスは、 AWS CLI または Amazon Cognito API を使用して検証済みドメインでのみ設定できます。

送信承認ポリシーは、Amazon Cognito を使用して Amazon SES を呼び出すアカウントリソースに基づいてアクセスを許可、または拒否します。リソースベースのポリシーに関する詳細については、 IAM ユーザーガイドを参照してください。リソースベースのポリシーの例についても、Amazon SES デベロッパーガイドで確認いただけます。

例 送信承認ポリシー

次の送信承認ポリシーの例では、Amazon SES 検証済み ID を使用するための限定された権限が Amazon Cognito に付与されています。Amazon Cognito は、条件 aws:SourceArn のユーザープールと条件 aws:SourceAccount のアカウントの両方に代わって送信する場合にのみ、E メールメッセージを送信できます。

Regions with Amazon SES

ユーザープールリージョンまたは代替リージョンの送信承認ポリシーでは、Amazon Cognito サービスプリンシパルが E メールメッセージを送信することを許可する必要があります。詳細については、リージョン表を参照してください。ユーザープールリージョンAmazon SES リージョン の少なくとも 1 つの値と一致する場合は、次の例で グローバルサービスプリンシパルを使用して送信承認ポリシーを設定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "stmnt1234567891234", "Effect": "Allow", "Principal": { "Service": [ "email.cognito-idp.amazonaws.com" ] }, "Action": [ "SES:SendEmail", "SES:SendRawEmail" ], "Resource": "<your SES identity ARN>", "Condition": { "StringEquals": { "aws:SourceAccount": "<your account number>" }, "ArnLike": { "aws:SourceArn": "<your user pool ARN>" } } } ] }
Opt-in Regions without Amazon SES

Amazon SES は、Amazon Cognito AWS リージョン が利用可能なすべてのオプトインで利用できるわけではありません。中東 (UAE) は一例であり、 は欧州 (フランクフルト) () で検証済みの ID を持つ E メールのみを送信できますeu-central-1。デフォルトの E メール設定を持つユーザープールでは、Amazon Cognito は 2 つのリージョンのそれぞれで検証済み ID を含む E メールメッセージも送信します。中東 (アラブ首長国連邦) の場合、追加のリージョンは欧州 (ロンドン) です。両方のリージョンで送信承認ポリシーを更新する必要があります。

各代替リージョンの送信承認ポリシーでは、ユーザープールオプトインリージョンの Amazon Cognito サービスプリンシパルが E メールメッセージを送信することを許可する必要があります。詳細については、リージョン表を参照してください。リージョンが代替リージョン としてマークされている場合は、次の例のように、リージョンサービスプリンシパルを使用して送信承認ポリシーを設定します。必要に応じて、サンプルリージョン識別子 me-central-1 を必要なリージョン ID に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "cognito-idp.me-central-1.amazonaws.com" ] }, "Action": [ "SES:SendEmail", "SES:SendRawEmail" ], "Resource": "<your SES identity ARN>", "Condition": { "StringEquals": { "aws:SourceAccount": "<your account number>" }, "ArnLike": { "aws:SourceArn": "<your user pool ARN>" } } } ] }

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

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

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

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

Amazon Cognito は、設定を設定するユーザーセッションの AWS 認証情報を使用して、サービスにリンクされたロールを作成します。このセッションの IAM 権限には、iam:CreateServiceLinkedRole アクションが含まれている必要があります。IAM のアクセス許可の詳細については、IAM ユーザーガイドの「 AWS リソースのアクセス管理」を参照してください。

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

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

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

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

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

  • Amazon SES の設定

注記

検証済み ID が E メールアドレスの場合、Amazon Cognito はデフォルトで、その E メールアドレスを FROM と REPLY-TO の E メールアドレスとして設定します。ただし、検証済み ID がドメインの場合は、FROM と REPLY-TO の E メールアドレスに値を指定する必要があります。例えば、検証済みドメインが example.com の場合、FROM と REPLY-TO の E メールアドレスの両方として no-reply@example.com を設定できます。

デフォルトの Amazon Cognito E メール設定とアドレスを使用する場合は、この手順を省略します。

カスタム E メールアドレスを使用するようにユーザープールを設定する方法
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. [User Pools] (ユーザープール) を選択します。

  3. リストから存在するユーザープールを 1 つ選択します。

  4. [Messaging] (メッセージング) タブを選択して、[Email configuration] (E メールの設定) を検索して、[Edit] (編集) をクリックします。

  5. [Edit email configuration] (E メールの設定) の編集ページで、[Send email from Amazon SES] (Amazon SES からメールを送信する) または[Send email with Amazon Cognito] (Amazon Cognito で E メールを送信する) を選択します。[Send email from Amazon SES] (Amazon SES からメールを送信する) を選択した場合のみ、[SES Region] (SES リージョン)、[Configuration Set] (設定セット)、および [FROM sender name] (FROM 送信者名) をカスタマイズできます。

  6. カスタムの FROM アドレスを使用するには、次の手順を実行します。

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

    2. [FROM email address] (FROM E メールアドレス) で、E メールアドレスを選択します。Amazon SES で検証済みの E メールアドレスを使用します。

    3. (オプション) [Configuration set] (設定セット) で Amazon SES で使用する設定セットを選択します。この変更を行って保存すると、サービスにリンクされたロールが作成されます。

    4. (オプション) [FROM sender address] (FROM 送信者アドレス) で E メールアドレスを入力します。E メールアドレスだけ、または E メールアドレスと分かりやすい名前を Jane Doe <janedoe@example.com> 形式で指定できます。

    5. (オプション) [REPLY-TO email address] (REPLY-TO E メールアドレス) で、ユーザーが FROM アドレスに送信するメッセージを受信する E メールアドレスを入力します。

  7. [変更の保存] を選択します。

関連トピック