【发布时间】:2019-06-25 04:32:05
【问题描述】:
尝试将文件从 S3 存储桶复制到我的本地计算机:
aws s3 cp s3://my-bucket-name/audio-0b7ea3d0-13ab-4c7c-ac66-1bec2e572c14.wav ./
fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden
我已经确认的事情:
- 我正在使用版本
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-75-generic botocore/1.4.70 - S3 对象键是正确的。我直接从 S3 Web 界面复制了它。
- AWS CLI 配置有有效凭证。我生成了一个新的密钥/秘密对。在重新配置 aws cli 之前,我删除了 ~/.aws 文件夹。 IAM 网络界面在线确认 arn 指定的用户实际上是通过 CLI 使用 S3。
- 根据this SO post,IAM 用户被授予 S3 完全访问托管策略。我删除了所有这些用户的策略,然后只添加了名为 AdministratorAccess 的 AWS 托管策略,其中包括“S3、完全访问权限、所有资源”。 是否有其他方式通过 CLI 授予访问权限?我不相信。
存储桶策略旨在授予广泛的开放访问权限:
{
"Sid": "AdminAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::my-bucket-name",
"arn:aws:s3:::my-bucket-name/*"
]
}
我是如何上传这个对象的?
我使用 AWS Signature v4 签名上传策略从客户端浏览器中的 Web 应用程序将该对象直接上传到 AWS。
【问题讨论】:
-
您的存储桶在哪个区域?在 ARN 中添加区域详细信息怎么样?
-
你能发布调试输出
aws --debug s3 cp s3://my-bucket-name/audio-0b7ea3d0-13ab-4c7c-ac66-1bec2e572c14.wav ./ -
@Ravi 使用
--debug标志运行并没有产生超出原始 403 的任何内容
标签: amazon-web-services amazon-s3 aws-cli