

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

# 脅威保護を備えた高度なセキュリティ
<a name="cognito-user-pool-settings-threat-protection"></a>

ユーザープールを作成すると、Amazon Cognito コンソールのナビゲーションメニューで **[脅威保護]** にアクセスできます。脅威保護機能をオンにして、さまざまなリスクに応じて実行されるアクションをカスタマイズできます。また、監査モードを使用して、セキュリティ緩和策を適用せずに、検出されたリスクに関するメトリクスを収集できます。監査モードの場合、脅威保護は Amazon CloudWatch にメトリクスを発行します。Amazon Cognito が脅威保護の最初のイベントを生成すると、メトリクスを確認できます。「[脅威保護メトリクスの表示](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics)」を参照してください。

脅威保護 (以前は*高度なセキュリティ機能*と呼ばれていました) は、ユーザープール内の望ましくないアクティビティをモニタリングするツールと、潜在的に悪意のあるアクティビティを自動的にシャットダウンする設定ツールのセットです。脅威保護には、標準認証オペレーション用とカスタム認証オペレーション用の異なる設定オプションがあります。例えば、追加のセキュリティ要素を設定済みのカスタム認証で、疑わしいサインインを使用したユーザーに通知を送信するが、基本的なユーザー名/パスワード認証を使用した同じリスクレベルのユーザーをブロックする場合などです。

脅威保護は、プラス機能プランで利用できます。詳細については、「[ユーザープールの機能プラン](cognito-sign-in-feature-plans.md)」を参照してください。

以下のユーザープールオプションは、脅威保護のコンポーネントです。

**漏えいした認証情報**  
ユーザーは複数のユーザーアカウントのパスワードを再利用します。Amazon Cognito の認証情報漏えい機能では、ユーザー名とパスワードの公開漏えいに関するデータを収集し、ユーザーの認証情報を漏えいした認証情報のリストと比較します。漏えいした認証情報の検出では、よく推測されるパスワードもチェックされます。ユーザープールのユーザー名とパスワードの標準認証フローで、漏えいした認証情報を確認できます。Amazon Cognito は、セキュアリモートパスワード (SRP) またはカスタム認証で漏えいした認証情報を検出しません。  
漏えいした認証情報の確認を促すユーザーアクションと、それに応じて Amazon Cognito に実行してほしいアクションを選択できます。サインイン、サインアップ、パスワード変更のイベントでは、Amazon Cognito は**サインインをブロック**するか、**サインインを許可**することができます。どちらの場合も、Amazon Cognito はユーザーアクティビティログを生成し、そこでイベントに関する詳細情報を確認できます。  
**詳細情報**  
[漏えいした認証情報の検出の使用](cognito-user-pool-settings-compromised-credentials.md)

**アダプティブ認証**  
Amazon Cognito は、ユーザーのサインインリクエストから位置情報とデバイス情報を確認し、自動応答を適用してユーザープールのユーザーアカウントを疑わしいアクティビティから保護します。ユーザーアクティビティをモニタリングし、ユーザー名パスワードと SRP、カスタム認証で検出されたリスクレベルへの応答を自動化できます。  
脅威保護を有効にすると、Amazon Cognito はユーザーアクティビティにリスクスコアを割り当てます。疑わしいアクティビティには自動応答を割り当てることができます。たとえば、**MFA を義務付けたり**、**ログインをブロックしたり**、アクティビティの詳細とリスクスコアを記録したりできます。また、疑わしいアクティビティをユーザーに通知する E メールメッセージを自動的に送信して、ユーザーがパスワードのリセットやその他の自発的なアクションを実行できるようにすることもできます。  
**詳細情報**  
[アダプティブ認証の使用](cognito-user-pool-settings-adaptive-authentication.md)

**IP アドレスの許可リストと拒否リスト**  
Amazon Cognito の脅威保護を **[フル機能]** モードで使用することで、IP アドレスの **[常にブロック]** と **[常に許可]** の例外を作成できます。**常にブロック** 例外リストの IP アドレスからのセッションは、アダプティブ認証によってリスクレベルが割り当てられておらず、ユーザープールにサインインできません。  

