我正在使用boto3会话向s3上传文件。我可以使用~/.aws/credentials将文件上传到s3中,但是如果我尝试创建here所述的会话,我会得到一个禁止的错误。基本上,我不能使用我的凭证上传。代码是:
if env == 'qa':
credentials = getQaConfig(data)
ACCESS_KEY = credentials['AccessKeyId']
SECRET_KEY = credentials['SecretAccessKey']
elif env == 'prod':
credentials = getProdConfig(data)
ACCESS_KEY = credentials['AccessKeyId']
SECRET_KEY = credentials['SecretAccessKey']
elif env == 'dev':
credentials = getDevConfig(data)
ACCESS_KEY = credentials['AccessKeyId']
SECRET_KEY = credentials['SecretAccessKey']
s3 = boto.Session(
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY
).resource('s3')即使没有从环境中获取访问密钥并直接对其进行硬编码,如下所示,我也会得到一个错误。
s3 = boto.Session(
aws_access_key_id='my_Actual_key',
aws_secret_access_key='mey actual_Secret
).resource('s3')发布于 2019-08-07 04:12:24
使用boto3设置S3客户端的实际方法如下:
client = boto3.client(
's3',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
aws_session_token=SESSION_TOKEN,
)或通过会话
session = boto3.Session(
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
aws_session_token=SESSION_TOKEN,
)无法建立会话的一个可能原因可能是您的帐户已为AWS设置了SSO (单点登录),并且您需要解析令牌和剩余凭据
https://stackoverflow.com/questions/47643236
复制相似问题