检索 .NET 应用程序中的 AWS Secrets Manager 密钥 - AWS Secrets Manager

检索 .NET 应用程序中的 AWS Secrets Manager 密钥

在检索密钥时,您可以使用 Secrets Manager 基于 .NET 的缓存组件来缓存密钥,以备将来使用。检索已缓存密钥比从 Secrets Manager 中检索密钥的速度要快。由于调用 Secrets Manager API 会产生费用,因此使用缓存可以降低成本。

缓存策略为“最近最少使用 (LRU)”,因此当缓存必须丢弃某个密钥时,它会丢弃最近使用最少的密钥。原定设置下,缓存会每小时刷新一次秘密。您可以配置在缓存中刷新密钥的频率,也可以挂钩到密钥检索中以添加更多功能。

要使用该组件,您必须满足以下条件:

  • .NET Framework 4.6.1 或更高版本,或者 .NET Standard 2.0 或更高版本。请参阅 Microsoft .NET 网站上的下载 .NET

  • 适用于 .NET 的 AWS 开发工具包。请参阅 AWS 软件开发工具包

要下载源代码,请参阅 GitHub 上的适用于 .NET 的缓存客户端

要使用缓存,请先对其进行实例化,然后使用 GetSecretStringGetSecretBinary 检索密钥。在连续检索时,缓存将返回密钥的已缓存副本。

要从 Nuget 获取软件包:

<ItemGroup> <PackageReference Include="AWSSDK.SecretsManager.Caching" Version="1.0.3" /> </ItemGroup>

例 示例:检索密钥

下面的代码示例演示了检索名为 MySecret 的密钥的方法。

using System; using Amazon.SecretsManager.Extensions.Caching.SecretsManagerCache; namespace LambdaExample { public class CachingExample { private SecretsManagerCache cache = new SecretsManagerCache(); private const String MySecretName ="MySecret"; public async Task<Response> FunctionHandlerAsync(String input, ILambdaContext context) { String MySecret = await cache.GetSecretString(MySecretName); // Use the secret, return success } } }