Amazon SES を Amazon Cognito ユーザープールと統合する方法を教えてください。

所要時間3分
0

Amazon Simple Email Service (Amazon SES) を Amazon Cognito ユーザープールと統合するために必要な手順を知る必要があります。

簡単な説明

Amazon SES と Amazon Cognito を統合して、お客様が所有するカスタム E メールアドレスで E メールメッセージを送信できます。Amazon SES を Amazon Cognito ユーザープールと統合するには、以下の大まかな手順に従ってください。

  • Amazon SES サンドボックスの制限を考慮してください。
  • Amazon SES サンドボックスからアカウントを移動します。
  • Amazon SES の ID を検証します。
  • Amazon SES で検証された ID を使用して Amazon Cognito ユーザープールを設定します。

解決方法

以下の手順を実行して、Amazon SES を Amazon Cognito ユーザープールと統合して、お客様に代わって E メールメッセージを送信します。

Amazon SES サンドボックスの制限事項

詐欺や悪用を防ぐために、新しい Amazon SES アカウントはすべて Amazon SES サンドボックスに配置されます。Amazon SES サンドボックスを使用する際には、考慮すべき制限があります。特定のサンドボックス制限を確認するには、「Amazon SES サンドボックスからの移行」を参照してください。Amazon SES サービスを完全に使用するには、Amazon SES アカウントをサンドボックスから移動する必要があります。

Amazon SES サンドボックスからアカウントを移動します

Amazon SES サンドボックスからアカウントを移動するには、次の手順に従います。

1.    Amazon SES E メール設定の AWS リージョンのマッピングテーブルを確認してください。マッピングテーブルには、Amazon SES ID を Amazon Cognito ユーザープールと統合できるリージョンが表示されます。Amazon SES アカウントをサンドボックスから移動する前に、互換性のあるリージョンを使用していることを確認する必要があります。

2.    Amazon SES アカウントのプロダクションアクセスをリクエストします。プロダクションアクセスリクエストが承認されたら、どの受信者にも E メールメッセージを送信できます。

重要: Amazon Cognito を同じリージョンの Amazon SES と統合するには、新しい Amazon Cognito コンソールエクスペリエンスに切り替える必要があります。

Amazon SES ID の検証

Amazon SES ドメインの ID を確認するには、次の手順に従います。

1.    ドメイン ID を作成します

2.    Amazon SES で 1 つ以上のドメインを検証します

Amazon SES の E メール ID を確認するには、次の手順に従います。

1.    E メール ID を作成します

2.    Amazon SES で 1 つ以上の E メールアドレスを確認します

注: Amazon Cognito と Amazon SES のクロスアカウント統合はサポートされていません。あるアカウントで Amazon Cognito ユーザープールを設定し、それを別のアカウントの Amazon SES E メールアドレスと統合することはできません。

Amazon SES で検証された ID を使用して Amazon Cognito ユーザープールを設定します

Amazon Cognito ユーザープールを検証済みの Amazon SES ID 設定と統合するには、ユースケースに関連する手順に従ってください。

Amazon SES ドメインの ID が検証されたとき

1.    新しい Amazon Cognito コンソールにサインインし、[ユーザープール] を選択します。

2.    リストから適切なユーザープールを選択します。

3.    [メッセージング] タブ、[E メール設定]、[編集] の順に選択します。

4.    [送信元 E メールアドレス] で、Amazon SES 検証済みドメイン ID を選択します。(たとえば、example.com です。)

5.    [差出人名] に、E メールアドレスを入力します。(たとえば、admin@example.com と入力してください。)

ドメインはすでに検証済みなので、ドメイン ID にカスタム E メールアドレスを追加できます。UpdateUserPool API は、Amazon SES ID を使用して Amazon Cognito ユーザープールを設定します。

update-user-pool コマンドの例:

$ aws cognito-idp update-user-pool --user-pool-id example_pool_id --email-configuration SourceArn=arn:aws:ses:example_region:example_account_number:identity/example_domain,EmailSendingAccount=DEVELOPER,From=user@example.com --region example_region

