

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 具有威脅防護的進階安全性
<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)。

威脅防護先前稱為*進階安全功能*，是一組用於使用者集區中不需要活動的監控工具，以及用於自動關閉潛在惡意活動的組態工具。威脅防護對於標準和自訂身分驗證操作有不同的組態選項。例如，您可能想要傳送通知給具有可疑自訂身分驗證登入的使用者，其中您已設定其他安全因素，但使用基本的使用者名稱密碼身分驗證來封鎖處於相同風險層級的使用者。

威脅防護可在 Plus 功能計劃中取得。如需詳細資訊，請參閱[使用者集區功能計劃](cognito-sign-in-feature-plans.md)。

下列使用者集區選項是威脅防護的元件。

**憑證洩漏**  
使用者重複使用多個使用者帳戶的密碼。Amazon Cognito 的憑證洩漏功能，會編譯公開洩漏的使用者名稱和密碼，然後將您的使用者憑證與洩漏憑證清單進行比較。憑證洩漏偵測也會檢查容易猜測的密碼。您可以在使用者集區中的username-and-password標準身分驗證流程中檢查憑證是否洩露。Amazon Cognito 不會在安全遠端密碼 (SRP) 或自訂身分驗證中偵測洩露的登入資料。  
您可以選擇提示檢查洩漏憑證的使用者動作，以及您希望 Amazon Cognito 採取的動作。對於登入、註冊和密碼變更事件，Amazon Cognito 可以 **封鎖登入** 或 **允許登入**。在這兩種情況下，Amazon Cognito 都會產生使用者活動日誌，您可以在其中找到事件的詳細資訊。  
**進一步了解**  
[使用遭盜用憑證偵測](cognito-user-pool-settings-compromised-credentials.md)

**自適應身分驗證**  
Amazon Cognito 可以檢閱使用者登入請求中的位置和裝置資訊，並套用自動回應來保護使用者集區中的使用者帳戶不受可疑活動影響。您可以監控使用者活動，並自動回應使用者名稱密碼和 SRP 中偵測到的風險等級，以及自訂身分驗證。  
當您啟用威脅防護時，Amazon Cognito 會為使用者活動指派風險分數。您可以為可疑活動指派自動回應：**需要 MFA**、**封鎖登入**，或僅記錄活動詳細資料和風險評分。您也可以自動傳送電子郵件訊息，通知您的使用者發現可疑活動，讓他們可以重設密碼或採取其他自助式動作。  
**進一步了解**  
[使用自適應身分驗證](cognito-user-pool-settings-adaptive-authentication.md)

**IP 地址允許清單和拒絕清單**  
在**全函**式模式下使用 Amazon Cognito 威脅防護時，您可以建立 IP 地址**永遠封鎖**和**永遠允許**例外狀況。來自 **Always block** (一律封鎖) 例外狀況列表上的 IP 地址的工作階段，未透過自適應身分驗證指派風險層級，而且無法登入到您的使用者集區。  

**IP 地址允許清單和封鎖清單的須知事項**
+ 您必須以 CIDR 格式表示 **Always 封鎖**和 **Always 允許**，例如 `192.0.2.0/24`、24 位元遮罩或 `192.0.2.252/32`、單一 IP 地址。
+  **始終封鎖** IP 範圍內 IP 地址的裝置無法使用 SDK 型或受管登入應用程式註冊或登入，但他們可以使用第三方 IdPs 登入。
+ **一律允許** 和**一律封鎖**清單不會影響權杖重新整理。
+ Amazon Cognito 不會將自適應身分驗證 MFA 規則套用到來自 **Always allow** IP range 的裝置，但會套用遭盜用憑證規則。

