将凭证从变量传递到 AWS SDK 版本 2
此查询呼应了之前有关使用来自变量的凭证的 AWS SDK 的问题。但是,在本例中,使用的是 SDK 版本 2,它消除了会话功能。
要使用从变量获取的凭据建立新客户端以访问 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
}
由于多个用户可能同时使用该应用程序,因此利用 ENV 文件是不切实际的。但是,解释如何将这些凭据传递给客户端的文档可能不容易获得。
解决方案:静态凭据提供程序
要解决此问题,可以使用 StaticCredentialsProvider使用,如 AWS SDK for Go V2 文档的“静态凭证”部分所述:
cfg, err := config.LoadDefaultConfig(ctx, config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("AKID", "SECRET_KEY", "TOKEN")))
通过合并此修改,凭证可以从变量传递到 SDK,从而能够检索和使用 IAM 服务。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3