amazon-web-services - AWS 在 golang 中获取基于角色的凭证

标签 amazon-web-services go amazon-iam

我想对 AWS 请求使用 v4 签名。但是,我需要凭据变量才能使用签名过程。

现在,我可以使用 ID 和 key 成功签署请求(我不想这样做)。

我有一个具有适当权限的 lambda 函数。所以问题是我如何为我的凭据变量使用该权限?

这是我尝试使用 id 和 key 的结果

creds := credentials.NewStaticCredentials(os.Getenv("AWS_ACCESS_KEY_ID"), os.Getenv("AWS_SECRET_ACCESS_KEY"), "")
signer := v4.NewSigner(creds)

然后我查看了 https://docs.aws.amazon.com/sdk-for-go/api/aws/credentials/ 上的文档

其中列出了创建凭据的所有方法

  • func NewChainCredentials(providers []Provider) *Credentials
  • func NewCredentials(provider Provider) *Credentials
  • func NewEnvCredentials() *Credentials
  • func NewSharedCredentials(filename, profile string) *Credentials
  • func NewStaticCredentials(id, secret, token string) *凭证
  • func NewStaticCredentialsFromCreds(creds Value) *Credentials

我的用例可以使用哪种方法?

最佳答案

我终于找到了另一种使用 session 的方法。

config := aws.Config{
    Region: aws.String(os.Getenv("AWS_REGION")),
}
sess := session.Must(session.NewSession(&config))    
signer := v4.NewSigner(sess.Config.Credentials)

关于amazon-web-services - AWS 在 golang 中获取基于角色的凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52711629/

相关文章:

go - 如何使用RWMutex和升级锁

json - 如何在 terraform 中定义基于 AWS IAM 属性的访问控制

rest - 在 Go 语言中调用 REST 路由方法中的对象方法

搜索有关 Go 语言的信息

amazon-web-services - 如何创建基于身份的策略策略允许 iam :CreateRole action

amazon-web-services - 如何在 IAM 角色的信任策略中检查自定义 OpenID 声明?

amazon-web-services - Dockerfile中的AWS凭证

amazon-web-services - 带有 Redis 的 AWS Elastic Beanstalk EC2 - 无法连接 - Django_Redis

amazon-web-services - AWS 信任策略澄清

php - 许多人试图访问日志中的/latest/dynamic/instance-identity/document?安全问题?