用户池高级安全功能 - Amazon Cognito

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

用户池高级安全功能

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

高级安全功能适用其他定价。有关更多信息,请参阅 Amazon 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。有关更多信息,请参阅 查看和导出用户事件历史记录

电子邮件 MFA

扩展用户池的多因素身份验证 (MFA) 功能。默认情况下,用户池可以在SMS消息中生成代码,也可以使用您与用户身份验证器应用程序共享的基于私有时间的一次性密码 (TOTP) 密钥生成代码。借助高级安全功能和 A SESmazon 电子邮件发送配置,您可以MFA为用户池中的用户激活电子邮件,将电子邮件设置为首选MFA方法,并将MFA代码发送到用户的电子邮件地址。有关更多信息,请参阅 电子邮件 MFA

防止密码重复使用

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

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

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

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

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

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

威胁防护不适用速率限制

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

威胁防护不影响 M2M 请求

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

开启高级安全功能

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

  2. 选择用户池

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

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

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

API

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

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