AWS在Golang中获取基于角色的凭证

时间:2018-10-09 00:07:44

标签: amazon-web-services go amazon-iam

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

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

我有一个具有适当权限的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) *Credentials
  • func NewStaticCredentialsFromCreds(creds Value) *Credentials

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

1 个答案:

答案 0 :(得分:0)

我终于找到了使用会话的另一种方式。

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