Amazon RDS 数据库密码管理
最后更新于
最后更新于
场景描述:
客户端连接数据库,如何安全存储数据库凭证,使之不易被明文获取,并定期轮换数据库密码,而不需要修改应用代码。
实现方案:
使用 Secrets Manager 直接保存凭证。此时连接数据库需拥有 Secrets Manager 密钥权限和 Secrets Manager 中加密使用的 KMS 密钥相关权限,客户端调用 Secrets Manager API 获得数据库凭证用户和密码。
如上图所示,可将数据库凭证填入并选择相应的数据库实例在 Secrets Manager 实现保存,加密密钥可选择 KMS 默认密钥或者客户托管密钥。Secrets Manager 支持自动轮换 RDS 密码,启用密钥轮换时可配置轮换计划和轮换函数,轮换函数可设为默认的 Lambda 函数或者配置为自定义的 Lambda 函数。详情可参考文档 。
密钥保存在 Secrets Manager 后,可在 Lambda 中使用 AWS Parameters and Secrets Lambda Extension 并调用相应 API ,便捷地从 AWS Secrets Manager 中检索密钥,从而使用获得的密钥连接相应的数据库,代码示例如下: