SMS Amazon Cognito ユーザープールのメッセージ設定 - Amazon Cognito

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

SMS Amazon Cognito ユーザープールのメッセージ設定

ユーザープールの Amazon Cognito イベントによっては、Amazon Cognito がユーザーにSMSテキストメッセージを送信する可能性があります。例えば、電話による検証を要求するようにユーザープールを設定すると、ユーザーがアプリで新しいアカウントにサインアップしたり、パスワードをリセットしたりすると、Amazon Cognito からSMSテキストメッセージが送信されます。SMS テキストメッセージを開始するアクションに応じて、メッセージには検証コード、一時パスワード、またはウェルカムメッセージが含まれます。

Amazon Cognito は、Amazon Simple Notification Service (Amazon SNS) を使用してSMSテキストメッセージを配信します。Amazon Cognito または Amazon 経由で初めてテキストメッセージを送信する場合SNS、Amazon はサンドボックス環境SNSに配置します。サンドボックス環境では、アプリケーションのSMSテキストメッセージをテストできます。サンドボックスでは、検証済みの電話番号にしかメッセージを送信できません。

Amazon では、SMSテキストメッセージのSNS料金が発生します。詳細については、「Amazon のSNS料金」を参照してください。

注記

SMS 世界中の未承諾トラフィックの量により、一部の政府はSMSメッセージの送信者と受信者の間に障壁を課しています。MFA およびユーザー更新にSMSメッセージを使用する場合は、メッセージが確実に配信されるようにするための追加の手順を実行する必要があります。また、ユーザーが住んでいる可能性のある国の SMS-メッセージ関連の規制をモニタリングし、SMSメッセージ設定を最新の状態に保つ必要があります。詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「モバイルテキストメッセージ (SMS)」を参照してください。

ユーザーの認証と検証にSMSメッセージを使用することは、セキュリティのベストプラクティスではありません。電話番号によって所有者が変わる可能性があり、ユーザーMFAにとって重要な要素を確実に表すことができない場合があります。代わりに、アプリまたはサードパーティーTOTPMFAの IdP を使用して を実装します。また、カスタム認証チャレンジの Lambda トリガー を使って、追加のカスタム認証要素を作成することもできます。

Amazon Cognito は、ユーザーが入力できるコードでSMSメッセージを送信します。次の表は、SMSメッセージを生成できるイベントを示しています。

メッセージオプション

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

1 SMS メッセージの場合。

Amazon Cognito ユーザープールで初めてSMSメッセージングを設定する

Amazon Cognito は Amazon SNS を使用してユーザープールにSMSメッセージを送信します。を使用してカスタムSMS送信者の Lambda トリガー独自のリソースを使用してSMSメッセージを送信することもできます。特定の でSMSテキストメッセージを送信するSNSように Amazon を初めて設定すると AWS リージョン、Amazon はそのリージョン AWS アカウント のSMSサンドボックスに SNSを配置します。Amazon SNSはサンドボックスを使用して、不正使用や不正使用を防止し、コンプライアンス要件を満たします。 AWS アカウント がサンドボックスにある場合、Amazon はいくつかの制限をSNS課します。例えば、Amazon で検証した最大 10 の電話番号にテキストメッセージを送信できますSNS。がサンドボックスに AWS アカウント 残っている間は、本番環境のアプリケーションに Amazon SNS設定を使用しないでください。サンドボックスに置かれている間、Amazon Cognito はユーザーの電話番号にメッセージを送信できません。

Amazon Cognito が Amazon でSMSメッセージを送信するために使用できる IAMロールを準備する SNS

ユーザープールからSMSメッセージを送信すると、Amazon Cognito はアカウントで IAMロールを引き受けます。Amazon Cognito は、そのロールに割り当てられたsns:Publishアクセス許可を使用して、ユーザーにSMSメッセージを送信します。Amazon Cognito コンソールでは、ユーザープールのメッセージングタブからIAMロール選択を設定するSMSか、ユーザープール作成ウィザード中にこの選択を行うことができます。

次のIAMロール信頼ポリシーの例では、Amazon Cognito ユーザープールにロールを引き受ける制限付き機能を付与します。Amazon Cognito は、次の条件を満たす場合にのみロールを引き受けることができます。

  • assume-role オペレーションは、 aws:SourceArn条件のユーザープールに代わって行われます。

  • assume-role オペレーションは、 aws:SourceAccount条件によって設定された AWS アカウント のユーザープールに代わって行われます。

  • assume-role オペレーションには、sts:externalId条件に外部 ID が含まれます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "cognito-idp.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:cognito-idp:us-west-2:111122223333:userpool/us-west-2_EXAMPLE" } } } ] }

