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

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

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

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

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

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

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

メッセージオプション

アクティビティ API オペレーション 配信オプション 形式オプション カスタマイズ可能 メッセージテンプレート
Forgot password ForgotPassword, AdminResetUserPassword Email, SMS code No N/A
Invitation AdminCreateUser Email, SMS code Yes 招待メッセージ
Self-registration SignUp, ResendConfirmationCode Email, SMS code, link Yes 検証メッセージ
Email address or phone number verification UpdateUserAttributes, AdminUpdateUserAttributes, GetUserAttributeVerificationCode Email, SMS code Yes 検証メッセージ
Multi-factor authentication (MFA) AdminInitiateAuth, InitiateAuth Email¹, SMS, authenticator app code Yes² MFA メッセージ

¹ 高度なセキュリティ機能と Amazon SES E メール設定が必要です。

² SMS メッセージおよび E メールメッセージの場合。

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

E メール MFA の詳細については、「 SMS メッセージ MFA と E メールメッセージ MFA」を参照してください。

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

下位互換性あり

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

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

  • 米国西部 (オレゴン)

  • 欧州 (アイルランド)

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

代替リージョン

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

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

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

注記

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

  • EmailSendingAccount は COGNITO_DEFAULT です。

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

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

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

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

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

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

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

下位互換性あり

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

米国東部 (オハイオ)

下位互換性あり

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

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

リージョン内のみ

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

米国西部 (オレゴン)

下位互換性あり

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

カナダ (中部)

下位互換性あり

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

カナダ西部 (カルガリー)

代替リージョン

カナダ (中部)、米国西部 (北カリフォルニア)1

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

下位互換性あり

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

アジアパシフィック (香港)

代替リージョン

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

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

下位互換性あり

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

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

下位互換性あり

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

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

代替リージョン

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

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

下位互換性あり

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

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

下位互換性あり

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

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

リージョン内のみ

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

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

リージョン内のみ

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

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

代替リージョン

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

欧州 (アイルランド)

下位互換性あり

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

欧州 (ロンドン)

下位互換性あり

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

欧州 (パリ)

リージョン内のみ

欧州 (パリ)

欧州 (フランクフルト)

下位互換性あり

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

欧州 (チューリッヒ)

代替リージョン

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

欧州 (ストックホルム)

リージョン内のみ

欧州 (ストックホルム)

欧州 (ミラノ)

リージョン内のみ

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

代替リージョン

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

中東 (バーレーン)

リージョン内のみ

中東 (バーレーン)

中東 (UAE)

代替リージョン

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

南米 (サンパウロ)

リージョン内のみ

南米 (サンパウロ)

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

リージョン内のみ

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

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

リージョン内のみ

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

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

ユーザープールの 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 メールを送信するようにユーザープールを設定するか、 EmailSendingAccountCOGNITO_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 コンソールまたは PutIdentityPolicy API を使用してポリシーをアタッチする必要があります。

注記

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

ユーザープールリージョンまたは代替リージョンの送信認可ポリシーでは、E メールメッセージを送信することを Amazon Cognito サービスプリンシパルに許可する必要があります。詳細については、リージョン表を参照してください。ユーザープールリージョン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 リージョン が利用可能なすべてのオプトインで利用できるわけではありません。中東 (アラブ首長国連邦) が例として挙げられますが、欧州 (フランクフルト) (eu-central-1) で検証済み ID を持つ E メールのみを送信できます。デフォルトの E メール設定を持つユーザープールでは、Amazon Cognito は 2 つのリージョンのそれぞれで検証済み ID を含む E メールメッセージも送信します。中東 (アラブ首長国連邦) の場合、追加のリージョンは欧州 (ロンドン) です。両方のリージョンの送信認可ポリシーを更新する必要があります。

各代替リージョンの送信認可ポリシーでは、E メールメッセージを送信することを、ユーザープールオプトインリージョンの Amazon Cognito サービスプリンシパルに許可する必要があります。詳細については、リージョン表を参照してください。リージョンが代替リージョンとしてマークされている場合は、次の例のように、リージョンサービスプリンシパルを使用して送信認可ポリシーを設定します。必要に応じて、サンプルリージョン識別子 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 の E メールアドレスに値を指定する必要があります。

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

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

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

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

  4. 認証方法メニューを選択し、E メール設定を見つけ、編集を選択します。

  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. [Save changes] (変更の保存) をクリックします。

関連トピック