2 回答

TA贡献1799条经验 获得超6个赞
这可以通过静态凭据提供程序来实现,如适用于 Go 的 AWS 开发工具包 V2 文档的“静态凭证”部分所述:
cfg, err := config.LoadDefaultConfig(ctx, config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("AKID", "SECRET_KEY", "TOKEN")))

TA贡献1856条经验 获得超11个赞
要从运行时变量初始化配置,可以使用凭据。NewStaticCredentials提供器
:
staticProvider := credentials.NewStaticCredentialsProvider(
accessKey,
secretKey,
sessionToken,
)
cfg, err := config.LoadDefaultConfig(
context.Background(),
config.WithCredentialsProvider(staticProvider),
)
if err != nil {
return nil, err
}
client := iam.New(cfg)
但是,AWS 开发工具包文档会正确提醒您:
不要在应用程序中嵌入凭据。此方法仅用于测试目的。
这是因为通常使用静态凭据的代码段会传递硬编码字符串,这显然是一个安全问题。在你的情况下,你正在尝试传递运行时变量,所以只要这些变量没有与应用程序源一起签入,你应该没问题。
对于一般用例,即环境变量,您可以使用外部。加载默认AWS配置
,它会自动查找,按以下顺序:
环境变量
共享配置和共享凭据文件。
// import "github.com/aws/aws-sdk-go-v2/aws/external"
cfg, err := external.LoadDefaultAWSConfig(external.WithRegion(region))
if err != nil {
return nil, err
}
client := iam.New(cfg)
引擎盖下的方法调用外部。尝试
从环境变量中获取凭据的新建配置:
AWS_SECRET_ACCESS_KEY
或AWS_SECRET_KEY
AWS_ACCESS_KEY_ID
或AWS_ACCESS_KEY
有关环境变量的读取优先级的更多详细信息,请参阅环境配置
文档。
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报