ユーザープールにアドバンストセキュリティを追加する - Amazon Cognito

ユーザープールにアドバンストセキュリティを追加する

ユーザープールを作成すると、Amazon Cognito コンソールのナビゲーションバーの [Advanced security] (アドバンストセキュリティ) にアクセスできるようになります。ユーザープールのアドバンストセキュリティ機能をオンにし、さまざまなリスクに対応して実行されるアクションをカスタマイズすることができます。また、監査モードを使用して、セキュリティ緩和策を適用せずに、検出されたリスクに関するメトリクスを収集できます。監査モードでは、アドバンストセキュリティ機能が Amazon CloudWatch にメトリクスをパブリッシュします。「アドバンストセキュリティのメトリクスの表示」を参照してください。

考慮事項と制約事項

  • Amazon Cognito のアドバンストセキュリティ機能には追加料金が適用されます。Amazon Cognito の料金ページを参照してください。

  • Amazon Cognito は、以下の標準の認証フロー USER_PASSWORD_AUTHADMIN_USER_PASSWORD_AUTHUSER_SRP_AUTH、および ADMIN_USER_SRP_AUTH を使用してアドバンストセキュリティ機能をサポートします。CUSTOM_AUTH フローと カスタム認証チャレンジの Lambda トリガー、またはフェデレーションサインインでアドバンストセキュリティ機能を使用することはできません。

  • 完全な機能モードでの Amazon Cognito のアドバンストセキュリティ機能を使用して、IP アドレス 常にブロック および 常に許可 例外を作成することができます。常にブロック 例外リストの IP アドレスからのセッションは、アダプティブ認証によってリスクレベルが割り当てられておらず、ユーザープールにサインインできません。

  • ユーザープールの 常にブロック 例外リストの IP アドレスからのブロックされたリクエストは、ユーザープールのリクエストレートクォータ に貢献します。Amazon Cognito のアドバンスドセキュリティ機能は、分散型サービス妨害 (DDoS) 攻撃を防ぐものではありません。Amazon Cognito エンドポイントへの不要なトラフィックを防ぐ方法については、AWS セキュリティブログの「Amazon CloudFront プロキシを使用した Amazon Cognito のパブリッククライアントの保護」をご覧ください。

前提条件

開始するには、以下が必要です。

  • アプリクライアントを持つユーザープール。詳細については、「ユーザープールの開始方法。」を参照してください。

  • Amazon Cognito コンソールで多要素認証 (MFA) を [Optional] (オプション) に設定して、リスクに基づくアダプティブ認証機能を使用する。詳細については、「ユーザープールに MFA を追加します」を参照してください。

  • 通知に E メールを使用している場合は、Amazon SES コンソールに移動して、通知 E メールで使用する E メールアドレスまたはドメインの設定と検証を実行します。Amazon SES の詳細については、「Amazon SES での ID の検証」を参照してください。

アドバンストセキュリティ機能を設定する

Amazon Cognito のアドバンストセキュリティ機能は、AWS Management Console で設定できます。

Original console

ユーザープールにアドバンストセキュリティを設定するには

  1. 左のナビゲーションバーから [Advanced security] (アドバンストセキュリティ) を選択します。

  2. [Do you want to enable advanced security features for this user pool?] (このユーザープールのアドバンストセキュリティ機能を有効にしますか?) で [Yes] (はい) を選択して、アドバンストセキュリティを有効化します。または [Audit only] (監査のみ) を選択して情報を収集し、ユーザープールのデータを CloudWatch に送信します。

    アクションを有効にする前に、2 週間、アドバンストセキュリティ機能を監査モードにしておくことをお勧めします。この間、Amazon Cognito がユーザーアプリの使用パターンを学習できるようになります。

  3. ドロップダウンリストから、[What app client do you want to customize settings for?] (どのアプリクライアントの設定をカスタマイズしますか?) を選択します デフォルトでは、すべてのアプリクライアントに対して設定をグローバルのままにしておきます。

  4. [Which action do you want to take with the compromised credentials?] (侵害された認証情報にどのように対処しますか?) で、[Allow] (許可) または [Block use] (使用をブロック) を選択します。

  5. [Customize when compromised credentials are blocked] (不正対象の認証情報をブロックした場合のカスタマイズ) を選択して、侵害された認証情報のチェックを開始するイベントを選択します。

    • サインイン

    • サインアップ

    • パスワードの変更

  6. [How do you want to use adaptive authentication for sign-in attempts rated as low, medium and high risk?] (リスクが低、中、高と評価されたサインイン試行で、アダプティブ認証をどのように使用しますか?) で悪意のあるサインイン試行に対応する方法を選択します。サインインの試行を許可またはブロックしたり、サインインを許可する前に追加の課題を要求することができます。

    通常と異なるサインイン試行が検出された場合に、E メール通知を送信するには、[Notify users] (ユーザーに通知) を選択します。

    
                    ユーザーに通知する
  7. 前のステップで [Notify users] (ユーザーに通知) を選択した場合は、[Notification message customization] (通知メッセージのカスタマイズ) を使用して電子メール通知メッセージをカスタマイズすることができます。

    
                    ユーザーイベント履歴
  8. [Customize] (カスタマイズ) を選択して、E メールメッセージの HTML とプレーンテキストバージョンの両方でアダプティブ認証通知をカスタマイズします。E メールメッセージテンプレートの詳細については、「メッセージテンプレート」を参照してください。

  9. アドバンストセキュリティのリスク評価にかかわらず、[Always allow] (常に許可) または [Always block] (常にブロック) する IP アドレスを入力します。CIDR 表記 で IP アドレスの範囲を指定します (例: 192.168.100.0/24)。

  10. [Save changes] (変更の保存) をクリックします。

