【问题标题】:Amazon S3 sync to local machine failedAmazon S3 同步到本地计算机失败
【发布时间】:2015-05-09 15:42:31
【问题描述】:

我是 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 个部分,剩余 ... 文件

即使我已经按照http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html 中的描述配置了我的访问密钥 ID 和秘密访问密钥

问题可能出在哪里?

【问题讨论】:

  • 您使用的 IAM 用户没有 Bucket 的 ListObjcets 权限。您可以发布 IAM 权限吗?

标签: amazon-web-services amazon-s3


【解决方案1】:

假设您是管理员和/或您已正确设置凭证,您可能使用的是旧的 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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-07
        • 2017-01-03
        • 2014-10-11
        • 2017-01-26
        • 2010-11-18
        • 1970-01-01
        • 2019-07-03
        • 2012-09-19
        相关资源
        最近更新 更多