GetSecretValue,获取身份:获取凭据:刷新缓存凭据失败

问题描述 投票:0回答:1

我有一个像这样的基本 Go 代码。给我错误:

2024/02/21 21:49:15 operation error Secrets Manager: GetSecretValue,
  get identity: get credentials: failed to refresh cached credentials,
  no EC2 IMDS role found, operation error ec2imds: GetMetadata,
  request canceled, context deadline exceeded

我已使用亚马逊秘密管理器进行 aws-rds,并且我确信凭证是正确的

secretName := "key"
region := "eu-central-1"

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

result, err := svc.GetSecretValue(context.TODO(), input)
if err != nil {
    // For a list of exceptions thrown, see
    // https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
    log.Fatal(err.Error())
}

// Decrypts secret using the associated KMS key.
var secretMap map[string]string
json.Unmarshal([]byte(*result.SecretString), &secretMap)

return secretMap
amazon-web-services go amazon-rds aws-secrets-manager
1个回答
0
投票

问题是您没有在本地计算机/环境上保存 AWS 凭证。为此,请按照以下任一步骤操作:https://wellarchitectedlabs.com/common/documentation/aws_credentials/,然后只需再次运行代码即可。我建议使用 CLI 选项,因为这对我来说很容易。

© www.soinside.com 2019 - 2024. All rights reserved.