元鉴
返回中文阅读流

AWS News Blog

通过 Amazon Cognito 多区域复制提升应用程序韧性

Amazon Cognito 现已提供多区域复制功能,可自动将用户数据、凭证和用户池配置同步到辅助 AWS 区域,从而在区域故障转移期间实现不间断身份验证,且无需强制重置密码;此外还新增支持客户托管的 KMS 密钥,以便进行加密控制。

中文内容

已翻译professional media英文原文2026-06-03

AWS 新闻博客

通过 Amazon Cognito 多区域复制提高应用程序韧性

by Sébastien Stormacq 2026 年 6 月 3 日 in 正文:Amazon Cognito, 公告, 发布, 新闻, 安全、身份与合规 Permalink Comments Share
Voiced by Polly

作为一名与 Web 和移动应用开发者合作的开发者倡导者,我经常听到这样一种需求:在区域性服务中断这种小概率事件发生时,仍要保持一致的用户身份验证。随着智能体 AI、微服务、自动化和服务账户的使用日益增多,机器到机器身份验证也产生了类似的需求。今天,我很高兴分享 Amazon Cognito 的两项重要更新:用于提升韧性的多区域复制,以及对客户托管密钥的支持,以便更好地控制加密。

许多应用依赖 Amazon Cognito 来处理用户身份验证和机器到机器身份验证,并管理用户资料。在构建高可用性架构时,在不同 AWS 区域之间保持数据一致是一种关键方法;而在此之前,实现这种一致性面临重大挑战。工程团队需要花费大量时间来构建和维护自定义复制解决方案,以同步各区域之间的配置。手动在区域之间导出和导入用户数据会因潜在的数据暴露而带来安全风险,并增加数据不一致的可能性。在区域切换期间,最终用户会遇到强制重置密码和重新身份验证等中断。对于机器到机器通信,团队必须在次要区域创建新的应用客户端,这意味着需要重新配置其应用并更新受 OAuth 保护的 re

借助多区域复制,Amazon Cognito 会在你选择的次要 AWS 区域中自动维护一份用户数据和机器密钥的同步副本。复制单向流动,从你的主要区域流向次要区域。这包括用户资料、凭证和用户池配置。次要区域以只读模式运行,重点是维持身份验证能力。现有会话会持续不中断。

当您需要将流量引导至辅助区域时,现有用户可以继续使用其现有凭证无中断地登录,并且当前已登录的用户会保持已认证状态,因为两个区域都能识别由任一区域签发的访问令牌。多区域复制支持所有身份验证方法,包括通过社交提供商(Amazon、Google、Apple、Facebook)进行联合登录、Security Assertion Markup Language(SAML)和 OpenID Connect(OIDC)集成,以及 API 授权流程。这种方法可维持面向客户应用程序和后端服务中机器对机器通信的可用性。虽然身份验证会不间断地继续进行,但在故障转移期间,新用户注册或个人资料更新等操作不可用。

在配置多区域复制之前,您必须配置一个存储在 AWS Key Management Service(AWS KMS)中的多区域客户托管密钥,以加密静态用户数据。这些密钥可在各区域之间提供一致的加密,同时让您能够控制自己的加密策略。

实际工作方式如下:我以 us-west-2(俄勒冈)区域中现有的 Cognito 用户池开始此演示。我想配置复制到 us-east-1(弗吉尼亚北部)。我还有一个已在这两个区域中复制的客户托管密钥。

配置多区域复制只需三个步骤。AWS Management Console 会引导我完成这些步骤:设置用于加密的自定义密钥、配置多区域 OIDC 端点,以及配置复制本身。

首先,我设置一个自定义 AWS KMS 密钥,用于加密静态数据。

Cognito Multi-Region replication - initial state

我选择我创建的自定义密钥。我还更新密钥策略,以允许 Amazon Cognito 访问并使用该密钥。控制台会显示需要添加到我的密钥策略中的正确 IAM 策略语句。

Cognito Multi-Region replication - select CMK

当自定义密钥已被选中并正确配置后,控制台会进行确认。

Cognito Multi-Region replication - confirm CMK

其次,我按照控制台说明配置 OIDC 颁发者类型。在步骤 2(可选)中,我选择配置。

Cognito Multi-Region replication - configure multi region OIDC 1

我确保使用这些新端点更新我的客户端应用程序。这是一项必需的变更,需要重新部署服务器端应用程序,并为 App Store 和 Google Play 上的移动应用提交更新。如果我不更新端点,用户将遇到服务中断,因为发送到旧端点的请求将不再被正确路由。

在下一个屏幕上,我选择已更新。我记下新的 URL。我确认更改并选择更改颁发者类型。