**日誌匯出**  
威脅防護會記錄使用者對使用者集區的身分驗證請求的精細詳細資訊。這些日誌具有威脅評估、使用者資訊和工作階段中繼資料，例如位置和裝置。您可以建立這些日誌的外部封存，以進行保留和分析。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`。您無法搭配聯合登入使用威脅防護。

**一律封鎖 IPs 有助於請求配額**  
阻擋來自您使用者集區中的 **Always block** (一律封鎖) 例外狀況列表上的 IP 地址的請求，有助於您使用者集區的[請求速率配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#category_operations)。

**威脅防護不會套用速率限制**  
有些惡意流量具有大量請求的特性，例如分散式拒絕服務 (DDoS) 攻擊。Amazon Cognito 套用至傳入流量的風險評分是依請求而定，不會考慮請求量。大量事件中的個別請求可能會因為應用程式層原因而收到風險分數和自動回應，這些原因與其在大量攻擊中的角色無關。若要在使用者集區中實作對抗容積攻擊的防禦，請新增 AWS WAF Web ACLs。如需詳細資訊，請參閱[將 AWS WAF Web ACL 與使用者集區建立關聯](user-pool-waf.md)。

**威脅防護不會影響 M2M 請求**  
用戶端憑證授與適用於機器對機器 (M2M) 授權，而不會與使用者帳戶連線。威脅防護只會監控使用者集區中的使用者帳戶和密碼。若要使用 M2M 活動實作安全功能，請考慮 AWS WAF 監控請求率和內容的功能。如需詳細資訊，請參閱[將 AWS WAF Web 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. 如果您尚未啟用，請從**設定**選單啟用 Plus 功能計劃。

1. 選擇**威脅防護**選單，然後選取**啟用**。

1. 選擇**儲存變更**。

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

在 [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) 或 [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) API 請求中將您的功能計劃設定為 Plus。下列部分範例請求內文會將威脅防護設定為全功能模式。如需完整的範例請求，請參閱[範例](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>

威脅防護會在*僅限稽核*模式下開始，使用者集區會監控使用者活動、指派風險層級，以及產生日誌。根據最佳實務，在啟用*完整函數*模式之前，請先以僅限稽核模式執行兩週或更長時間。全功能模式包含一組自動反應，可偵測出有風險的活動和洩露的密碼。使用僅限稽核模式，您可以監控 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`和 `CUSTOM_AUTH`的 API `AuthFlow` 參數登入時，監控操作是否有風險指標`AdminInitiateAuth`。  
您可以將自訂身分驗證的**強制執行模式**設定為**僅限稽核**、**完整函數**或**無強制執行**。**無強制執行**選項會停用自訂身分驗證的威脅監控，而不會影響其他威脅防護功能。

## 威脅防護先決條件
<a name="cognito-user-pool-threat-protection-prerequisites"></a>

