Amazon S3同步到本地计算机失败

时间:2015-03-08 11:23:57

标签: amazon-web-services amazon-s3

我是AWS的新手,我正在尝试使用aws s3 sync从我的S3存储桶中将一堆文件下载到我的本地计算机,如http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html中所述。 我使用了以下命令:

aws s3 sync s3://outputbucket/files/ .

我收到以下错误: 调用ListObjects操作时发生客户端错误(AccessDenied):拒绝访问 已完成1个部分,其中包含......文件

即使我已配置了访问密钥ID&秘密访问密钥,如http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html

中所述

问题可能在哪里?

3 个答案:

答案 0 :(得分:6)

假设您是管理员和/或您已正确设置凭据,则可能是您使用旧的AWS CLI。

我在使用带有Ubuntu 14.04的打包AWS CLI时遇到了这个问题。

对我有用的解决方案是删除使用Ubuntu预先打包的AWS CLI,然后从python-pip下载它:

sudo apt-get remove awscli
sudo apt-get install python-pip
sudo pip install awscli

非常感谢这个链接: https://forums.aws.amazon.com/thread.jspa?threadID=173124

答案 1 :(得分:1)

要执行文件同步,需要两组权限:

  • ListObjects获取要复制的文件列表
  • GetObjects访问对象

如果您使用的是AWS账户附带的“root”用户,您将自动拥有这些权限。

如果您使用的是在身份和访问管理(IAM)中创建的用户,则需要将这些权限分配给用户。最简单的方法是分配AmazonS3FullAccess策略,该策略允许访问所有S3功能。

答案 2 :(得分:1)

在我的情况下,~/.aws/config中存储的凭据被~/.zshrc中的竞争配置文件破坏了。运行env | grep AWS进行检查。