gpt4 book ai didi

amazon-web-services - AWS Secrets Manager 中的 Azure Key Vault 引用等效项是什么?

转载 作者:行者123 更新时间:2023-12-05 02:26:56 25 4
gpt4 key购买 nike

Azure Key Vault 和 Azure Functions 之间有一个简单的集成,可以自动获取最新版本的 secret 并将其加载为环境变量:

@Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret)

此条目需要添加到应用程序设置中。 Azure 还将在轮换 24 小时内刷新缓存的 key 。

AWS 是否为 .NET 中的 Secrets Manager 客户端提供类似的集成和缓存功能?

最佳答案

不,遗憾的是,AWS Secrets Manager 没有 Key Vault references 的等效项。即从 Secrets Manager 加载 secret ,以便它们可用作 Lambda 环境变量。这适用于所有 Lambda 函数运行时,而不仅仅是 .NET。

<小时/>

您必须使用 Secrets Manager SDK,最好从应用程序设置中读取 key 名称,然后在启动时加载 key 值。

或者,如果您需要类似的替换,您可以在构建管道期间调用以获取 secret 值,并修改应用程序设置以包含 secret 值。

这需要在缓存方面做出妥协,除非您随后创建一个每 24 小时运行一次的特定预定管道,以获取最新的 secret 值并更新您环境的应用程序设置。

但是,对于前一个首选选项,您可以利用官方AWSSDK.SecretsManager.Caching用于 secret 缓存的 Nuget 包。

(可配置的)缓存项刷新时间/TTL 默认设置为 1 小时。

根据您的用例,创建 SecretCacheConfiguration 的实例class 并将 CacheItemTTL 属性设置为 86400000(24 小时,以毫秒为单位)。然后,创建您的 SecretsManagerCache ,传入您的 Secrets Manager 客户端和缓存配置。

这会将缓存配置为 24 小时的自动刷新间隔,从而产生类似的行为。

<小时/>

对于 Lambda 函数,请记住缓存将在冷启动调用时被清除,最好创建一个 SecretsManagerCache 的单例实例,该实例在 Lambda 容器的生命周期内保持事件状态.

如果您要加载超过 3-5 个 secret ,我建议您查看此 AWS Prescriptive Guidance pattern 引用的层代码或者查看 Square 的 Github 存储库 Lambda Secrets Prefetch层。

两者都是缓存 secret 值的 Lambda 层,这可能会减少 Lambda 的整体持续时间。方形详细信息在其 blog post 中持续时间减少约 20-25% ,其中包含更详细的信息。一如既往,YMMV。

两者之间的主要区别在于 AWS 层将 secret 存储在内存中,而不是本地存储在 /tmp 目录中;从功能上来说,两者几乎相同。

<小时/>

查看以下官方链接以获取更深入的信息:

  1. AWS Secrets Manager 用户指南:Retrieve AWS Secrets Manager secrets in .NET applications
  2. AWS 安全博客:How to use AWS Secrets Manager client-side caching in .NET

关于amazon-web-services - AWS Secrets Manager 中的 Azure Key Vault 引用等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73517239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com