AWS最近为Amazon Cognito引入了一项重要更新,即多区域复制功能。这项新功能允许用户身份数据和配置从主区域自动同步到备用区域,从而在主区域发生故障时,应用能够直接在副本区域继续完成用户认证,无需手动进行数据复制和故障切换。该功能采用单向同步模式,包括用户信息、登录凭证以及相关配置的自动复制。备用区域平时处于只读状态,但当发生故障切换后,用户仍然可以使用原有账号和密码登录。由于两个区域都能够识别彼此签发的访问令牌,因此已有会话也不会立即失效。

--91likeyou---

AWS 首席开发者布道师 Sébastien Stormacq 表示:

工程团队过去花费了大量时间构建和维护跨区域复制方案,以保持配置同步。人工导出和导入用户数据不仅存在数据泄露风险,也容易导致数据不一致。而在区域切换过程中,用户往往还会遭遇密码重置或重新登录等问题。

Amazon Cognito 是 AWS 提供的托管身份服务,用于帮助开发者完成用户认证和访问控制。此次更新还引入了客户自主管理密钥支持,为较高安全性和合规性要求的企业提供了更多控制能力。不过,多区域复制功能要求用户提前配置支持跨区域的 AWS KMS 客户托管密钥。

Stormacq 还指出,

根据官方文档,目前该功能仅适用于运行在 Amazon Cognito 新一代基础设施上的用户池,而这一新架构不久前才刚刚正式发布。PostNL 首席工程师、aws-news.com 作者 Luc van Donkersgoed 对此评价道:

这是用户呼声最高的需求之一。看到 AWS 持续投入 Cognito,也让人感到高兴,这其实是一项相当不错的服务。

不过,这项功能并非没有限制。DanAds 架构师 Daniele Frasca 认为,对于绝大多数场景来说,这是一种“务实的方案”,但它仍存在一些明显约束:

这是提升认证系统韧性的一大进步,对绝大多数团队来说,能够显著降低系统复杂度。不过,它采用的是主备架构,而非双活架构。正常情况下,备用区域无法进行新用户注册、密码重置或资料更新;TOTP 多因素认证也无法在备用区域使用。如果业务要求所有区域都支持 MFA,这将成为一个硬性限制。与此同时,故障切换依赖 DNS 实现,需要用户自行维护自定义域名和健康检查机制,而账户锁定计数等状态信息也不会跨区域同步。

Reddit 社区的整体反应比较积极。许多开发者认为,虽然当前版本仍有一些限制,但这项等待多年的功能终于落地仍然是一件好事。相比之下,Auth0 早已提供多区域部署能力,因此 Cognito 此次补齐了这一长期存在的短板。

多区域复制以附加功能的形式提供给 Cognito Essentials 和 Plus 套餐用户。对于 Essentials 套餐,每个副本区域将按每月活跃用户(MAU)额外收取 0.0045 美元;Plus 套餐则为每个副本区域、每个 MAU 额外收取 0.006 美元。对于机器到机器(M2M)认证场景,启用该功能后,还需要在标准令牌签发费用的基础上额外支付 30% 的附加费用。

目前,多区域复制仅在部分 AWS 区域提供,包括北弗吉尼亚、新加坡、法兰克福和爱尔兰等。这些受支持的区域既可以作为主区域,也可以作为副本区域。另外,客户托管密钥(Customer Managed Key)功能面向 Essentials 和 Plus 套餐开放,其支持范围覆盖更多 AWS 区域,其中也包括 AWS GovCloud。

查看:AWS Cognito Adds Multi-Region Failover for Authentication -

🔥 热词:#aws常见问题 · #aws故障是什么 · #aws dedicated host · #aws auto scaling · #aws available zone · #aws local zones · #aws区域是什么意思 · #aws service control policy