通过 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参考资料》 ClientRequestToken中的 PutSecretValue:

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

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