向用户池添加高级安全 - Amazon Cognito

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

向用户池添加高级安全

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

高级安全功能包括已泄露凭证检测自适应身份验证

已泄露的凭证

用户将密码重复用于多个用户账户。Amazon Cognito 的已泄露凭证功能可编译公开泄露的用户名和密码数据,并将用户的凭证与泄露的凭证列表进行比较。已泄露凭证的检测还检查常猜测的密码。

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

自适应身份验证

Amazon Cognito 可以查看来自用户登录请求的位置和设备信息,并应用自动响应来保护用户池中的用户账户免受可疑活动的侵害。

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

访问令牌自定义

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

注意事项和限制

  • Amazon Cognito 高级安全功能适用其他定价。请参阅 Amazon Cognito 定价页面

  • Amazon Cognito 通过以下标准身份验证流程支持自适应身份验证和凭证受损检测:、和。USER_PASSWORD_AUTH ADMIN_USER_PASSWORD_AUTH USER_SRP_AUTH无法在 CUSTOM_AUTH 流和 自定义身份验证质询 Lambda 触发器 中或者通过联合登录使用高级安全功能。

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

  • 在您的用户池中阻止来自始终阻止例外列表中 IP 地址的请求,可以帮助您的用户池保持在请求速率配额以内。Amazon Cognito 高级安全功能无法防止分布式拒绝服务(DDoS)攻击。要在用户池中实施容量攻击防御,请添加 AWS WAF Web ACL。有关更多信息,请参阅将 AWS WAF Web ACL 与用户池相关联

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

先决条件

在开始之前,您需要:

  • 用户池和应用程序客户端。有关更多信息,请参阅 用户池入门

  • 在 Amazon Cognito 控制台中将多重身份验证(MFA)设置为可选,以使用基于风险的自适应身份验证功能。有关更多信息,请参阅向用户池添加 MFA

  • 如果您使用电子邮件通知,请转到 Amazon SES 控制台配置并验证要用于通知电子邮件的电子邮件地址或域。有关 Amazon SES 的更多信息,请参阅在 Amazon SES 中验证身份

配置高级安全功能

您可以在 AWS Management Console 中配置 Amazon Cognito 高级安全功能。

为用户池配置高级安全功能
  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 AWS 凭证。

  2. 选择用户池

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

  4. 选择应用程序集成选项卡。找到高级安全,然后选择启用。如果之前启用了高级安全,请选择编辑

  5. 选择完整功能以配置对已泄露的凭证和自适应身份验证的高级安全响应。选择 “仅审计” 以收集信息并将用户池数据发送到 CloudWatch。高级安全定价适用于仅审计完整功能模式。有关更多信息,请参阅 Amazon Cognito 定价

    建议在启用操作之前,先将高级安全功能保持在审核模式下两周。在此期间,Amazon Cognito 可以了解应用程序用户的使用模式。

  6. 如果您已选择仅审计,请选择保存更改。如果您已选择完整功能

    1. 选择是否要进行自定义操作或使用 Cognito 默认设置响应可疑已泄露的凭证Cognito 默认设置

      1. 检测登录注册密码更改中的已泄露的凭证。

      2. 使用禁止登录操作响应已泄露的凭证。

    2. 如果您为已泄露的凭证选择了自定义操作,请选择 Amazon Cognito 将用于事件检测的用户池操作,以及您希望 Amazon Cognito 执行的 已泄露凭证的响应。您可以使用可疑的已泄露凭证进行禁止登录允许登录

    3. 自适应身份验证下,选择如何响应恶意登录尝试。选择是否要进行自定义操作或使用 Cognito 默认设置响应可疑恶意活动。当您选择 Cognito 默认设置时,Amazon Cognito 会阻止所有风险级别的登录,并且不会通知用户。

    4. 如果您针对自适应身份验证已选择自定义操作,请根据严重性级别选择 Amazon Cognito 对检测到的风险执行的 自动风险响应操作。当您针对风险级别分配响应时,您无法为较高风险级别分配限制性较小的响应。您可以为风险级别分配以下响应:

      1. 允许登录 – 不采取任何预防性操作。

      2. 可选 MFA – 如果用户配置了 MFA,Amazon Cognito 将始终要求用户在登录时提供其它 SMS 或基于时间的一次性密码(TOTP)因素。如果用户没有配置 MFA,他们可以继续正常登录。

      3. 需要 MFA – 如果用户配置了 MFA,Amazon Cognito 将始终要求用户在登录时提供其它短信或 TOTP 因素。如果用户没有配置 MFA,Amazon Cognito 将提示他们设置 MFA。在您自动要求用户使用 MFA 之前,请在应用程序中配置一种机制来捕获 SMS MFA 的电话号码,或为 TOTP MFA 注册身份验证器应用程序。

      4. 禁止登录 – 阻止用户登录。

      5. 通知用户 – 向用户发送电子邮件,其中包含有关 Amazon Cognito 检测到的风险以及您所采取的响应的信息。您可以为发送的消息自定义电子邮件消息模板。

  7. 如果您在上一步骤中选择了通知用户,您可以自定义电子邮件发送设置和电子邮件消息模板以进行自适应身份验证。

    1. 邮件配置下,选择您希望与自适应身份验证一起使用的 SES 区域FROM 电子邮件地址FROM 发件人名称REPLY-TO 电子邮件地址。有关将用户池电子邮件消息与 Amazon Simple Email Service 集成的更多信息,请参阅 Amazon Cognito 用户池的电子邮件设置

      
                  用户事件历史记录
    2. 展开电子邮件模板以自定义包含 HTML 和纯文本版本电子邮件消息的自适应身份验证通知。要了解有关电子邮件消息模板的更多信息,请参阅消息模板

  8. 展开 IP 地址异常以创建始终允许或者始终阻止的 IPv4 或 IPv6 地址清单,该清单将始终允许或阻止其 IPv4 或 IPv6 地址范围,无论高级安全风险评估如何。用 CIDR 表示法指定 IP 地址范围(例如,192.168.100.0/24)。

  9. 选择保存更改