适用于亚马逊 Cognito 的 Security Hub CSPM 控件 - AWSSecurity Hub

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

适用于亚马逊 Cognito 的 Security Hub CSPM 控件

这些AWS Security Hub CSPM控制措施用于评估 Amazon Cognito 服务和资源。这些控件可能并非全部可用AWS 区域。有关更多信息,请参阅 按地区划分的控件可用性

[Cognito.1] Cognito 用户池应激活威胁防护,并采用完全功能强制模式进行标准身份验证

类别:保护 > 安全访问管理

严重性:

资源类型:AWS::Cognito::UserPool

AWS Config 规则:cognito-user-pool-advanced-security-enabled

计划类型:已触发变更

参数:

参数 说明 Type 允许的自定义值 Security Hub CSPM 默认值

SecurityMode

控件检查的威胁防护强制模式。

字符串

AUDIT, ENFORCED

ENFORCED

此控件检查 Amazon Cognito 用户池是否已激活威胁防护,并将强制模式设置为采用全功能进行标准身份验证。如果用户池已停用威胁防护,或者强制模式未设置为采用全功能进行标准身份验证,则该控件会失败。除非您提供自定义参数值,否则 Security Hub CSPM 将使用默认值ENFORCED作为标准身份验证的强制模式设置为全功能。

创建 Amazon Cognito 用户池后,您可以激活威胁防护并自定义针对不同风险采取的操作。或者,您可以使用审计模式收集与检测到的风险相关的指标,而无需应用任何安全缓解措施。在审计模式下,威胁防护会向 Amazon 发布指标 CloudWatch。在 Amazon Cognito 生成其第一个事件后,您即可看到指标。

修复

有关为 Amazon Cognito 用户池激活威胁防护的信息,请参阅《Amazon Cognito 开发人员指南》中的具备威胁防护的高级安全功能

[Cognito.2] Cognito 身份池不应允许未经身份验证的身份

类别:保护 > 安全访问管理 > 无密码身份验证

严重性:

资源类型:AWS::Cognito::IdentityPool

AWS Config 规则:cognito-identity-pool-unauth-access-check

计划类型:已触发变更

参数:

此控件检查 Amazon Cognito 身份池是否配置为允许未经身份验证的身份。如果激活身份池的访客访问权限(AllowUnauthenticatedIdentities 参数设置为 true),则该控件会失败。

如果 Amazon Cognito 身份池允许未经身份验证的身份,则该身份池将向尚未通过身份提供者进行身份验证的用户(访客)提供临时AWS证书。这会带来安全风险,因为它允许匿名访问AWS资源。如果您停用访客访问权限,则可以帮助确保只有经过适当身份验证的用户才能访问您的AWS资源,从而降低未经授权访问和潜在安全漏洞的风险。作为最佳实践,身份池应要求通过支持的身份提供者进行身份验证。如果需要未经身份验证的访问,请务必谨慎限制未经身份验证的身份的权限,并定期审查和监控其使用情况。

修复

有关停用 Amazon Cognito 身份池的访客访问权限的信息,请参阅《Amazon Cognito 开发人员指南》中的激活或停用访客访问权限

[Cognito.3] Cognito 用户池的密码策略应具有可靠的配置

类别:保护 > 安全访问管理

严重性:

资源类型:AWS::Cognito::UserPool

AWS Config 规则:cognito-user-pool-password-policy-check

计划类型:已触发变更

参数:

参数 说明 Type 允许的自定义值 Security Hub CSPM 默认值

minLength

密码必须包含的最少字符数。 整数

8128

8

requireLowercase

密码中要求至少包含一个小写字符。 布尔值

True, False

True

requireUppercase

密码中要求至少包含一个大写字符。 布尔值

True, False

True

requireNumbers

密码中要求至少包含一个数字。 布尔值

True, False

True

requireSymbols

密码中要求至少包含一个符号。 布尔值

