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

使用Go AWS SDK v2通过SSO认证调用STS接口遇无效令牌错误

解决AWS SDK for Go v2 SSO认证无效令牌问题

以下是几个排查和解决的方向:

  • 清理并重新获取SSO令牌缓存
    本地SSO令牌缓存可能已过期或损坏,手动删除缓存目录后重新登录:

    • Linux/macOS:删除~/.aws/sso/cache下的所有文件
    • Windows:删除%USERPROFILE%\.aws\sso\cache下的所有文件
      执行aws sso login --profile your-profile-name重新登录后,再运行代码。
  • 显式指定区域配置
    STS服务对区域有要求,确保代码中加载配置时指定的区域与SSO配置的区域一致,修改配置加载代码:

    cfg, err := config.LoadDefaultConfig(
        ctx,
        config.WithSharedConfigProfile("same-profle-name-as-above"),
        config.WithRegion("your-sso-region"), // 替换为你的SSO区域,比如us-west-2
    )
    
  • 验证凭证来源类型
    打印配置中的凭证信息,确认加载的是SSO凭证而非静态Access Key。可以添加代码手动获取凭证并检查:

    creds, err := cfg.Credentials.Retrieve(ctx)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("Credential Type: %s\n", creds.Source)
    

    如果输出不是SSO,说明配置加载错误,检查~/.aws/config中的SSO配置项是否正确。

  • 升级AWS SDK for Go v2到最新版本
    旧版本SDK可能存在SSO认证的已知问题,执行以下命令升级依赖:

    go get github.com/aws/aws-sdk-go-v2/aws@latest
    go get github.com/aws/aws-sdk-go-v2/config@latest
    go get github.com/aws/aws-sdk-go-v2/service/sts@latest
    

    升级后重新构建并运行代码。

  • 检查本地AWS配置文件
    打开~/.aws/config(Linux/macOS)或%USERPROFILE%\.aws\config(Windows),确认对应profile的配置项:

    • sso_start_url、sso_region、sso_account_id、sso_role_name是否与命令行使用的完全一致
    • 确保没有其他冲突的配置项(比如同时配置了aws_access_key_id和SSO参数)

内容的提问来源于stack exchange,提问作者Rob Wilkerson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:05:18