【发布时间】:2021-03-06 18:40:48
【问题描述】:
我有一个 aws 设置,需要我承担角色并获取相应的凭据才能写入 s3。例如,要使用aws cli 编写,我需要使用--profile readwrite 标志。如果我自己编写启动代码,我会通过sts 担任角色,获取凭据并创建新会话。
但是,有很多应用程序和包依赖于 boto3 的配置,例如内部代码运行如下:
s3 = boto3.resource('s3')
result_s3 = s3.Object(bucket, s3_object_key)
result_s3.put(
Body=value.encode(content_encoding),
ContentEncoding=content_encoding,
ContentType=content_type,
)
从文档中,可以将 boto3 设置为使用(除其他外)AWS_PROFILE env 变量使用默认配置文件,并且它显然“有效”,因为 boto3.Session().profile_name 确实匹配变量 - 但应用程序仍然不会写入到 s3。
正确设置它们的最干净/正确的方法是什么?我试图从 sts 中提取凭据,并将它们写为 AWS_SECRET_TOKEN 等,但这对我不起作用...
【问题讨论】:
标签: amazon-s3 boto3 great-expectations