登录
首页 >  Golang >  Go问答

用于 go 的 aws sdk 被禁止,但 aws cli 工作正常

来源:stackoverflow

时间:2024-03-18 10:45:25 204浏览 收藏

AWS SDK for Go 在使用时遇到禁止错误,而 AWS CLI 正常运行。该问题与 SDK 未能从 ~/.aws/credentials 和 ~/.aws/config 中读取默认凭证和区域有关。解决方法是使用 session.NewSessionWithOptions() 创建会话,并设置 SharedConfigState 选项为 session.SharedConfigEnable,以从默认配置文件中读取凭证和区域。

问题内容

我们正在使用 aws cli,它运行得很好,我们可以创建任务定义、创建服务等。当我们想要使用 go 的 sdk 时,问题就出现了。我们总是受到禁止。我们尝试使用一个新的空会话,一个指定区域的会话,假设角色......没有任何效果。有谁知道我们该如何解决这个问题?

我们尝试了很多事情: - 创建新会话时设置新配置:

config: aws.config{
    credentialschainverboseerrors: aws.bool(true),
    credentials: credentials.newenvcredentials(),
    region: aws.string("eu-west-1"),
}
  • 在会话中承担多个角色。newsessionwithoptions:
AssumeRoleTokenProvider: stscreds.StdinTokenProvider

没有任何作用。我们总是受到禁止。


解决方案


默认情况下,cli 使用 ~/.aws/credentials 中的凭证和 ~/.aws/config 中的区域。尝试这个来创建您的会话:

sess := session.Must(session.NewSessionWithOptions(session.Options{
    SharedConfigState: session.SharedConfigEnable,
}))

以上就是《用于 go 的 aws sdk 被禁止,但 aws cli 工作正常》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>