检索 Go 应用程序中的 Amazon Secrets Manager 密钥 - Amazon Secrets Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

检索 Go 应用程序中的 Amazon Secrets Manager 密钥

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

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

一旦释放缓存引用,缓存便不会进行强制垃圾回收。缓存实施不包括缓存失效。缓存实现侧重于缓存本身,而不是侧重加强安全性或以安全性为重点。如果您需要额外的安全性(例如加密缓存中的项目),请使用提供的接口和抽象方法。

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

要下载源代码,请参阅 GitHub 上的 Secrets Manager Go 缓存客户端

要设置 Go 开发环境,请参阅 Go Programming Language 网站上的 Golang 入门

所需权限:

  • secretsmanager:DescribeSecret

  • secretsmanager:GetSecretValue

有关更多信息,请参阅权限参考

例 检索密钥

以下代码示例显示了检索密钥的 Lambda 函数。

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) }