

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于亚马逊 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`  |  控件检查的威胁防护强制模式。  |  字符串  |  `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`  | 密码必须包含的最少字符数。 | 整数 | `8` 到 `128` | `8 ` | 
|  `requireLowercase`  | 密码中要求至少包含一个小写字符。 | 布尔值 | `True`, `False` | `True`  | 
|  `requireUppercase`  | 密码中要求至少包含一个大写字符。 | 布尔值 | `True`, `False` | `True`  | 
|  `requireNumbers`  | 密码中要求至少包含一个数字。 | 布尔值 | `True`, `False` | `True`  | 
|  `requireSymbols`  | 密码中要求至少包含一个符号。 | 布尔值 | `True`, `False` | `True`  | 
|  `temporaryPasswordValidity`  | 密码过期前可以存在的最长天数。 | 整数 | `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 用户池配置删除保护，请参阅 A *mazon Cognito* 开发者指南中的[用户池删除保护](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-deletion-protection.html)。