通过 Lambda 函数进行轮换 - Amazon Secrets Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

通过 Lambda 函数进行轮换

对于许多类型的密钥,Secrets Manager 使用 Amazon Lambda 函数来更新密钥和数据库或服务。有关使用 Lambda 函数的成本的信息,请参阅 定价

对于某些 由其他服务管理的密钥,可使用托管轮换。要使用 托管轮换,请首先通过管理服务来创建密钥。

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

为了轮换密钥,Secrets Manager 会根据您设置的轮换计划调用 Lambda 函数。如果在设置自动轮换时也手动更新密钥值,则 Secrets Manager 在计算下一次轮换日期时会认为这是有效的轮换。

在轮换过程中,Secrets Manager 调用几次同一函数,每次使用不同的参数。Secrets Manager 调用具有以下 JSON 请求参数结构的函数:

{ "Step" : "request.type", "SecretId" : "string", "ClientRequestToken" : "string", "RotationToken" : "string" }
参数:
  • 步骤 – 轮换步骤:create_secretset_secrettest_secretfinish_secret。有关更多信息,请参阅 轮换函数的四个步骤

  • SecretId – 要轮换的密钥的 ARN。

  • ClientRequestToken – 新版本密钥的唯一标识符。此值有助于确保幂等性。有关更多信息,请参阅《Amazon Secrets Manager API 参考》中的 PutSecretValue:ClientRequestToken

  • RotationToken – 表示请求来源的唯一标识符。使用代入角色轮换密钥或跨账户轮换所必需的条件,即您使用另一个账户中的 Lambda 轮换函数来轮换一个账户中的密钥。在这两种情况下,轮换函数都担任 IAM 角色来调用 Secrets Manager,然后 Secrets Manager 使用轮换令牌来验证 IAM 角色身份。

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