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

轮换 Amazon Secrets Manager 密钥

Rotation 是定期更新密钥的过程。当轮换密钥时,会同时更新密钥和数据库或服务中的凭据。在 Secrets Manager 中,您可以为密钥设置自动轮换。

轮换的工作原理

为了轮换密码,Secrets Manager 会根据您设置的时间表调用 Lambda 函数。轮换过程中,Secrets Manager 用暂存标注标注密钥的不同版本。在轮换过程中,Secrets Manager 调用几次同一函数,每次使用不同的参数。Secrets Manager 调用具有以下 JSON 请求参数结构的函数:

{ "Step" : "request.type", "SecretId" : "string", "ClientRequestToken" : "string" }

轮换函数完成轮换密钥的工作。轮换密码有四个步骤,对应下列 Lambda 轮换函数中的四个步骤:

  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 版本,以用于访问数据库或服务。基于 轮换函数模板 测试的轮换函数使用读取访问权限测试新的密钥。根据应用程序所需的访问类型,您可以更新函数以包括其他访问权限,例如写入访问权限。

  4. 完成轮换(finishSecret

    最后,轮换将标注 AWSCURRENT 从以前的密钥版本移至该版本。Secrets Manager 添加 AWSPREVIOUS 暂存标注到以前的版本,以便您保留密钥的上次已知良好的版本。

在轮换期间,Secrets Manager 会录入指示轮换状态的事件。有关更多信息,请参阅使用 Amazon CloudTrail 记录 Amazon Secrets Manager 事件

如果任何轮换步骤失败,Secrets Manager 会多次重试整个轮换过程。

轮换成功后,从 Secrets Manager 找回 从 Amazon Secrets Manager 中检索密钥 的应用程序自动获取更新的凭据。有关每个轮换步骤的工作原理的更多详细信息,请参阅 Amazon Secrets Manager 轮换函数模板