【发布时间】:2020-09-13 01:04:24
【问题描述】:
下面的代码在s3 = boto3.client('s3')行中失败,返回错误botocore.exceptions.InvalidConfigError: The source profile "default" must have credentials.
def connect_s3_boto3():
try:
os.environ["AWS_PROFILE"] = "a"
s3 = boto3.client('s3')
return s3
except:
raise
我的文件vim ~/.aws/credentials 看起来像:
[default]
aws_access_key_id = XXXXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
我的文件vim ~/.aws/config 看起来像:
[default]
region = eu-west-1
output = json
[profile b]
region=eu-west-1
role_arn=arn:aws:iam::XX
source_profile=default
[profile a]
region=eu-west-1
role_arn=arn:aws:iam::YY
source_profile=default
[profile d]
region=eu-west-1
role_arn=arn:aws:iam::EE
source_profile=default
如果我运行aws-vault exec --no-session --debug a
它返回:
aws-vault: error: exec: Failed to get credentials for a9e: InvalidClientTokenId: The security token included in the request is invalid.
status code: 403, request id: 7087ea72-32c5-4b0a-a20e-fd2da9c3c747
【问题讨论】:
-
删除以下行会发生什么情况:os.environ["AWS_PROFILE"] = "a"?
-
AWS CLI 是否在同一系统中工作?
-
~/.aws/credentials中不应该也有匹配的[a]吗? -
@JamesShapiro 它返回 botocore.exceptions.NoCredentialsError: Unable to locate credentials
-
让我们从简单的开始。您可以将 AWS CLI 与
[default]配置文件一起使用吗?例如:aws s3 ls(AWS_PROFILE环境变量中没有任何内容)。
标签: python python-3.x amazon-web-services docker boto3