Amazon web services 如何在Go AWS SDK v2中使用IAM用户凭据

Amazon web services 如何在Go AWS SDK v2中使用IAM用户凭据,amazon-web-services,go,sdk,Amazon Web Services,Go,Sdk,我正在动态获取IAM用户的凭据,我想使用我使用程序生成的凭据创建会话/客户端。不是共享凭据方法。通过代码。我试过了,我知道这不是正确的方法,反正也不行。有人知道如何正确地做到这一点吗 staticCred := aws.NewStaticCredentialsProvider(accessKey, secretKey, "") cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic

我正在动态获取IAM用户的凭据,我想使用我使用程序生成的凭据创建会话/客户端。不是共享凭据方法。通过代码。我试过了,我知道这不是正确的方法,反正也不行。有人知道如何正确地做到这一点吗

    staticCred := aws.NewStaticCredentialsProvider(accessKey, secretKey, "")
    cfg, err := external.LoadDefaultAWSConfig()
    if err != nil {
        panic("unable to load SDK config, " + err.Error())
    }
    cfg.Credentials = staticCred
    cfg.Region = aws.String("ap-southeast-1")
    fmt.Println(cfg)

    svc := ssm.New(cfg)

    req := svc.StartSessionRequest(&ssm.StartSessionInput{
        Target: aws.String(instanceId),
    })
    fmt.Println(req)

    resp, _ := req.Send(context.Background())
    if err != nil {
        log.Fatalf("error sending ssm request : %v", err)
    }
    fmt.Println(resp)

您必须等待一段时间,直到凭证真正起作用。顺便说一句,我正在使用Hashicorp Vault制作凭证。 我正在使用

GetCallerIdentityRequest(&sts.GetCallerIdentityInput{})

检查他们是否还活着。
如果有人对这两个问题都有更好的解决方案,请随时发表意见

您想试试这个-我需要使用程序生成的凭据创建一个会话,而不是使用凭据文件或环境变量。