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

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

多区域密钥

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

跨账户访问

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

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

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

Secrets Manager 的费用

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

总结

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