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

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

使用 Go Amazon SDK 获取 Secrets Manager 密钥值

在应用程序中,您可以通过调用GetSecretValueBatchGetSecretValue在任何 Amazon SDK 中检索您的密钥。不过,我们建议您通过使用客户端缓存来缓存您的密钥值。缓存密钥可以提高速度并降低成本。

对于 Go 应用程序,请使用 Secrets Manager 基于 Go 的缓存组件或直接使用 GetSecretValueBatchGetSecretValue 调用 SDK。

以下代码示例展示了如何获取 Secrets Manager 密钥值。

所需权限:secretsmanager:GetSecretValue

// Use this code snippet in your app. // If you need more information about configurations or implementing the sample code, visit the AWS docs: // https://aws.github.io/aws-sdk-go-v2/docs/getting-started/ import ( "context" "log" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/service/secretsmanager" ) func main() { secretName := "<<{{MySecretName}}>>" region := "<<{{MyRegionName}}>>" config, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion(region)) if err != nil { log.Fatal(err) } // Create Secrets Manager client svc := secretsmanager.NewFromConfig(config) input := &secretsmanager.GetSecretValueInput{ SecretId: aws.String(secretName), VersionStage: aws.String("AWSCURRENT"), // VersionStage defaults to AWSCURRENT if unspecified } result, err := svc.GetSecretValue(context.TODO(), input) if err != nil { // For a list of exceptions thrown, see // https://<<{{DocsDomain}}>>/secretsmanager/latest/apireference/API_GetSecretValue.html log.Fatal(err.Error()) } // Decrypts secret using the associated KMS key. var secretString string = *result.SecretString // Your code goes here. }