aws:SourceArn 条件ARNの値には、正確なユーザープールARNまたはワイルドカードを指定できます。 AWS Management Console または DescribeUserPoolAPIリクエストを使用して、ユーザープールARNsの を検索します。

多要素認証のSMSメッセージを送信するには、IAMロールの信頼ポリシーに sts:ExternalId条件が必要です。 SMS MFAこの条件の値は、ユーザープールの SmsConfigurationExternalIdプロパティと一致する必要があります。Amazon Cognito コンソールでユーザープールの作成プロセス中にIAMロールを作成すると、Amazon Cognito はロールとユーザープール設定で外部 ID を設定します。これは、既存のIAMロールを使用する場合には適用されません。

UpdateUserPool API リクエストのユーザープールExternalIdパラメータを更新し、IAMロールの信頼ポリシーを同じ値を持つsts:externalId条件で更新する必要があります。を使用して、元の設定を保持する方法でユーザープールAPIを更新する方法については、「」を参照してくださいユーザープール設定の更新

IAM ロールと信頼ポリシーの詳細については、「 AWS Identity and Access Management ユーザーガイド」の「ロールの用語と概念」を参照してください。

Amazon SNS SMS メッセージの AWS リージョン を選択する

一部の では AWS リージョン、Amazon Cognito SMS メッセージに使用する Amazon SNSリソースを含むリージョンを選択できます。アジアパシフィック (ソウル) を除く Amazon Cognito が利用可能なすべての AWS リージョン で、ユーザープール AWS リージョン を作成した で Amazon SNSリソースを使用できます。リージョンを選択したときにSMSメッセージングを高速化し、信頼性を高めるには、ユーザープールと同じリージョンの Amazon SNSリソースを使用します。

注記

では AWS Management Console、新しい Amazon Cognito コンソールエクスペリエンスに切り替えた後でのみSMS、リソースのリージョンを変更できます。

新しいユーザープールウィザードのメッセージ配信の設定ステップで、SMSリソースのリージョンを選択します。既存のユーザープールのメッセージングタブSMSの で編集 を選択することもできます。

起動時に、一部の について AWS リージョン、Amazon Cognito は代替リージョンに Amazon SNSリソースを含むSMSメッセージを送信しました。任意のリージョンを設定するには、ユーザープールの SmsConfigurationType オブジェクトの SnsRegionパラメータを使用します。次の表から Amazon Cognito リージョンに Amazon Cognito ユーザープールリソースをプログラムで作成し、 SnsRegionパラメータを指定しない場合、ユーザープールはレガシー Amazon SNSリージョン の Amazon SNSリソースを使用してSMSメッセージを送信できます。

アジアパシフィック (ソウル) の Amazon Cognito ユーザープール AWS リージョン は、アジアパシフィック (東京) リージョンの Amazon SNS設定を使用する必要があります。

Amazon SNSは、すべての新規アカウントの支出クォータを 1 か月あたり 1.00 USD (USD) に設定します。Amazon Cognito AWS リージョン で使用する で支出制限が引き上げられた可能性があります。 AWS リージョン Amazon SNS SMS メッセージの を変更する前に、 AWS サポートセンターでクォータ引き上げケースを開いて、新しいリージョンの制限を引き上げてください。詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon の月額SMS使用クォータの引き上げをリクエストSNSする」を参照してください。

次の表の任意の Amazon Cognito リージョンのSMSメッセージは、対応する Amazon SNSリージョン の Amazon SNSリソースを使用して送信できます。

Amazon Cognito リージョン Amazon SNS リージョン

米国東部(オハイオ)

米国東部 (オハイオ)、米国東部 (バージニア北部)

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

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

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

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

米国西部 (オレゴン)

米国西部 (オレゴン)

カナダ (中部)

カナダ (中部)、米国東部 (バージニア北部)

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

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

欧州 (フランクフルト)

欧州 (フランクフルト)、欧州 (アイルランド)

欧州 (ロンドン)

欧州 (ロンドン)、欧州 (アイルランド)

欧州 (アイルランド)

欧州 (アイルランド)

欧州 (パリ)

欧州 (パリ)

欧州 (ストックホルム)

欧州 (ストックホルム)

欧州 (ミラノ)

欧州 (ミラノ)

欧州 (スペイン)

欧州 (スペイン)

欧州 (チューリッヒ)

欧州 (チューリッヒ)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

中東 (バーレーン)

中東 (バーレーン)

中東 (UAE)

中東 (UAE)

