介绍增强版的 AWS Secrets Manager 转换AWSSecretsManager

AWS Secrets Manager 新版转换功能介绍

关键要点

  • 发布了 AWS Secrets Manager 的新版本转换功能:AWS::SecretsManager-2024-09-16,旨在简化基础设施管理。
  • 自动更新轮换 Lambda 函数的运行时配置和内部依赖项,确保使用安全稳定的版本。
  • 新版本支持更多资源属性,提高了对资源的管理能力。
  • 升级新版本可避免将来支持中止时带来的影响。

我们很高兴地宣布 AWS Secrets Manager的增强版转换功能:AWS::SecretsManager-2024-09-16。此更新旨在通过减少手动安全更新、错误修复和运行时升级的需求来简化基础设施管理。

旨在帮助您管理、检索和旋转数据库凭据、API 密钥和其他机密信息。某些 AWS服务提供,但对于其他机密,您需要使用 函数来更新机密和数据库或服务。

转换功能是由 托管的宏,允许您创建和管理复杂的基础设施配置。有关转换的一般信息,请参阅 。

AWS::SecretsManager 转换功能与 AWS::SecretsManager::RotationScheduleHostedRotationLambda 一起使用,自动将 CloudFormation 模板扩展为嵌套堆栈,创建适合您的数据库或服务的旋转 Lambda 函数。该转换功能便于将 AWS 提供的旋转 Lambda函数作为 CloudFormation 模板的一部分部署到您的账户中,而无需依赖于通过 AWS 无服务器应用程序库或 AWS 管理控制台创建旋转 Lambda 函数。

在本文中,我们将探索转换的新功能,将其与之前的版本进行比较,并指导您如何将使用旧版本转换创建的现有 Lambda 函数更新为使用新版本转换。

AWS::SecretsManager-2024-09-16 的新功能

新版本引入了几个相较于以前版本(AWS::SecretsManager-2020-07-23)的增强功能:

  • 自动 Lambda 升级 :您的旋转 Lambda 函数的运行时配置和内部依赖项在您更新 CloudFormation 堆栈时会自动更新。这帮助您确保使用 AWS Secrets Manager 提供的旋转 Lambda 函数代码和运行时的最新安全和稳定版本。目前,AWS Lambda 支持 Python 3.9 及更高版本。随着 Python 3.8 的弃用,此功能允许无缝过渡到更新的支持版本。有关运行时弃用的更多信息,请参阅 和 。
  • 附加资源属性 :新转换现在支持与 HostedRotationLambda 属性一起使用的 AWS::SecretsManager::RotationSchedule 资源类型的附加资源属性。以下属性应用于创建旋转 Lambda 函数的嵌套堆栈(类型为 AWS::CloudFormation::Stack):
  • CreationPolicy
  • DependsOn
  • Metadata
  • UpdatePolicy
  • Condition

有关这些资源属性的更多信息,请参阅 。

资源属性比较

下表展示了两种版本 Secrets Manager 转换功能支持的资源属性:

属性AWS::SecretsManager-2020-07-23AWS::SecretsManager-2024-09-16
DeletionPolicy支持支持
UpdateReplacePolicy支持支持
CreationPolicy不支持支持
DependsOn不支持支持
Metadata不支持支持
UpdatePolicy不支持支持
Condition不支持支持

重要注意事项

在使用 AWS::SecretsManager-2024-09-16 转换之前,您需要注意以下几个事项,以确保您的 CloudFormation堆栈能够正确创建或更新:

  • 不向后兼容 :新转换版本与以前版本不兼容。如果您从 AWS::SecretsManager-2024-09-16 降级到 AWS::SecretsManager-2020-07-23,将不支持附加资源属性,这可能会改变现有堆栈的行为。
  • 升级时的回滚行为 :当您从以前版本升级到 AWS::SecretsManager-2024-09-16 时,如果由于任何原因发生堆栈回滚,旋转 Lambda 函数可能不会还原到其先前状态。这是因为旧转换的嵌套堆栈可能不使用在升级之前所用的相同 Lambda 部署包。
  • 直接修改 Lambda :如果您在 CloudFormation 堆栈更新之外直接修改了新转换创建的 Lambda 函数,这些修改可能在后续的堆栈更新或回滚期间被覆盖。
  • Lambda 运行时管理 :使用新转换版本时,旋转 Lambda 函数的运行时与 Secrets Manager 旋转 Lambda 模板中提供的编译二进制文件一致,而无需在 HostedRotationLambda 属性中指定 Runtime 值。如果您指定了 Runtime 值,请确保它与 Secrets Manager 提供的旋转 Lambda 模板支持的版本相同。否则,Lambda 运行时将与发布在旋转 Lambda 函数中的二进制文件不兼容。有关支持的运行时的更多信息,请参阅 。
  • 未来支持计划 :虽然这不是结束支持的声明,但尽快升级转换版本将减少将来 AWS Secrets Manager 停止支持旧版本 AWS::SecretsManager-2020-07-23 时对您的 CloudFormation 堆栈的影响。

如何升级

要升级到新转换版本,请按照以下步骤操作:

  1. 审查您现有的使用 AWS::SecretsManager-2020-07-23 转换的 CloudFormation 堆栈。
  2. 更新您的 CloudFormation 堆栈模板,在模板顶部的 Transform 键中使用 AWS::SecretsManager-2024-09-16Transform: AWS::SecretsManager-2024-09-16
  3. 如果您之前在 HostedRotationLambda 属性中定义了 Runtime 值,请从模板中删除它,以便在未来的堆栈更新中正确更新旋转 Lambda 函数的运行时。
  4. 根据需要整合新资源属性。我们建议您在升级时尽量减少所有其他模板更改,以降低回滚的可能性。
  5. 更新您的 CloudFormation 堆栈以部署更改。

通过遵循这些步骤,您将使 Secrets Manager 提供的旋转 Lambda函数受益于最新的改进和安全增强。在将更改应用于生产堆栈之前,请务必在非生产环境中进行测试。如果在升级过程中遇到任何问题,请参考

或 以获取帮助。

如果您对本文有反馈,请在下面的 评论 部分提交意见。如果您对本文有疑问,请 。

![Sanjay Varma删除)
Sanjay Varma Datla
Sanjay 是 AWS Secrets Manager的软件开发工程师,具有扎实的软件工程背景,并热衷于安全应用设计,致力于帮助开发者安全管理敏感信息。在工作之外,Sanjay 喜欢远足和探索新的美食。

![Rob删除)
Rob Stevens
Rob 是 AWS Secrets Manager 的系统开发工程师,致力于为 AWS 和其客户构建安全且可扩展的分布式系统。在工作之外,Rob是健身爱好者,还喜欢旅行。

标签:、、

Leave a Reply

Required fields are marked *