**IP アドレスの許可リストとブロックリストについて知っておくべきこと**
+ **[常にブロック]** と **[常に許可]** は CIDR 形式で示す必要があります。例えば、24 ビットマスクを `192.0.2.0/24`、単一の IP アドレスを `192.0.2.252/32` で示します。
+  **[常にブロック]** する IP 範囲の IP アドレスを持つデバイスは、SDK ベースやマネージドログインのアプリケーションを使用してサインアップまたはサインインできませんが、サードパーティの IdP を使用してサインインできます。
+ **[常に許可]** と **[常にブロック]** のリストはトークンの更新には影響しません。
+ Amazon Cognito は、**[常に許可]** する IP 範囲のデバイスにアダプティブ認証 MFA ルールを適用しませんが、漏えいした認証情報のルールを適用します。

**ログのエクスポート**  
脅威保護は、ユーザープールに対するユーザーの認証リクエストの詳細なログを記録します。これらのログには、脅威評価、ユーザー情報、ロケーションやデバイスなどのセッションメタデータが含まれます。これらのログについて、保持と分析のための外部アーカイブを作成できます。Amazon Cognito ユーザープールは、脅威保護ログを Amazon S3、CloudWatch Logs、Amazon Data Firehose にエクスポートします。詳細については、「[ユーザーイベント履歴の表示とエクスポート](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history)」を参照してください。  
**詳細情報**  
[脅威保護ユーザーアクティビティログのエクスポート](exporting-quotas-and-usage.md#exporting-quotas-and-usage-user-activity)

**Topics**
+ [脅威保護に関する考慮事項と制限事項](#cognito-user-pool-threat-protection-considerations)
+ [ユーザープールで脅威保護を有効にする](#cognito-user-pool-threat-protection-activating)
+ [脅威保護の強制適用の概念](#cognito-user-pool-settings-threat-protection-threat-protection-enforcement)
+ [標準認証とカスタム認証の脅威保護](#cognito-user-pool-settings-threat-protection-threat-protection-types)
+ [脅威保護の前提条件](#cognito-user-pool-threat-protection-prerequisites)
+ [脅威保護の設定](#cognito-user-pool-settings-configure-threat-protection)
+ [漏えいした認証情報の検出の使用](cognito-user-pool-settings-compromised-credentials.md)
+ [アダプティブ認証の使用](cognito-user-pool-settings-adaptive-authentication.md)
+ [アプリケーションにおける脅威保護のためのデータ収集](user-pool-settings-viewing-threat-protection-app.md)

## 脅威保護に関する考慮事項と制限事項
<a name="cognito-user-pool-threat-protection-considerations"></a>

**脅威保護オプションは認証フローによって異なる**  
Amazon Cognito は、アダプティブ認証と、認証フローの `USER_PASSWORD_AUTH` と `ADMIN_USER_PASSWORD_AUTH` による漏えいした認証情報の検出の両方をサポートしています。`USER_SRP_AUTH` のアダプティブ認証のみを有効にできます。フェデレーティッドサインインでは脅威保護を使用できません。

**常にブロックする IP はリクエストクォータにカウントされる**  
ユーザープールの **常にブロック** 例外リストの IP アドレスからのブロックされたリクエストは、ユーザープールの[リクエストレートクォータ](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#category_operations) に貢献します。

**脅威保護にはレート制限は適用されない**  
一部の悪意のあるトラフィックは、分散型サービス拒否 (DDoS) 攻撃など、大量のリクエストの特徴を持っています。Amazon Cognito が受信トラフィックに適用するリスク評価はリクエストごとに行われるため、リクエストボリュームは考慮されません。大量のイベント内における個々のリクエストは、大量攻撃でのロールに関連しないアプリケーションレイヤーの理由で、リスクスコアと自動レスポンスを受け取る場合があります。ユーザープールにボリューメトリック攻撃に対する防御を実装するには、 AWS WAF ウェブ ACLs を追加します。詳細については、「[AWS WAF ウェブ ACL をユーザープールに関連付ける](user-pool-waf.md)」を参照してください。

**脅威保護は M2M リクエストには影響しません**  
クライアント認証情報の付与は、ユーザーアカウントに接続しないマシンツーマシン (M2M) 認可を目的としています。脅威保護は、ユーザープール内のユーザーアカウントとパスワードのみをモニタリングします。M2M アクティビティでセキュリティ機能を実装するには、リクエストレートとコンテンツをモニタリング AWS WAF するための の機能を検討してください。詳細については、「[AWS WAF ウェブ ACL をユーザープールに関連付ける](user-pool-waf.md)」を参照してください。

## ユーザープールで脅威保護を有効にする
<a name="cognito-user-pool-threat-protection-activating"></a>

------
#### [ Amazon Cognito user pools console ]

**ユーザープールで脅威保護を有効にするには**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

1. リストから既存のユーザープールを選択するか、[ユーザープールを作成](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html)します。

1. まだ有効にしていない場合は、**[設定]**メニューからプラス機能プランを有効にします。

1. **[脅威保護]** メニューを選択し、**[アクティブ化]** を選択します。

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

------
#### [ API ]

[CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) API リクエストまたは [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) API リクエストで、機能プランをプラスに設定します。次のリクエスト本文の部分的な例では、脅威保護をフル機能モードに設定しています。完全なリクエストの例については、「[例](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#API_CreateUserPool_Examples)」を参照してください。

```
"UserPoolAddOns": { 
      "AdvancedSecurityMode": "ENFORCED"
   }
```

------

脅威保護は、アカウント乗っ取りの兆候がないかについてユーザーオペレーションをモニタリングし、影響を受けるユーザーアカウントのセキュリティ保護に自動的に応答する機能の集合語です。脅威保護設定は、ユーザーが標準認証フローとカスタム認証フローでサインインするときに適用できます。

脅威保護は、ユーザーのサインイン、サインアウト、その他のアクティビティを詳細に記録する[ログを生成](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history)します。これらのログは、サードパーティーのシステムにエクスポートできます。詳細については、「[ユーザーイベント履歴の表示とエクスポート](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history)」を参照してください。

## 脅威保護の強制適用の概念
<a name="cognito-user-pool-settings-threat-protection-threat-protection-enforcement"></a>

脅威保護は、ユーザープールがユーザーアクティビティをモニタリングし、リスクレベルを割り当て、ログを生成する*監査のみ*モードで開始されます。ベストプラクティスとして、*フル機能モード*を有効にする前に、監査のみモードで 2 週間以上実行します。フル機能モードには、検出された危険なアクティビティと漏えいしたパスワードに対する一連の自動応答が含まれます。監査のみモードでは、Amazon Cognito が実行している脅威評価をモニタリングできます。また、擬陽性と陰性について機能をトレーニングする[フィードバックを提供](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-feedback)することもできます。

ユーザープールレベル、および個々のアプリケーションクライアントのレベルで、すべてのアプリケーションクライアントをカバーするように脅威保護の強制適用を設定できます。アプリケーションクライアント脅威保護の設定は、ユーザープールの設定を上書きします。アプリケーションクライアントで脅威保護を設定するには、Amazon Cognito コンソールでユーザープールの **[アプリケーションクライアント]** メニューのアプリケーションクライアント設定に移動します。そこでは、**[クライアントレベルの設定を使用]** により、アプリケーションクライアント専用の強制適用を設定できます。

さらに、標準認証タイプとカスタム認証タイプに対して脅威保護を個別に設定できます。

## 標準認証とカスタム認証の脅威保護
<a name="cognito-user-pool-settings-threat-protection-threat-protection-types"></a>

脅威保護を設定する方法は、ユーザープールとアプリケーションクライアントで実行している認証のタイプによって異なります。以下の各タイプの認証には、独自の強制適用モードと自動応答を使用できます。

**標準認証**  
*[標準認証]* は、ユーザー名パスワードフローとマネージドログインを使用したユーザーのサインイン、サインアウト、パスワード管理です。Amazon Cognito の脅威保護は、ユーザーがマネージドログインでサインインするときや、以下の API `AuthFlow` パラメータを使用するときに、オペレーションをモニタリングしてリスクの兆候がないか確認します。    
**[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)**  
`USER_PASSWORD_AUTH`、`USER_SRP_AUTH`。漏えいした認証情報機能は、`USER_SRP_AUTH` サインイン時のパスワードにアクセスできず、このフローを用いてイベントのモニタリングや、イベントに対するアクションを行いません。  
**[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow)**  
`ADMIN_USER_PASSWORD_AUTH`、`USER_SRP_AUTH`。漏えいした認証情報機能は、`USER_SRP_AUTH` サインイン時のパスワードにアクセスできず、このフローを用いてイベントのモニタリングや、イベントに対するアクションを行いません。
標準認証の **[強制適用モード]** を **[監査のみ]** または **[フル機能]** に設定できます。標準認証の脅威モニタリングを無効にするには、脅威保護を **[強制適用なし]** に設定します。

**カスタム認証**  
*カスタム認証*は、[カスタムチャレンジ Lambda トリガー](user-pool-lambda-challenge.md)によるユーザーサインインです。マネージドログインではカスタム認証を実行できません。Amazon Cognito 脅威保護は、`InitiateAuth` および `AdminInitiateAuth` の API `AuthFlow` パラメータ `CUSTOM_AUTH` を使用してサインインするときに、リスクの指標についてオペレーションをモニタリングします。  
カスタム認証の **[強制適用モード]** は、**[監査のみ]**、**[フル機能]**、または **[強制適用なし]** に設定できます。**[強制適用なし]** オプションは、脅威保護の他の機能に影響を与えることなく、カスタム認証の脅威モニタリングを無効にします。

## 脅威保護の前提条件
<a name="cognito-user-pool-threat-protection-prerequisites"></a>

開始するには、以下が必要です。
+ アプリクライアントを持つユーザープール。詳細については、「[ユーザープールの開始方法](getting-started-user-pools.md)」を参照してください。
+ Amazon Cognito コンソールで多要素認証 (MFA) を **[Optional]** (オプション) に設定して、リスクに基づくアダプティブ認証機能を使用する。詳細については、「[ユーザープールに MFA を追加します](user-pool-settings-mfa.md)」を参照してください。
+ 通知に E メールを使用している場合は、[Amazon SES コンソール](https://console.aws.amazon.com/ses/home)に移動して、通知 E メールで使用する E メールアドレスまたはドメインの設定と検証を実行します。Amazon SES の詳細については、「[Amazon SES での ID の検証](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html)」を参照してください。

## 脅威保護の設定
<a name="cognito-user-pool-settings-configure-threat-protection"></a>

ユーザープールの脅威保護を設定するには、次の手順に従います。

**注記**  
Amazon Cognito ユーザープールコンソールでアプリケーションクライアント別の脅威保護設定をセットアップするには、**[アプリケーションクライアント]** メニューでアプリケーションクライアントを選択し、**[クライアントレベルの設定を使用]** を選択します。

------
#### [ AWS マネジメントコンソール ]

**ユーザープールの脅威保護を設定するには**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

1. リストから既存のユーザープールを選択するか、[ユーザープールを作成](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html)します。

1. **[脅威保護]** メニューを選択し、**[アクティブ化]** を選択します。

1. 設定する脅威保護方法を、**標準認証とカスタム認証**から選択します。カスタム認証と標準認証にはさまざまな強制適用モードを設定できますが、それらは**フル機能**モードでの自動応答の設定を共有します。

1. **[Edit]** (編集) を選択します。

1. **[強制適用モード]** を選択します。検出されたリスクへの対応をすぐに開始するには、**[フル機能]** を選択し、漏えいした認証情報とアダプティブ認証への自動レスポンスを設定します。ユーザーレベルのログと CloudWatch で情報を収集するには、**[監査のみ]** を選択します。

   アクションを有効にする前の 2 週間、脅威保護を監査モードにしておくことをお勧めします。この間に、Amazon Cognito は、アプリケーションユーザーの使用パターンを学習でき、イベントフィードバックを提供してレスポンスを調整できます。

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

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

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

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

   1. **[漏えいした認証情報]** で **[カスタム]** アクションを選択した場合、Amazon Cognito で **[イベントの検出]** に使用するユーザープールアクションと、Amazon Cognito で実行する **[漏えいした認証情報に関する応答]** を選択します。侵害された認証情報による**サインインをブロック**または**サインインを許可**することができます。

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

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

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

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

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

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

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

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

   1. **[E メール設定]** で、アダプティブ認証に使用する **[SES リージョン]**、**[送信元の E メールアドレス]**、**[送信者の名前]**、**[返信先 E メールアドレス]** を選択します。ユーザープールの E メールメッセージを Amazon Simple Email Service の統合方法の詳細については、「[Amazon Cognito ユーザープールに使用する E メールの設定](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-email.html)」を参照してください。  
![ユーザーイベント履歴](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/cup-advanced-security-ses-notification.png)

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

1. **[IP アドレスの例外]** を展開して、脅威保護のリスク評価に関係なく、常に許可またはブロックする IPv4 または IPv6 アドレス範囲の **[常に許可]** または **[常にブロック]** のリストを作成します。[CIDR 表記](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) で IP アドレスの範囲を指定します (例: 192.168.100.0/24)。

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

------
#### [ API (user pool) ]

ユーザープールの脅威保護を設定するには、`UserPoolId` パラメータを含むが、`ClientId` パラメータを含まない [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html) API リクエストを送信します。ユーザープール用のリクエスト本文の例を次に示します。このリスク設定は、リスクの重大度に基づいて一連のアクションをエスカレートし、すべてのリスクレベルでユーザーに通知します。これは、漏えいした認証情報ブロックをサインアップオペレーションに適用します。

この設定を適用するには、別の [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) API リクエストまたは [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) API リクエストの `ENFORCED` に `AdvancedSecurityMode` を設定する必要があります。この例における `{username}` のようなプレースホルダーテンプレートの詳細については、「[MFA、認証、検証、招待メッセージの設定](cognito-user-pool-settings-message-customizations.md)」を参照してください。

```
{
   "AccountTakeoverRiskConfiguration": { 
      "Actions": { 
         "HighAction": { 
            "EventAction": "MFA_REQUIRED",
            "Notify": true
         },
         "LowAction": { 
            "EventAction": "NO_ACTION",
            "Notify": true
         },
         "MediumAction": { 
            "EventAction": "MFA_IF_CONFIGURED",
            "Notify": true
         }
      },
      "NotifyConfiguration": { 
         "BlockEmail": { 
            "Subject": "You have been blocked for suspicious activity",
            "TextBody": "We blocked {username} at {login-time} from {ip-address}."
         },
         "From": "admin@example.com",
         "MfaEmail": { 
            "Subject": "Suspicious activity detected, MFA required",
            "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA."
         },
         "NoActionEmail": { 
            "Subject": "Suspicious activity detected, secure your user account",
            "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password."
         },
         "ReplyTo": "admin@example.com",
         "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
      }
   },
   "CompromisedCredentialsRiskConfiguration": { 
      "Actions": { 
         "EventAction": "BLOCK"
      },
      "EventFilter": [ "SIGN_UP" ]
   },
   "RiskExceptionConfiguration": { 
      "BlockedIPRangeList": [ "192.0.2.0/24","198.51.100.0/24" ],
      "SkippedIPRangeList": [ "203.0.113.0/24" ]
   },
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ API (app client) ]

アプリケーションクライアントの脅威保護を設定するには、`UserPoolId` パラメータと `ClientId` パラメータを含む [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html) API リクエストを送信します。次に、アプリケーションクライアント用のリクエストの本文の例を示します。このリスク設定は、ユーザープール設定よりも重大であり、高リスクのエントリをブロックします。また、漏えいした認証情報ブロックを適用して、サインアップ、サインイン、パスワードリセットの各オペレーションも行います。

この設定を適用するには、別の [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) API リクエストまたは [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) API リクエストの `ENFORCED` に `AdvancedSecurityMode` を設定する必要があります。この例における `{username}` のようなプレースホルダーテンプレートの詳細については、「[MFA、認証、検証、招待メッセージの設定](cognito-user-pool-settings-message-customizations.md)」を参照してください。

```
{
   "AccountTakeoverRiskConfiguration": { 
      "Actions": { 
         "HighAction": { 
            "EventAction": "BLOCK",
            "Notify": true
         },
         "LowAction": { 
            "EventAction": "NO_ACTION",
            "Notify": true
         },
         "MediumAction": { 
            "EventAction": "MFA_REQUIRED",
            "Notify": true
         }
      },
      "NotifyConfiguration": { 
         "BlockEmail": { 
            "Subject": "You have been blocked for suspicious activity",
            "TextBody": "We blocked {username} at {login-time} from {ip-address}."
         },
         "From": "admin@example.com",
         "MfaEmail": { 
            "Subject": "Suspicious activity detected, MFA required",
            "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA."
         },
         "NoActionEmail": { 
            "Subject": "Suspicious activity detected, secure your user account",
            "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password."
         },
         "ReplyTo": "admin@example.com",
         "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
      }
   },
   "ClientId": "1example23456789",
   "CompromisedCredentialsRiskConfiguration": { 
      "Actions": { 
         "EventAction": "BLOCK"
      },
      "EventFilter": [ "SIGN_UP", "SIGN_IN", "PASSWORD_CHANGE" ]
   },
   "RiskExceptionConfiguration": { 
      "BlockedIPRangeList": [ "192.0.2.1/32","192.0.2.2/32" ],
      "SkippedIPRangeList": [ "192.0.2.3/32","192.0.2.4/32" ]
   },
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------