AWS Secrets Manager 的多区域策略 - 复制与跨账户共享

通过多区域复制实现灾难恢复,通过跨账户访问从安全账户构建集中管理的方法。

多区域密钥

Secrets Manager 的多区域密钥是将主区域的密钥自动同步到最多 4 个副本区域的功能。各区域的副本拥有独立的 ARN,但可以用相同的密钥名称访问。应用从区域特定的端点获取密钥,因此主区域故障时也能从副本区域继续访问。副本为只读,更新仅在主区域执行。主区域故障时可将副本提升为主区域,从而也可以写入。

跨账户访问

在多账户环境中,推荐在中央安全账户管理密钥,从工作负载账户引用的架构。在密钥上设置基于资源的策略,允许工作负载账户的 IAM 角色执行 GetSecretValue。工作负载账户侧在 IAM 角色上附加允许访问安全账户密钥 ARN 的策略。KMS 密钥的密钥策略也需要设置跨账户的 Decrypt 权限。这种架构在集中管理密钥的同时,允许各账户的应用安全访问。

版本控制与轮换期间的可用性

Secrets Manager 通过标签管理密钥版本。AWSCURRENT 指向当前有效版本,AWSPREVIOUS 指向前一个版本。轮换期间新密码以 AWSPENDING 标签创建,数据库密码更新和连接测试完成后提升为 AWSCURRENT。交替用户策略交替使用 2 个数据库用户,一方密码轮换期间另一方维持连接。应用侧推荐使用 SDK 的缓存库,在缓存 TTL 内继续使用轮换前的密码,TTL 过期时获取新密码。

Secrets Manager 的费用

Secrets Manager 的费用为每个密钥每月约 0.40 美元,每 10,000 次 API 调用约 0.05 美元(截至 2026 年 8 月)。多区域复制时,副本区域的密钥也产生同额月费。复制到 4 个区域时,每个密钥每月约 2.00 美元(0.40 × 5 个区域)。与 Parameter Store 的 SecureString(标准参数免费)相比成本较高,但考虑自动轮换和多区域复制的价值来选择。

副本的机制与灾难恢复

Secrets Manager 可以将密钥复制到多个区域。更新主区域的密钥后,其内容会自动反映到副本区域。各区域的应用可以从就近的区域读取密钥,因此能够避免跨区域访问带来的延迟。从灾难恢复的角度来看,当主区域无法使用时,可以切换到副本区域继续运行。将相同的凭证可靠地分发到多个区域的机制,是高可用性系统的基础。

复制时的加密与加密密钥管理

密钥按区域加密,因此创建副本时,需要指定在副本区域使用的加密密钥。跨区域无法使用同一个加密密钥,因此需要为各区域准备对应的加密密钥,并设计好权限,使每个区域都能解密。这样,各区域的应用就可以使用本区域的加密密钥安全地获取密钥。加密密钥的管理按区域分开,因此以区域为单位的访问控制也会变得清晰。设计复制时,重要的是不只着眼于数据本身,还要把用于解密的加密密钥的放置位置和权限一并纳入规划。

多区域应用的设计

在多个区域部署服务的应用中,重要的是各区域能够自主运行。只要事先将密钥复制到各区域,应用就无需依赖外部区域,可以在本地获取凭证并运行。这样,即使区域之间出现通信故障,各区域也能独立维持功能。在靠近用户的区域内完成处理,响应速度也会更快。对于全球部署的服务,将密钥这类通用组成部分分发到各区域的设计,有助于兼顾可用性与性能。

运维注意事项

多区域密钥的运维有几个注意点。复制在反映上会有短暂的时间差,因此要考虑到更新后不久在副本中读到旧值的可能性。通过轮换更新凭证时,需要确认该变更已可靠地传播到各区域。创建副本后,每个区域都会保存一份并产生相应的费用,因此只把真正需要在多个区域使用的密钥列为复制对象。清理不再需要的副本。意识到副本的一致性、轮换的传播和成本这三点来运维,是让多区域架构保持稳定的关键。

总结

通过 Secrets Manager 的多区域复制和跨账户共享,可实现企业级密钥管理。将副本配置用于灾难恢复、安全账户集中管理、版本控制确保轮换期间可用性相结合,可构建稳健的密钥管理基础设施。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享