代码之家  ›  专栏  ›  技术社区  ›  kkesley

AWS在golang中获取基于角色的凭据

  •  1
  • kkesley  · 技术社区  · 6 年前

    我想对AWS请求使用v4签名。但是,我需要credentials变量来使用签名过程。

    现在,我可以使用id和密钥(我不想这样做)成功地对请求进行签名。

    我有一个lambda函数,它有适当的权限。所以问题是我如何使用我的凭证变量的权限?

    以下是我尝试使用id和密钥

    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 回复  |  直到 6 年前
        1
  •  3
  •   kkesley    6 年前

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

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