

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

# Amazon Cognito 的 Security Hub CSPM 控制項
<a name="cognito-controls"></a>

這些 AWS Security Hub CSPM 控制項會評估 Amazon Cognito 服務和資源。控制項可能無法全部使用 AWS 區域。如需詳細資訊，請參閱[依區域的控制項可用性](securityhub-regions.md#securityhub-regions-control-support)。

## 【Cognito.1】 Cognito 使用者集區應以標準身分驗證的完整功能強制執行模式啟用威脅防護
<a name="cognito-1"></a>

**類別：**保護 > 安全存取管理

**嚴重性：**中

**資源類型：** `AWS::Cognito::UserPool`

**AWS Config 規則：**[https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-advanced-security-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-advanced-security-enabled.html)

**排程類型：**已觸發變更

**參數：**


| 參數 | 說明 | Type | 允許自訂值 | Security Hub CSPM 預設值 | 
| --- | --- | --- | --- | --- | 
|  `SecurityMode`  |  控制項檢查的威脅防護強制執行模式。  |  String  |  `AUDIT`, `ENFORCED`  |  `ENFORCED`  | 

此控制項會檢查 Amazon Cognito 使用者集區是否已啟用威脅防護，並將強制執行模式設定為標準身分驗證的完整函數。如果使用者集區已停用威脅防護，或者如果強制執行模式未設定為標準身分驗證的完整函數，則控制項會失敗。除非您提供自訂參數值，否則 Security Hub CSPM 會將強制執行模式的預設值 `ENFORCED` 設定為標準身分驗證的完整函數。

建立 Amazon Cognito 使用者集區之後，您可以啟用威脅防護，並自訂為了回應不同風險而採取的動作。或者，您可以使用稽核模式來收集偵測到風險的指標，而無需套用任何安全性緩解措施。在稽核模式中，威脅防護會將指標發佈至 Amazon CloudWatch。您可以在 Amazon Cognito 產生第一個事件後看到指標。

### 修補
<a name="cognito-1-remediation"></a>

如需有關啟用 Amazon Cognito 使用者集區威脅防護的資訊，請參閱《*Amazon Cognito 開發人員指南*》中的進階[安全性與威脅防護](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-threat-protection.html)。

## 【Cognito.2】 Cognito 身分集區不應允許未驗證的身分
<a name="cognito-2"></a>

**類別：**保護 > 安全存取管理 > 無密碼身分驗證

**嚴重性：**中

**資源類型：** `AWS::Cognito::IdentityPool`

**AWS Config 規則：**[https://docs.aws.amazon.com/config/latest/developerguide/cognito-identity-pool-unauth-access-check.html](https://docs.aws.amazon.com/config/latest/developerguide/cognito-identity-pool-unauth-access-check.html)

**排程類型：**已觸發變更

**參數：**無

此控制項會檢查 Amazon Cognito 身分集區是否設定為允許未驗證的身分。如果身分集區的訪客存取已啟用 ( `AllowUnauthenticatedIdentities` 參數設定為 `true`)，則控制項會失敗。

如果 Amazon Cognito 身分集區允許未驗證的身分，則身分集區會提供臨時 AWS 憑證給未透過身分提供者 （訪客） 驗證的使用者。這會產生安全風險，因為它允許匿名存取 AWS 資源。如果您停用訪客存取，您可以協助確保只有經過適當驗證的使用者才能存取您的 AWS 資源，進而降低未經授權的存取和潛在安全漏洞的風險。最佳實務是，身分集區應要求透過支援的身分提供者進行身分驗證。如果需要未經驗證的存取，請務必謹慎限制未經驗證身分的許可，並定期檢閱和監控其使用情況。

### 修補
<a name="cognito-2-remediation"></a>

如需有關停用 Amazon Cognito 身分集區訪客存取權的資訊，請參閱《*Amazon Cognito 開發人員指南*》中的[啟用或停用訪客存取權](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html#enable-or-disable-unauthenticated-identities)。

## 【Cognito.3】 Cognito 使用者集區的密碼政策應具有強大的組態
<a name="cognito-3"></a>

**類別：**保護 > 安全存取管理

**嚴重性：**中

**資源類型：** `AWS::Cognito::UserPool`

**AWS Config 規則：**[https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-password-policy-check.html](https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-password-policy-check.html)

**排程類型：**已觸發變更

**參數：**


| 參數 | 說明 | Type | 允許自訂值 | Security Hub CSPM 預設值 | 
| --- | --- | --- | --- | --- | 
|  `minLength`  | 密碼必須包含的字元數下限。 | Integer | `8` 至 `128` | `8 ` | 
|  `requireLowercase`  | 密碼中至少需要一個小寫字元。 | Boolean | `True`, `False` | `True`  | 
|  `requireUppercase`  | 密碼中至少需要一個大寫字元。 | Boolean | `True`, `False` | `True`  | 
|  `requireNumbers`  | 密碼中至少需要一個數字。 | Boolean | `True`, `False` | `True`  | 
|  `requireSymbols`  | 密碼中至少需要一個符號。 | Boolean | `True`, `False` | `True`  | 
|  `temporaryPasswordValidity`  | 密碼過期前可存在的天數上限。 | Integer | `7` 至 `365` | `7`  | 

此控制項會根據建議的密碼政策設定，檢查 Amazon Cognito 使用者集區的密碼政策是否需要使用強式密碼。如果使用者集區的密碼政策不需要強式密碼，則控制項會失敗。您可以選擇性地為控制項檢查的政策設定指定自訂值。

強式密碼是 Amazon Cognito 使用者集區的安全最佳實務。弱密碼可能會將使用者的登入資料公開給猜測密碼並嘗試存取資料的系統。對於開放給網際網路的應用程式來說尤其如此。密碼政策是使用者目錄安全性的中心元素。透過使用密碼政策，您可以設定使用者集區來要求密碼複雜性和其他符合您安全標準和需求的設定。

### 修補
<a name="cognito-3-remediation"></a>

如需有關建立或更新 Amazon Cognito 使用者集區密碼政策的資訊，請參閱《*Amazon Cognito 開發人員指南*》中的[新增使用者集區密碼需求](https://docs.aws.amazon.com/cognito/latest/developerguide/managing-users-passwords.html#user-pool-settings-policies)。

## 【Cognito.4】 Cognito 使用者集區應以完整功能強制執行模式啟用威脅防護，以進行自訂身分驗證
<a name="cognito-4"></a>

**類別：**保護 > 安全存取管理

**嚴重性：**中

**資源類型：** `AWS::Cognito::UserPool`

**AWS Config 規則：**[https://docs.aws.amazon.com/config/latest/developerguide/cognito-userpool-cust-auth-threat-full-check.html](https://docs.aws.amazon.com/config/latest/developerguide/cognito-userpool-cust-auth-threat-full-check.html)

**排程類型：**已觸發變更

**參數：**無

此控制項會檢查 Amazon Cognito 使用者集區是否已啟用威脅防護，並將強制執行模式設定為自訂身分驗證的完整函數。如果使用者集區已停用威脅防護，或者如果強制執行模式未設定為自訂身分驗證的完整函數，則控制項會失敗。

威脅防護先前稱為進階安全功能，是一組用於使用者集區中不需要活動的監控工具，以及用於自動關閉潛在惡意活動的組態工具。建立 Amazon Cognito 使用者集區後，您可以使用完整功能強制執行模式啟用威脅防護，以進行自訂身分驗證，並自訂因應不同風險所採取的動作。全功能模式包含一組自動反應，用於偵測不需要的活動和洩露的密碼。

### 修補
<a name="cognito-4-remediation"></a>

如需有關啟用 Amazon Cognito 使用者集區威脅防護的資訊，請參閱《*Amazon Cognito 開發人員指南*》中的進階[安全性與威脅防護](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-threat-protection.html)。

## 【Cognito.5】 應為 Cognito 使用者集區啟用 MFA
<a name="cognito-5"></a>

**類別：**保護 > 安全存取管理 > 多重要素驗證

**嚴重性：**中

**資源類型：** `AWS::Cognito::UserPool`

**AWS Config 規則：**[https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-mfa-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-mfa-enabled.html)

**排程類型：**已觸發變更

**參數：**無

此控制項會檢查以僅限密碼登入政策設定的 Amazon Cognito 使用者集區是否已啟用多重要素驗證 (MFA)。如果使用僅限密碼登入政策設定的使用者集區未啟用 MFA，則控制項會失敗。

多重要素驗證 (MFA) 會將您擁有的身分驗證要素新增至您知道的要素 （通常是使用者名稱和密碼）。對於聯合身分使用者，Amazon Cognito 會將身分驗證委派給身分提供者 (IdP)，且不提供額外的身分驗證因素。不過，如果您有具有密碼身分驗證的本機使用者，則設定使用者集區的 MFA 會增加其安全性。

**注意**  
此控制項不適用於聯合身分使用者和使用無密碼因素登入的使用者。

### 修補
<a name="cognito-5-remediation"></a>

如需有關如何為 Amazon Cognito 使用者集區設定 MFA 的資訊，請參閱《*Amazon Cognito 開發人員指南*》中的[將 MFA 新增至使用者集](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa.html)區。

## 【Cognito.6】 Cognito 使用者集區應該啟用刪除保護
<a name="cognito-6"></a>

**類別：**保護 > 資料保護 > 資料刪除保護

**嚴重性：**中

**資源類型：** `AWS::Cognito::UserPool`

**AWS Config 規則：**[https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-deletion-protection-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/cognito-user-pool-deletion-protection-enabled.html)

**排程類型：**已觸發變更

**參數：**無

此控制項會檢查 Amazon Cognito 使用者集區是否已啟用刪除保護。如果使用者集區的刪除保護已停用，則控制項會失敗。

刪除保護有助於確保您的使用者集區不會意外刪除。當您設定具有刪除保護的使用者集區時，任何使用者都無法刪除集區。刪除保護可防止您請求刪除使用者集區，除非您先修改集區並停用刪除保護。

### 修補
<a name="cognito-6-remediation"></a>

若要設定 Amazon Cognito 使用者集區的刪除保護，請參閱《*Amazon Cognito 開發人員指南*》中的[使用者集區刪除保護](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-deletion-protection.html)。