轮换的工作原理 - Amazon Secrets Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

轮换的工作原理

为了轮换密码,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 轮换函数模板

要启用自动轮换,请参阅: