Python boto3会话不工作
我正在使用Python boto3会话不工作,python,python-3.x,amazon-s3,boto3,Python,Python 3.x,Amazon S3,Boto3,我正在使用boto3会话将文件上载到s3。我可以使用~/.aws/credentials将文件上载到s3中,但是如果我尝试创建一个如上所述的会话,我会得到一个禁止的错误。基本上,我无法使用我的凭据上传。代码是: if env == 'qa': credentials = getQaConfig(data) ACCESS_KEY = credentials['AccessKeyId'] SECRET_KEY = credenti
boto3
会话将文件上载到s3
。我可以使用~/.aws/credentials
将文件上载到s3中,但是如果我尝试创建一个如上所述的会话,我会得到一个禁止的错误。基本上,我无法使用我的凭据上传。代码是:
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')
使用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(单点登录),并且您需要解析令牌以及剩余的凭据,以公布实际错误。