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á.
Obter um segredo do Secrets Manager usando Go com armazenamento em cache no lado do cliente
Ao recuperar um segredo, você pode usar o componente de cache baseado em Go 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. 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:
-
AWS SDK para Go. Consulte AWS SDKs.
Para baixar o código-fonte, consulte Secrets Manager Go caching client
Para configurar um ambiente de desenvolvimento Go, consulte Golang Getting Started
Permissões obrigatórias:
secretsmanager:DescribeSecret
secretsmanager:GetSecretValue
Para ter mais informações, consulte Referência de permissões.
Referência
exemplo Recuperar segredos
O exemplo de código a seguir mostra uma função Lambda que recupera um segredo.
package main import ( "github.com/aws/aws-lambda-go/lambda" "github.com/aws/aws-secretsmanager-caching-go/secretcache" ) var ( secretCache, _ = secretcache.New() ) func HandleRequest(secretId string) string { result, _ := secretCache.GetSecretString(secretId)
// Use the secret, return success
} func main() { lambda. Start( HandleRequest) }