開始之前，您必須準備好以下事項：
+ 搭配應用程式用戶端的使用者集區。如需詳細資訊，請參閱[使用者集區入門](getting-started-user-pools.md)。
+ 在 Amazon Cognito 主控台中，將多重要素驗證 (MFA) 設定為 **Optional** (選用)，以使用風險型的適應性身分驗證功能。如需詳細資訊，請參閱[將 MFA 新增到使用者集區](user-pool-settings-mfa.md)。
+ 如果是使用電子郵件通知，請移至 [Amazon SES 主控台](https://console.aws.amazon.com/ses/home)，設定和驗證可搭配電子郵件通知使用的電子郵件地址或網域。如需 Amazon SES 的詳細資訊，請參閱[在 Amazon SES 中驗證身分](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 中收集資訊，請選取**僅稽核**。

   我們建議您在啟用動作之前，將威脅防護保持在稽核模式兩週。在此期間，Amazon Cognito 可以了解應用程式使用者的使用模式，並提供事件意見回饋來調整回應。

1. 如果您已選取 **Audit only** (僅稽核)，則請選擇 **Save changes** (儲存變更)。如果您已選取 **Full function** (完整功能)：

   1. 選取您是否要採取 **Custom** (自訂) 動作或使用 **Cognito defaults** (Cognito 預設值) 回應疑似 **Compromised credentials** (憑證洩漏)。**Cognito defaults** (Cognito 預設值) 是：

      1. 對 **Sign-in** (登入)、**Sign-up** (註冊) 和 **Password change** (密碼變更) 偵測憑證洩漏。

      1. 使用動作 **Block sign-in** (封鎖登入) 回應憑證洩漏。

   1. 如果您已為 **Compromised credentials** (憑證洩漏) 選取 **Custom** (自訂) 動作，請選擇 Amazon Cognito 會用於 **Event detection** (事件偵測) 的使用者集區動作，以及您希望 Amazon Cognito 採取的 **Compromised credentials responses (憑證洩漏回應)**。對於疑似洩漏憑證，您可以 **Block sign-in** (封鎖登入) 或 **Allow sign-in** (允許登入)。

   1. 在 **Adaptive authentication** (適應性身分驗證) 下方選擇如何回應惡意登入嘗試。選取您是否要採取 **Custom** (自訂) 動作或使用 **Cognito defaults** (Cognito 預設值) 回應疑似惡意活動。當您選取 **Cognito defaults** (Cognito 預設值) 時，Amazon Cognito 會封鎖所有風險等級的登入，且不會通知使用者。

   1. 如果您已選取適用於 **Adaptive authentication** (適應性身分驗證) 的 **Custom** (自訂) 動作，則請選擇 Amazon Cognito 將根據嚴重性層級回應已偵測到之風險採取的 **Automatic risk response** (自動風險回應) 動作。針對風險層級指派回應時，您無法將較低限制的回應指派給較高層級的風險。您可以將下列回應指派給風險層級：

      1. **Allow sign-in** (允許登入) – 不採取任何預防措施。

      1. **Optional MFA** (選用 MFA) – 如果使用者已設定 MFA，則 Amazon Cognito 會一律要求使用者在登入時提供額外的 SMS 或以時間為基礎的一次性密碼 (TOTP) 因素。如果使用者沒有設定 MFA，則他們可以繼續正常登入。

      1. **Require MFA** (需要 MFA) – 如果使用者已設定 MFA，則 Amazon Cognito 會一律要求使用者在登入時提供額外的 SMS 或 TOTP 因素。如果使用者沒有設定 MFA，則 Amazon Cognito 會提示他們設定 MFA。在自動為使用者要求 MFA 之前，請在應用程式中設定機制來擷取用於 SMS MFA 的電話號碼，或註冊用於 TOTP MFA 的驗證器應用程式。

      1. **封鎖登入** – 阻止使用者登入。

      1. **通知使用者** – 傳送電子郵件訊息給使用者，其中包含 Amazon Cognito 已偵測到之風險以及您採取之回應的資訊。您可以為傳送的訊息自訂電子郵件訊息範本。

1. 如果您已在上一步中選擇 **Notify user** (通知使用者)，則可以自訂電子郵件傳遞設定和電子郵件訊息範本，以進行適應性身分驗證。

   1. 在 **Email configuration** (電子郵件組態) 下，選擇您想要與適應性身分驗證搭配使用的 **SES Region** (SES 區域)、**FROM email address** (寄件者電子郵件地址)、**FROM sender name** (寄件者傳送人名稱) 以及 **REPLY-TO email address** (回覆至電子郵件地址)。如需將使用者集區電子郵件訊息與 Amazon Simple Email Service 整合的相關詳細資訊，請參閱 [Amazon Cognito 使用者集區的電子郵件設定](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-email.html)。  
![使用者事件歷史記錄](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/cup-advanced-security-ses-notification.png)

   1. 展開 **Email templates** (電子郵件範本)，自訂同時搭配 HTML 和純文字電子郵件訊息版本的適應性身分驗證通知。若要進一步了解電子郵件訊息範本，請參閱 [訊息範本](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-message-templates)。

1. 展開 **IP 地址例外**狀況，以建立**一律允許**或**一律封鎖**清單，列出一律允許或封鎖的 IPv4 或 IPv6 地址範圍，無論威脅防護風險評估為何。以 [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) (CIDR 表示法) 指定 IP 地址範圍 (如 192.168.100.0/24)。

1. 選擇**儲存變更**。

------
#### [ 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) 或 [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) 或 [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"
}
```

------