重要: UpdateUserPool API はユーザープールの既存の設定をリセットするので、最初に DescribeUserPool API を呼び出してください。次に、既存のすべてのユーザープールパラメータを UpdateUserPool API に送信します。

update-user-pool コマンドの説明:

  • example_pool_id は Amazon Cognito ユーザープール ID に対応しています。例: ap-southeast-1_xxxxxxxx。
  • arn:aws:ses:example_region:example_account_number:identity/example_domain は Amazon SES ドメイン ID の ARN です。
  • user@example.com はあなたの E メール ID に置き換える必要があります。
  • example_region は、Amazon Cognito ユーザープールが存在するリージョンを表します。例: ap-southeast-1。

Amazon SES の E メール ID が確認されたとき

1.    新しい Amazon Cognito コンソールにサインインし、[ユーザープール] を選択します。

2.    リストから適切なユーザープールを選択します。

3.    [メッセージング] タブの [E メール設定] を選択し、[編集] を選択します。

4.    [送信元 E メールアドレス] で、Amazon SES の E メールドメイン ID を選択します。(たとえば、admin@example.com と入力してください。)

エラートラブルシューティング

このセクションには、Amazon Cognito と Amazon SES を統合した後に E メールメッセージを送信する際にユーザーが遭遇するエラーのトラブルシューティングに関する情報が含まれています。

未確認の E メールアドレスのエラー

「E メールアドレスは確認されていません。リージョン AP-SOUTHEAST-1: user@example.com でのチェックインに、次の ID が失敗しました」。

Amazon Cognito は、E メールメッセージを送信しようとすると、未確認の E メールアドレスエラーを受け取ります。このエラーは、Amazon SES サンドボックス内のアカウントから未確認の E メールアドレスに E メールメッセージを送信しようとしたときに発生する可能性があります。エラーを解決するには、Amazon SES アカウントをサンドボックスから移動するか、Amazon SES で受信者の E メールアドレスを確認します。

ユーザーは Amazon Cognito からの E メールメッセージを受信していません

ユーザーは Amazon Cognito ユーザープールから E メールメッセージを受信していません。この問題を解決するには、E メールメッセージの送信にAmazon Cognito のデフォルトの E メール機能を使用しているかAmazon SES の E メール設定を使用しているかを確認してください。AWS マネジメントコンソールから、または DescribeUserPool API を呼び出して、更新を確認してください。

describe-user-pool の例:

aws cognito-idp describe-user-pool --user-pool-id example_pool_id --region example_region --query 'UserPool.EmailConfiguration'

出力:

{
  "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/admin@example.com",
  "EmailSendingAccount": "DEVELOPER",
  "From": "admin@example.com"
}

-または-

{
  "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/admin@example.com",
  "EmailSendingAccount": "COGNITO_DEFAULT"
}

EmailSendingAccount の設定が DEVELOPER に設定されている場合、Amazon Cognito ユーザープールは Amazon SES を使用して E メールメッセージを送信しています。Amazon SES アカウントがサンドボックスにあることを確認します。アカウントがある場合は、Amazon SES をサンドボックスから移動して、未確認の ID に E メールメッセージを送信します。Amazon SES アカウントが本番環境またはサンドボックスモードでない場合は、Amazon SES ログで E メール配信を確認します。

出力に COGNITO_DEFAULT メッセージを受け取った場合、Amazon Cognito ユーザープールはデフォルトの機能を使用して E メールメッセージを送信しています。このデフォルト機能では、Amazon Cognito は各ユーザープールから送信される E メールメッセージのクォータ制限があります。

LimitExceededException の例外が発生しました

「オペレーションまたはアカウントの 1 日の E メール制限を超えました。許可された操作の数を超えました。より高い制限が必要な場合は、E メールメッセージの送信に独自の Amazon SES 設定を使用するようにユーザープールを設定してください」。

Amazon Cognito が E メールメッセージの送信に 1 日あたりのクォータ制限が設定されたデフォルトの E メール機能を使用すると、ユーザーに 1 日の E メール制限エラーが表示されます。エラーメッセージに示されているように、Amazon SES の E メール設定を変更して、E メールメッセージの配信量を増やしてください。


AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