New console

ユーザープールにアドバンストセキュリティを設定するには

  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、AWS 認証情報を入力します。

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

  3. リストから既存のユーザープールを選択するか、ユーザープールを作成します。

  4. [App integration] (アプリケーションの統合) タブを選択します。アドバンストセキュリティを探し、[Enable] (有効) を選択します。アドバンスセキュリティを既に有効にしている場合は、[Edit] (編集) を選択します。

  5. [Full function] (完全な機能) を選択して、侵害されたクレデンシャルとアダプティブ認証に対する高度なセキュリティレスポンスを設定します。[Audit only] (監査のみ) を選択して情報を収集し、ユーザープールのデータを CloudWatch に送信します。アドバンストセキュリティ料金は、[Audit only] (監査のみ) および [Full function] (完全な機能) モードの両方で適用されます。詳細については、「Amazon Cognito の料金」を参照してください。

    アクションを有効にする前に、2 週間、アドバンストセキュリティ機能を監査モードにしておくことをお勧めします。この間、Amazon Cognito がユーザーアプリの使用パターンを学習できるようになります。

  6. [Audit only] (監査のみ) を選択した場合、[Save changes] (変更の保存) を選択してください。[Full function] (完全な機能) を選択した場合:

    1. 侵害された認証情報への応答は、 [Custom] (カスタム) アクションの実行または使用、または [Cognito defaults] (Cognito デフォルト) を選択します。Cognito デフォルトでは、

      1. サインイン,サインアップ, およびパスワードの変更時に、侵害された認証情報を検出します。

      2. 侵害された認証情報は、[Block sign-in] (サインインをブロックする) で応答します。

    2. [Compromised credentials] (侵害された認証情報) で [Custom] (カスタム) アクションを選択した場合、Amazon Cognito が [Event detection] (イベント検出) で使用するユーザープールアクション、および、Amazon Cognitoに実行させたい [Compromised credentials responses] (侵害された認証情報への応答) を選択します。侵害された認証情報によるサインインをブロックまたはサインインを許可することができます。

    3. [Adaptive authentication] (アダプティブ認証) で、悪意のあるサインイン試行への応答方法を選択します。[Custom] (カスタム) アクションを実行または使用、または悪意のあるアクティビティの疑いに対応するために [Cognito defaults] (Cognito デフォルト) を選択します。[Cognito defaults] (Cognito デフォルト) を選択した場合、Amazon Cognito はすべてのリスクレベルでサインインをブロックし、ユーザーに通知しません。

    4. [Adaptive authentication] (アダプティブ認証) で、 [Custom] (カスタム) アクションを選択した場合、重要度レベルに基づいて検出されたリスクに対して、Amazon Cognito で実行する [Automatic risk response] (自動リスク対応) アクションを選択します。リスクのレベルに応じて対応を割り当てる場合、より高いレベルのリスクに対して、より制限の少ない対応を割り当てることはできません。リスクレベルには、次の対応を割り当てることができます。

      1. サインインを許可する - 予防策をとりません。

      2. MFA のオプション - ユーザーが MFA を設定している場合、Amazon Cognito はサインイン時に常に SMS またはタイムベースドワンタイムパスワード (TOTP) の追加要素を提供するようユーザーに要求します。ユーザーに MFA が設定されていない場合は、通常どおりサインインを続行できます。

      3. MFA を要求 - ユーザーが MFA を設定している場合、Amazon Cognito はサインイン時に常に SMS または TOTP ファクターの追加要素の提供を要求します。ユーザーに MFA が設定されていない場合、Amazon Cognito は MFA を設定するよう促します。ユーザーに MFA を自動要求する前に、SMS MFA の電話番号をキャプチャするメカニズム、または TOTP MFA の認証アプリケーションを登録するメカニズムを、お客様のアプリケーションに設定してください。

      4. サインインをブロックする - ユーザーがサインインできないようにします。

      5. ユーザーに通知する - Amazon Cognito が検出したリスクと応答に関する情報を E メールでユーザーに送信します。送信するメッセージのE メールメッセージテンプレートをカスタマイズできます。

  7. 前の手順で [Notify user] (ユーザーに通知する) を選択した場合、アダプティブ認証に使用する E メール配信設定と E メールメッセージテンプレートをカスタマイズできます。

    1. [Email configuration] (E メール設定) で、アダプティブ認証で使用する [SES Region] (SES リージョン)、[FROM email address] (FROM E メールアドレス)、[FROM sender name] (FROM 送信者名)、および [REPLY-TO email address] (REPLY-TO E メールアドレス) を選択します。ユーザープールの E メールメッセージを Amazon Simple Email Service の統合方法の詳細については、「Amazon Cognito ユーザープールに使用する E メールの設定」を参照してください。

    2. [Email templates] (E メールテンプレート) を展開して、E メールメッセージの HTML とプレーンテキストバージョンの両方でアダプティブ認証通知をカスタマイズします。E メールメッセージテンプレートの詳細については、「メッセージテンプレート」を参照してください。

  8. IP アドレスの例外を拡張して、アドバンストセキュリティリスク評価に関係なく、常に許可またはブロックされる IPv4 または IPv6 アドレス範囲に対する常時許可または常時ブロックのリストを作成します。CIDR 表記 で IP アドレスの範囲を指定します (例: 192.168.100.0/24)。

  9. [Save changes] (変更の保存) をクリックします。