用户池高级安全功能 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

用户池高级安全功能

在创建用户池之后,即可访问 Amazon Cognito 控制台中导航栏上的高级安全。可以打开用户池高级安全功能并自定义为响应不同风险要执行的操作。或者,您可以使用审计模式收集与检测到的风险相关的指标,而无需应用任何安全缓解措施。在审计模式下,高级安全功能会向 Amazon 发布指标 CloudWatch。在 Amazon Cognito 生成其第一个高级安全事件后,您可以看到高级安全指标。请参阅 查看威胁防护指标

高级安全功能适用其他定价。有关更多信息,请参阅亚马逊 Cognito 定价。

以下用户池选项是高级安全功能的组件。

访问令牌自定义

激活高级安全功能时,您可以将用户池配置为接受对版本 2 Lambda 触发器事件的响应。在版本 2 中,您可以在访问令牌中自定义范围和其他声明。这增强了您在用户进行身份验证时创建灵活授权结果的能力。有关更多信息,请参阅 自定义访问令牌

威胁防护

威胁防护是一组监控用户池中有害活动的工具,以及用于自动关闭潜在恶意活动的配置工具。威胁防护为标准和自定义身份验证操作提供了不同的配置选项。例如,您可能想向具有可疑自定义身份验证登录的用户发送通知,您已在其中设置了其他安全因素,但要使用基本的用户名密码身份验证屏蔽处于相同风险级别的用户。

已泄露的凭证

用户将密码重复用于多个用户账户。Amazon Cognito 的已泄露凭证功能可编译公开泄露的用户名和密码数据,并将用户的凭证与泄露的凭证列表进行比较。已泄露凭证的检测还检查常猜测的密码。您可以在用户池的 username-and-password 标准身份验证流程中检查凭据是否被泄露。Amazon Cognito 不会在安全的远程密码 (SRP) 或自定义身份验证中检测到被泄露的凭证。

您可以选择用于提示检查已泄露凭证的用户操作,以及您希望 Amazon Cognito 采取的应对措施。对于登录、注册和密码更改事件,Amazon Cognito 可以禁止登录允许登录。在这两种情况下,Amazon Cognito 都会生成用户活动日志,您可以在其中找到有关该事件的更多信息。

自适应身份验证

Amazon Cognito 可以查看来自用户登录请求的位置和设备信息,并应用自动响应来保护用户池中的用户账户免受可疑活动的侵害。您可以监控用户活动,并自动响应用户名密码和SRP自定义身份验证中检测到的风险级别。

当您激活高级安全时,Amazon Cognito 会为用户活动分配风险评分。您可以为可疑活动分配自动响应:您可以要求MFA阻止登录,或者只记录活动详细信息和风险评分。您还可以自动发送电子邮件,将可疑活动通知用户,以便他们可以重置密码或采取其他自助操作。

IP 地址允许名单和拒绝名单

使用完整功能模式下的 Amazon Cognito 高级安全功能,您可以创建始终阻止始终允许 IP 地址例外。对于来自始终阻止例外列表中 IP 地址的会话,自适应身份验证不会向其分配风险级别,该会话也无法登录您的用户池。

日志导出

高级安全功能会将用户身份验证请求的详细信息记录到您的用户池中。这些日志包含威胁评估、用户信息以及位置和设备等会话元数据。您可以为这些日志创建外部存档以进行保留和分析。Amazon Cognito 用户池将威胁防护日志导出到亚马逊 S3、 CloudWatch 日志和亚马逊数据 Firehose。有关更多信息,请参阅 查看和导出用户事件历史记录

防止密码重复使用

用户可能会在几个记住的密码之间来回切换。威胁防护中的凭据泄露检测可以减轻密码管理不善所带来的某些长期影响。其余部分则由密码历史记录政策处理。通过防止密码重复使用,您可以将用户的新密码与其最后 n 个密码(最多 24 个)进行比较,如果存在匹配项,则阻止密码重置操作。

高级安全功能的注意事项和限制

身份验证流程之间的威胁防护选项不同

Amazon Cognito 通过身份验证流程和身份验证流程支持自适应身份验证和凭证受损检测。USER_PASSWORD_AUTH ADMIN_USER_PASSWORD_AUTH您只能为启用自适应身份验证USER_SRP_AUTH。您不能在联合登录中使用威胁防护。

始终屏蔽会增加IPs请求配额

在您的用户池中阻止来自始终阻止例外列表中 IP 地址的请求,可以帮助您的用户池保持在请求速率配额以内。

威胁防护不适用速率限制

一些恶意流量具有请求量大的特征,例如分布式拒绝服务 (DDoS) 攻击。Amazon Cognito 对传入流量应用的风险评级是针对每个请求的,不考虑请求量。在高容量事件中,单个请求可能会因为与其在容量攻击中的角色无关的应用层原因而获得风险评分和自动响应。要对用户池中的容量攻击实施防御,请添加 Amazon WAF Web。ACLs有关更多信息,请参阅 将 Amazon WAF Web ACL 与用户池关联

威胁防护不影响 M2M 请求

客户凭证授予的目的是在与用户帐户无关的情况下进行 machine-to-machine (M2M)授权。高级安全功能仅监控用户池中的用户账户和密码。要在 M2M 活动中实现安全功能,请考虑 Amazon WAF 用于监控请求率和内容的功能。有关更多信息,请参阅 将 Amazon WAF Web ACL 与用户池关联

开启高级安全功能

Amazon Cognito user pools console
为用户池激活高级安全功能
  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入您的 Amazon 凭据。

  2. 选择用户池

  3. 从列表中选择一个现有用户池,或创建一个用户池

  4. 选择 “高级安全” 选项卡,然后选择 “激活”。

  5. 选择 Save changes(保存更改)

API

CreateUserPoolUpdateUserPoolAPI请求中将高级安全功能设置为激活。以下部分示例请求正文将高级安全功能设置为全功能模式。有关完整的示例请求,请参阅示例

"UserPoolAddOns": { "AdvancedSecurityMode": "ENFORCED" }