S3下载适用于控制台,但不适用于命令行

时间:2016-11-04 11:17:34

标签: amazon-web-services amazon-s3

任何人都可以解释这种行为:

当我尝试从S3下载文件时,出现以下错误:

An error occurred (403) when calling the HeadObject operation: Forbidden.

使用的命令行:

aws s3 cp s3://bucket/raw_logs/my_file.log .

但是,当我使用S3控制台网站时,我可以毫无问题地下载该文件。

命令行使用的访问密钥是正确的。我验证了这一点,并通过命令行进行其他AWS操作正常。访问密钥与我在AWS控制台中使用的用户帐户绑定。

2 个答案:

答案 0 :(得分:1)

因此,我假设您确定用户的IAM政策,并且该文件存在于您的存储桶中

如果您在配置中设置了默认区域但尚未在此区域中创建存储区(是s3 buckets are created in a region),则无法找到它。确保将区域标志添加到CLI

aws s3 cp s3://bucket/raw_logs/my_file.log . --region <region of the bucket>

其他说明:

  • 确保升级到最新版本
  • 可能是因为系统时钟不同步,如果你没有指示任何同步参数,它可能没问题,但我不知道内部和一些命令CLI正在查看系统时钟与S3进行比较,如果你不同步,可能会导致问题

答案 1 :(得分:0)

由于我的帐户启用了双重身份验证,因此我遇到了类似的问题。在此处查看如何为AWS CLI配置2FA:https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/