轮换的工作原理
为了轮换密码,Secrets Manager 会根据您设置的时间表调用 Lambda 函数。在轮换过程中,Secrets Manager 调用几次同一函数,每次使用不同的参数。Secrets Manager 调用具有以下 JSON 请求参数结构的函数:
{ "Step" : "request.type", "SecretId" : "string", "ClientRequestToken" : "string" }
轮换函数完成轮换密钥的工作。轮换密码有四个步骤,对应于 Lambda 轮换函数中的四个步骤。轮换过程中,Secrets Manager 用暂存标注标注密钥的不同版本。
- 步骤 1:新建密钥 (
createSecret
) 的版本。 -
轮换的第一步是创建密钥的一个新版本。新版本可以包含新密码、新用户名和密码或更多机密信息,具体取决于您的轮换策略。Secrets Manager 为暂存标注
的新版本进行标注。AWSPENDING
- 步骤 2:更改数据库或服务 (
setSecret
) 中的凭证 -
接下来,轮换会更改数据库或服务中的凭据,以匹配密钥的
AWSPENDING
版本。此步骤可以创建与现有用户具有相同权限的新用户,具体取决于您的轮换策略。适用于 Amazon RDS(Oracle 除外)和 Amazon DocumentDB 的轮换函数将自动使用安全套接字层 (SSL) 或传输层安全性 (TLS) 来连接到数据库(如果可用)。否则,他们将使用未加密的连接。
注意 如果您在 2021 年 12 月 20 日之前设置了自动密钥轮换,则您的轮换函数可能基于不支持 SSL/TLS 的较旧模板。请参阅确定您的轮换函数的创建时间。如果它是在 2021 年 12 月 20 日之前创建的,那么为了支持使用 SSL/TLS 的连接,您需要重新创建您的轮换函数。
- 步骤 3:测试新的密钥版本 (
testSecret
) -
接下来,轮换测试密钥的
AWSPENDING
版本,以用于访问数据库或服务。基于 轮换函数模板 测试的轮换函数使用读取访问权限测试新的密钥。根据应用程序所需的访问类型,您可以更新函数以包括其他访问权限,例如写入访问权限。请参阅自定义 Secrets Manager 提供的 Lambda 轮换函数。 - 步骤 4:完成轮换 (
finishSecret
) -
最后,轮换将标注
AWSCURRENT
从以前的密钥版本移至该版本。Secrets Manager 添加AWSPREVIOUS
暂存标注到以前的版本,以便您保留密钥的上次已知良好的版本。
在轮换期间,Secrets Manager 会录入指示轮换状态的事件。有关更多信息,请参阅使用 Amazon CloudTrail 记录 Amazon Secrets Manager 事件。
轮换成功后,从 Secrets Manager 找回 从 Amazon Secrets Manager 中检索密钥 的应用程序自动获取更新的凭据。有关每个轮换步骤的工作原理的更多详细信息,请参阅 Secrets Manager 轮换函数模板。
要启用自动轮换,请参阅: