由于 InvalidAccessKey 无法获取 s3 存储桶 403,但可以从 CLI 运行
Can't get s3 bucket 403 due to InvalidAccessKey but works from CLI
我正在尝试通过 boto 访问 S3 存储桶并收到 403。此代码:
from boto.s3.connection import S3Connection
conn = S3Connection()
bucket = conn.get_bucket('my-bucket')
files = bucket.list()
在 get_bucket 行返回 403(我已经删除了值)
<Error>
<Code>InvalidAccessKeyId</Code>
<Message>The AWS Access Key Id you
provided does not exist in our records.</Message>
<AWSAccessKeyId>*** </AWSAccessKeyId>
<RequestId>***</RequestId>
<HostId>***</HostId>
</Error>
我看到过像这样设置 validate=False 的答案 但是我在尝试列出存储桶时在下一行遇到了同样的错误。
如果我 运行 CLI 命令
aws s3api list-objects --bucket my-bucket
我得到了一份内容清单。
如果我运行
aws configure list --profile default
配置包含 完全相同的 访问 ID,它在 XML 的错误消息中。不存在其他配置文件,所以我想知道它如何使用来自 CLI 而不是 boto 的完全相同的密钥。
有什么想法吗?
我们正在使用联合访问,AWS 论坛上的一条评论帮助了我。
如果您使用带有 boto 的联合用户,您还需要传入安全令牌。默认构造函数S3Connection()不传这个,需要自己动手:
conn = S3Connection(aws_access_key_id='YOURKEYID',
aws_secret_access_key='YOURSECRETKEY', security_token='YOURTOKEN')
然后就可以了。
我正在尝试通过 boto 访问 S3 存储桶并收到 403。此代码:
from boto.s3.connection import S3Connection
conn = S3Connection()
bucket = conn.get_bucket('my-bucket')
files = bucket.list()
在 get_bucket 行返回 403(我已经删除了值)
<Error>
<Code>InvalidAccessKeyId</Code>
<Message>The AWS Access Key Id you
provided does not exist in our records.</Message>
<AWSAccessKeyId>*** </AWSAccessKeyId>
<RequestId>***</RequestId>
<HostId>***</HostId>
</Error>
我看到过像这样设置 validate=False 的答案
如果我 运行 CLI 命令
aws s3api list-objects --bucket my-bucket
我得到了一份内容清单。
如果我运行
aws configure list --profile default
配置包含 完全相同的 访问 ID,它在 XML 的错误消息中。不存在其他配置文件,所以我想知道它如何使用来自 CLI 而不是 boto 的完全相同的密钥。
有什么想法吗?
我们正在使用联合访问,AWS 论坛上的一条评论帮助了我。
如果您使用带有 boto 的联合用户,您还需要传入安全令牌。默认构造函数S3Connection()不传这个,需要自己动手:
conn = S3Connection(aws_access_key_id='YOURKEYID',
aws_secret_access_key='YOURSECRETKEY', security_token='YOURTOKEN')
然后就可以了。