本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Go AWS SDK 获取 Secrets Manager 密钥值
在应用程序中,您可以通过在任何 AWS SDK 中调用 GetSecretValue
或 BatchGetSecretValue
来检索密钥。不过,我们建议您通过使用客户端缓存来缓存您的密钥值。缓存密钥可以提高速度并降低成本。
对于 Go 应用程序,请使用 Secrets Manager 基于 Go 的缓存组件或直接使用 GetSecretValue
或 BatchGetSecretValue
调用 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. }