

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

# 使用 Amazon Cognito 用户池安全功能
<a name="managing-security"></a>

您可能想要保护应用程序，防止受到网络入侵、密码猜测、用户模拟以及恶意注册和登录的侵害。Amazon Cognito 用户池安全特征的配置是安全架构中的一个关键组件。您的应用程序的安全性是*客户责任 “云端安全”*，如[责任 AWS 共担模型](https://aws.amazon.com/compliance/shared-responsibility-model/)中所述。本章中的工具有助于使您的应用程序安全设计符合这些目标。

在配置用户池时，必须作出的一项重要决定是，是否允许公开注册和登录。某些用户池选项（例如机密客户端、以管理员身份创建用户和确认，以及没有域的用户池）受到互联网攻击影响的程度较小。而一个常见的使用场景是公共客户端，它们接受互联网上任何人的注册并将所有操作直接发送到您的用户池。在任何配置中（尤其是在这些公共配置中），我们建议在规划和部署用户池时要考虑安全特征。当不受欢迎的来源创建新的活跃用户或试图利用现有用户时，安全性不足也会影响您的 AWS 账单。

MFA 和威胁防护适用于[本地用户](cognito-terms.md#terms-localuser)。第三方 IdPs 应对[联合用户](cognito-terms.md#terms-federateduser)的安全状况负责。用户池安全特征

**多重身份验证 (MFA)**  
请求一个由用户池通过电子邮件（使用基础版或增值版功能计划）或短信或身份验证器应用程序发送的验证码，用以确认用户池登录。

**威胁防护**  
监控登录以了解风险指标，并应用 MFA 或阻止登录。向访问令牌添加自定义声明和范围。通过电子邮件发送 MFA 代码。

**AWS WAF 网页 ACLs**  
检查[用户池端点和身份验证 API](authentication-flows-public-server-side.md#user-pools-API-operations) 的传入流量，以了解网络层和应用程序层是否存在不想要的活动。

**区分大小写**  
防止创建除了字符大小写有所不同之外，其电子邮件地址或首选用户名与另一个用户完全相同的用户。

**删除保护**  
防止自动化系统意外删除您的用户池。需要在 AWS 管理控制台中进一步确认删除用户池。

**用户存在错误**  
防止披露用户池中现有的用户名和别名。无论用户名是否有效，在身份验证失败时都返回一个通用错误。

**Topics**
+ [向用户池添加 MFA](user-pool-settings-mfa.md)
+ [具备威胁防护的高级安全功能](cognito-user-pool-settings-threat-protection.md)
+ [将 AWS WAF Web ACL 与用户池关联](user-pool-waf.md)
+ [用户池区分大小写](user-pool-case-sensitivity.md)
+ [用户池删除保护](user-pool-settings-deletion-protection.md)
+ [管理用户存在错误响应](cognito-user-pool-managing-errors.md)