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

Recupere segredos do AWS Secrets Manager em aplicações Java

Ao recuperar um segredo, você pode usar o componente de cache baseado em Java 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:

  • Um ambiente de desenvolvimento Java 8 ou superior. Consulte Java SE Downloads (Downloads do Java SE) no site da Oracle.

  • O AWS SDK para Java. Consulte AWS SDKs.

Para baixar o código-fonte, consulte Secrets Manager Java-based caching client component (Componente de cliente armazenado em cache baseado em Java do Secrets Manager) no GitHub.

Para adicionar o componente ao seu projeto, inclua a seguinte dependência no arquivo do Maven pom.xml. Para obter mais informações sobre o Maven, consulte o Getting Started Guide (Guia de primeiros passos) no site do projeto Maven do Apache.

<dependency> <groupId>com.amazonaws.secretsmanager</groupId> <artifactId>aws-secretsmanager-caching-java</artifactId> <version>1.0.1</version> </dependency>

exemplo Exemplo: recuperar um segredo

O exemplo de código a seguir mostra uma função Lambda que recupera uma string do segredo. Ele segue a prática recomendada de instanciar o cache fora do manipulador de funções para que ele não continue chamando a API se você chamar a função Lambda novamente.

package com.amazonaws.secretsmanager.caching.examples; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.secretsmanager.caching.SecretCache; public class SampleClass implements RequestHandler<String, String> { private final SecretCache cache = new SecretCache(); @Override public String handleRequest(String secretId, Context context) { final String secret = cache.getSecretString(secretId); // Use the secret, return success; } }