南米 (サンパウロ)

南米 (サンパウロ)

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

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

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

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

米国の電話番号にSMSメッセージを送信するための発信元 ID を取得する

米国の電話番号にSMSテキストメッセージを送信する場合は、SMSサンドボックステスト環境を構築するか、本番環境を構築するかにかかわらず、発信元 ID を取得する必要があります。

米国の通信事業者は 2021 年 6 月 1 日付けで、米国の電話番号へのメッセージの送信に発信元 ID を義務付けました。発信元 ID をまだ取得していない場合は、取得する必要があります。発信元 ID を取得する方法については、Amazon Pinpoint ユーザーガイドの「番号のリクエスト」を参照してください。

次の で運用する場合は AWS リージョン、 AWS Support チケットを開いて発信元 ID を取得する必要があります。手順については、「Amazon Simple Notification Service デベロッパーガイド」のSMS「メッセージングのサポートのリクエスト」を参照してください。

  • 米国東部(オハイオ)

  • 欧州 (ストックホルム)

  • 欧州 (パリ)

  • ヨーロッパ (ミラノ)

  • 中東 (バーレーン)

  • 南米 (サンパウロ)

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

同じ に複数の発信元 ID がある場合 AWS リージョン、Amazon は、ショートコード、10、DLC通話料無料番号の優先順位で発信元 ID タイプSNSを選択します。この優先順位を変更することはできません。詳細については、「Amazon SNS FAQs」を参照してください。

SMS サンドボックスにいることを確認する

次の手順を使用して、SMSサンドボックスにいることを確認します。本番稼働用の Amazon Cognito ユーザープール AWS リージョン がある各 に対して、同じ手順を繰り返します。

SMS サンドボックスにいることを確認するには
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

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

  4. [Messaging] (メッセージング) タブを選択します。

  5. SMS 設定セクションで、「Amazon SNS本番環境に移動」を展開します。アカウントがSMSサンドボックスにある場合、次のメッセージが表示されます。

    You are currently in the SMS Sandbox and cannot send SMS messages to unverified numbers.

    このメッセージが表示されない場合は、既にアカウントにSMSメッセージが設定されています。「Amazon Cognito でユーザープールのセットアップを完了する」へ進んでください。

  6. メッセージ内の Amazon SNS リンクを選択します。これにより、Amazon SNSコンソールが新しいタブで開きます。

  7. サンドボックス環境に置かれていることを確認します。コンソールメッセージには AWS リージョン、サンドボックスのステータスと が次のように表示されます。

    This account is in the SMS sandbox in US East (N. Virginia).

Amazon SNSサンドボックスからアカウントを移動する

アプリをテストしていて、管理者が検証できる電話番号にのみSMSメッセージを送信する必要がある場合は、このステップをスキップしてください。

アプリケーションを本番環境で使用するには、アカウントをSMSサンドボックスから本番環境に移動します。Amazon Cognito で使用する Amazon SNSリソースを含む で AWS リージョン 発信元 ID を設定したら、 がSMSサンドボックスに AWS アカウント 残っている間、米国の電話番号を確認できます。Amazon SNS環境が本番環境にある場合、ユーザーにSNSSMSメッセージを送信するために Amazon でユーザーの電話番号を確認する必要はありません。

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

Amazon での Amazon Cognito の電話番号の確認 SNS

アカウントをSMSサンドボックスから移動した場合は、このステップをスキップします。

SMS サンドボックスにいるときは、Amazon で検証した任意の電話番号にメッセージを送信できますSNS。

電話番号を確認するには、次の手順を実行します。

  1. Amazon SNSコンソールのテキストメッセージ (SMS) セクションにサンドボックス送信先の電話番号を追加します。

  2. 指定した電話番号にコードを含むSMSメッセージを受信します。

  3. Amazon SNSコンソールのSMSメッセージから検証コードを入力します。

詳細な手順については、「Amazon Simple Notification Service デベロッパーガイド」のSMS「サンドボックスでの電話番号の追加と検証」を参照してください。

注記

Amazon は、SMSサンドボックスにいる間に検証できる送信先電話番号の数SNSを制限します。「Amazon Simple Notification Service デベロッパーガイド」のSMS「サンドボックス」を参照してください。

Amazon Cognito でユーザープールのセットアップを完了する

ユーザープールを作成または編集していたブラウザタブに戻ります。手順を完了します。ユーザープールSMSに設定を正常に追加すると、Amazon Cognito は内部電話番号にテストメッセージを送信して、設定が機能することを確認します。Amazon では、テストSMSメッセージごとにSNS料金が発生します。