Go AWS SDK を使用して Secrets Manager のシークレット値を取得する - AWS Secrets Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Go AWS SDK を使用して Secrets Manager のシークレット値を取得する

アプリケーションでは、任意の SDK BatchGetSecretValueGetSecretValueまたは を呼び出してシークレットを取得できます。 AWS SDKs ただし、シークレット値はクライアント側のキャッシュを使用してキャッシュすることをお勧めします。シークレットをキャッシュすることで、速度が向上し、コストを削減できます。

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