最后,我选择用于复制的目标区域。只有已复制自定义加密密钥的区域可供选择。选择目标区域后,我选择创建。

该服务会准备复制。所需时间取决于用户池中的数据量。

当复制的用户池准备就绪后,我会手动激活它。

Cognito Multi-Region replication - replication process is complete

复制状态变为 Active。它已准备好将流量导向副本。

Cognito Multi-Region replication - active

其他配置 控制台帮助我跟踪必须规划的其他配置。当我使用 Lambda 函数处理自定义身份验证流程或短信、电子邮件通知时,我还必须在新的区域中部署并配置这些资源。

同样,在我开始将身份验证流量定向到目标区域之前,必须在目标区域中手动配置日志流式传输或 AWS WAF 配置。

Cognito Multi-Region replication - task list

运行状况检查和故障转移 主区域端点和辅助区域端点始终保持活动状态,并随时准备处理你的流量。为了监控系统运行状况并管理故障转移,你需要设计一种与应用程序的具体要求和安全态势相一致的策略。你可以实施运行状况检查,以监控主区域中身份验证服务的状态,并定义启动故障转移的条件。这些检查可能会关注错误率、延迟模式或特定服务告警。

当你的监控系统检测到符合故障转移条件的问题时,你可以通过 DNS 更新将流量重定向到辅助区域。这种方法让你能够控制故障转移过程,同时保持安全性。可以考虑在非高峰时段测试你的故障转移策略,通过重定向一小部分流量来验证身份验证在辅助区域中是否仍按预期工作。

在使用托管登录以及带自定义域的联合身份验证时,你还可以通过提供 Amazon Route 53 运行状况检查 ID 来使用内置流量路由功能。

定价和可用性:Multi-Region replication 现已作为附加功能向使用 Essentials 和 Plus 层级的 Amazon Cognito 客户开放。对于用户身份验证,该附加功能对 Essentials 层级客户按每个副本区域每月活跃用户 0.0045 美元收费,对 Plus 层级客户按每个副本区域每月活跃用户 0.006 美元收费。对于机器到机器(M2M)身份验证,该附加功能是在成功签发令牌的标准按量定价基础上加收 30%。有关详细定价信息,请参阅 Amazon Cognito pricing。

Multi-Region replication 可在以下区域使用:美国东部(俄亥俄、弗吉尼亚北部)、美国西部(北加利福尼亚、俄勒冈)、亚太地区(孟买、首尔、新加坡、悉尼、东京)、加拿大(中部)、欧洲(法兰克福、爱尔兰、伦敦、巴黎、斯德哥尔摩)和南美洲(圣保罗)。

这些区域中的任意一个都可用作复制的源区域或目标区域。

Essentials 和 Plus 层级支持客户托管密钥。该功能在以下区域可用:美国东部(俄亥俄州、弗吉尼亚北部)、美国西部(北加利福尼亚、俄勒冈)、非洲(开普敦)、亚太地区(香港、海得拉巴、雅加达、马来西亚、墨尔本、孟买、新西兰、大阪、首尔、新加坡、悉尼、泰国、东京)、加拿大(中部)、加拿大西部(卡尔加里)、欧洲(法兰克福、爱尔兰、伦敦、米兰、巴黎、西班牙、斯德哥尔摩、苏黎世)、以色列(特拉维夫)、墨西哥(中部)、南美洲(圣保罗)以及 AWS GovCloud(美国东部、美国西部)

根据我与客户的交流,在区域性事件期间保持业务连续性,同时满足安全要求,是一项高度优先事项。多区域复制提供了构建更具韧性的应用程序的能力,而无需您自行管理复杂的复制逻辑。用户数据和配置的自动同步在保持安全性的同时降低了运营开销。

对于受监管行业的客户,对客户托管密钥的新支持提供了对数据加密的额外控制。您现在可以使用自己的加密密钥来保护静态用户数据,从而帮助您满足医疗保健和金融服务等行业的监管要求。

要开始使用多区域复制和客户托管密钥加密,请访问 Amazon Cognito 控制台,或参阅文档以获取详细的设置说明。我期待听到你如何使用此功能来强化你的应用程序架构。

— seb
Sébastien Stormacq

正文:Sébastien Stormacq

Seb 从上世纪 80 年代中期第一次接触 Commodore 64 起就开始编写代码。他激励构建者释放 AWS 云的价值,凭借的是他将热情、积极性、客户倡导、好奇心和创造力秘密融合而成的独特方式。他的兴趣包括软件架构、开发者工具和移动计算。如果你想向他推销什么,请确保它有 API。可在 Bluesky、X、Mastodon 等平台关注 @sebsto。

原文标题

Improve your application resilience with Amazon Cognito multi-Region replication