Obtenha um segredo do Secrets Manager usando .NET com armazenamento em cache no lado do cliente - AWS Secrets Manager

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Obtenha um segredo do Secrets Manager usando .NET com armazenamento em cache no lado do cliente

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 ligar para o Secrets Manager APIs, usar um cache pode reduzir seus custos. Para ver todas as formas pelas quais você pode recuperar segredos, consulte Obter segredos.

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 qual frequência o segredo será atualizado no cache e você poderá se conectar à recuperação do segredo para adicionar mais funcionalidades.

O cache não obriga a coleta de resíduos depois que as referências de cache são liberadas. A implementação do cache não inclui a invalidação do cache. A implementação do cache é centrada em torno do próprio cache, portanto, não é reforçada ou tem ênfase em segurança. Se você necessitar de mais segurança, como criptografia de itens no cache, use as interfaces e os métodos abstratos fornecidos.

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

  • .NET Framework 4.6.2 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 Cliente de cache para.NET on 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 cache
  • Execute um destes procedimentos:

    • Execute o seguinte comando CLI do .NET em seu diretório de projeto.

      dotnet add package AWSSDK.SecretsManager.Caching --version 1.0.6
    • Adicione a seguinte referência de pacote ao seu arquivo .csproj.

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

Permissões obrigatórias:

  • secretsmanager:DescribeSecret

  • secretsmanager:GetSecretValue

Para obter mais informações, consulte Referência de permissões.

exemplo Recuperar segredos

O exemplo de código a seguir mostra um método que recupera um segredo chamadoMySecret.

using Amazon.SecretsManager.Extensions.Caching; namespace LambdaExample { public class CachingExample { private const string MySecretName ="MySecret"; private SecretsManagerCache cache = new SecretsManagerCache(); public async Task<Response> FunctionHandlerAsync(string input, ILambdaContext context) { string MySecret = await cache.GetSecretString(MySecretName); // Use the secret, return success } } }
exemplo Configuração da duração da atualização do cache de vida útil (TTL)

O exemplo de código a seguir mostra um método que recupera um segredo chamado MySecret e define a duração da atualização do cache TTL como 24 horas.

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