如何使用变量中的凭证运行 AWS SDK 版本 2?

Cam*_*rán 10 go amazon-web-services amazon-iam aws-sdk-go

我的问题与另一个问题相同:如何使用变量中的凭证运行 AWS SDK?但我使用的是 SDK 版本 2,它不再使用 Session(如果我理解正确的话)。

因此,我正在创建一个新客户端,并且我将凭据作为变量。我需要使用 IAM 服务。这是函数:

func getIAMClient(ctx context.Context) (*iam.Client, error) {
    cfg, err := config.LoadDefaultConfig(ctx, config.WithRegion("no-region"))
    if err != nil {
        return nil, errors.Wrap(err)
    }

    cfg.HTTPClient, err = getHTTPClient(ctx)
    if err != nil {
        return nil, err
    }

    return iam.NewFromConfig(cfg), nil
}
Run Code Online (Sandbox Code Playgroud)

不同的用户将同时使用该应用程序,因此我不能只使用 ENV 文件,但我无法找到解释如何将这些凭据传递给我的客户的文档页面。任何支持将不胜感激!

Gre*_*ski 8

这可以通过StaticCredentialsProvider来实现,如AWS SDK for Go V2 文档的“静态凭证”部分中所述:

cfg, err := config.LoadDefaultConfig(ctx, config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("AKID", "SECRET_KEY", "TOKEN")))
Run Code Online (Sandbox Code Playgroud)