True, False

True

temporaryPasswordValidity

密码过期前可以存在的最长天数。 整数

7365

7

此控件根据密码策略的推荐设置,检查 Amazon Cognito 用户池的密码策略是否要求使用强密码。如果用户池的密码策略不要求使用强密码,则此控件会失败。您可以选择为控件检查的策略设置指定自定义值。

强密码是 Amazon Cognito 用户池的一项安全最佳实践。弱密码可以将用户的凭证暴露给会猜测密码并尝试访问数据的系统。对于向互联网开放的应用程序来说尤其如此。密码策略是用户目录安全的核心要素。通过使用密码策略,您可以配置用户池,使其要求密码复杂度和其他符合您的安全标准和要求的设置。

修复

有关创建或更新 Amazon Cognito 用户池的密码策略的信息,请参阅《Amazon Cognito 开发人员指南》中的添加用户池密码要求

[Cognito.4] Cognito 用户池应激活威胁防护,并使用全功能强制模式进行自定义身份验证

类别:保护 > 安全访问管理

严重性:

资源类型:AWS::Cognito::UserPool

AWS Config 规则:cognito-userpool-cust-auth-threat-full-check

计划类型:已触发变更

参数:

此控件检查 Amazon Cognito 用户池是否已激活威胁防护,并将强制模式设置为完整功能以进行自定义身份验证。如果用户池禁用了威胁防护,或者自定义身份验证的强制模式未设置为完整功能,则控制失败。

威胁防护(此前称为高级安全功能)是一组监控用户池中不必要活动的工具,也是用于自动关闭潜在恶意活动的配置工具。创建 Amazon Cognito 用户池后,您可以激活具有全功能强制模式的威胁防护,以进行自定义身份验证,并自定义为应对不同风险而采取的操作。全功能模式包括一组自动反应,用于检测不想要的活动和泄露的密码。

修复

有关为 Amazon Cognito 用户池激活威胁防护的信息,请参阅《Amazon Cognito 开发人员指南》中的具备威胁防护的高级安全功能

[Cognito.5] 应为 Cognito 用户池启用 MFA

类别:保护 > 安全访问管理 > 多因素身份验证

严重性:

资源类型:AWS::Cognito::UserPool

AWS Config 规则:cognito-user-pool-mfa-enabled

计划类型:已触发变更

参数:

此控件检查配置了仅限密码登录策略的 Amazon Cognito 用户池是否启用了多重身份验证 (MFA)。如果配置了仅限密码登录策略的用户池未启用 MFA,则控制失败。

多重身份验证 (MFA) 在你知道的因素(通常是用户名和密码)中添加了一个你有身份验证因子。对于联合用户,Amazon Cognito 将身份验证委托给身份提供者 (IdP),并且不提供额外的身份验证因素。但是,如果您的本地用户具有密码身份验证,则为用户池配置 MFA 可以提高他们的安全性。

注意

此控件不适用于联合用户和使用无密码因素登录的用户。

修复

有关如何为 Amazon Cognito 用户池配置 MFA 的信息,请参阅 Amazon Cognito 开发者指南中的向用户池添加 MFA

[Cognito.6] Cognito 用户池应启用删除保护

类别:保护 > 数据保护 > 数据删除保护

严重性:

资源类型:AWS::Cognito::UserPool

AWS Config 规则:cognito-user-pool-deletion-protection-enabled

计划类型:已触发变更

参数:

此控件会检查 Amazon Cognito 用户池是否启用了删除保护。如果禁用了用户池的删除保护,则控件将失败。

删除保护有助于确保您的用户池不会被意外删除。在为用户池配置删除保护时,任何用户都无法删除该池。删除保护可防止您请求删除用户池,除非您先修改用户池并停用删除保护。

修复

要为 Amazon Cognito 用户池配置删除保护,请参阅 A mazon Cognito 开发者指南中的用户池删除保护