Recupere segredos do AWS Secrets Manager em aplicações .NET - AWS Secrets Manager

Recupere segredos do AWS Secrets Manager em aplicações .NET

Ao recuperar um segredo, você pode usar o componente de cache baseado em .NET do Secrets Manager para armazená-lo em cache para uso futuro. Recuperar um segredo armazenado em cache é mais rápido do que recuperá-lo do Secrets Manager. Como há um custo para chamar APIs do Secrets Manager, usar um cache pode reduzir seus custos.

A política de caches é a do menos usado recentemente (LRU). Assim, quando o cache precisar descartar um segredo, escolherá o segredo menos usado recentemente. Por padrão, o cache atualiza segredos a cada hora. É possível configurar com que frequência o segredo será atualizado no cache e você poderá se conectar à recuperação do segredo para adicionar mais funcionalidades.

Para usar o componente, é necessário ter o seguinte:

  • .NET Framework 4.6.1 ou superior, ou .NET Standard 2.0 ou superior. Consulte Download .NET (Baixe .NET) no site da Microsoft .NET.

  • O AWS SDK para .NET. Consulte AWS SDKs.

Para baixar o código-fonte, consulte Caching client for .NET (Cliente armazenado em cache para .NET) no GitHub.

Para usar o cache, primeiro instancie-o e, em seguida, recupere o seu segredo usando GetSecretString ou GetSecretBinary. Em recuperações sucessivas, o cache retorna a cópia armazenada em cache do segredo.

Para obter o pacote de Nuget:

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

exemplo Exemplo: recuperar um segredo

O exemplo de código a seguir mostra um método que recupera um segredo nomeado como 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 } } }