You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go调用AWS Secrets Manager遇GetSecretValue凭证刷新失败问题求助

问题排查:AWS Secrets Manager凭证刷新失败

错误原因分析

报错信息显示AWS SDK尝试从EC2实例元数据服务(IMDS)获取IAM角色凭证,但请求超时。这说明当前运行环境并非EC2实例,且SDK在默认凭证链中找不到其他有效凭证来源(如环境变量、本地凭证文件),才会 fallback 到IMDS并触发超时错误。

解决方案

1. 通过环境变量指定凭证

运行代码前,设置以下环境变量:

export AWS_ACCESS_KEY_ID="你的Access Key ID"
export AWS_SECRET_ACCESS_KEY="你的Secret Access Key"
export AWS_REGION="eu-central-1"

2. 使用本地AWS凭证文件

在用户主目录下创建~/.aws/credentials文件,内容格式如下:

[default]
aws_access_key_id = 你的Access Key ID
aws_secret_access_key = 你的Secret Access Key

同时确保~/.aws/config文件包含区域配置:

[default]
region = eu-central-1

3. 代码中显式指定凭证(仅本地开发测试用,生产环境不推荐)

修改config.LoadDefaultConfig部分,添加静态凭证提供者:

import "github.com/aws/aws-sdk-go-v2/credentials"

// ...

config, err := config.LoadDefaultConfig(context.TODO(),
    config.WithRegion(region),
    config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(
        "你的Access Key ID",
        "你的Secret Access Key",
        "", // 会话Token,非必要留空
    )),
)

4. 检查IAM权限

确保你的凭证对应的IAM用户/角色拥有secretsmanager:GetSecretValue权限,以及关联KMS密钥的kms:Decrypt权限(如果Secret使用自定义KMS密钥加密)。

内容的提问来源于stack exchange,提问作者Yusuf Gören

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:06:02