【发布时间】:2015-07-27 17:39:45
【问题描述】:
我在 EC2 实例上安装了 AWS cli,并通过运行 aws configure 并为其提供了我的 AWSAccessKeyId 和 AWSSecretKey 密钥对其进行了配置,因此如果我运行命令 aws s3 ls 它会返回我的 S3 存储桶的名称(调用它是“mybucket”)。
但是,如果我然后尝试 aws s3 cp localfolder/ s3://mybucket/ --recursive,我会收到一个看起来像
A client error (AccessDenied) occurred when calling the CreateMultipartUpload operation: Anonymous users cannot initiate multipart uploads. Please authenticate.
我认为通过运行 aws configure 并为其提供我的根密钥,我实际上是在为 aws cli 提供验证所需的一切?关于复制到 S3 存储桶而不是列出它们,我是否遗漏了什么?
【问题讨论】:
-
您的 IAM 用户/角色需要被分配一个允许其执行
CreateMultipartUpload操作的策略 - 您可以通过 IAM 模拟策略以检查其是否有效。 -
root 访问密钥和密钥应该拥有所有权限。尝试再次运行 aws configure -
-
谢谢@Naveen 根据您的评论,我尝试使用另一台计算机上的一组不同的根密钥,它确实有效。我现在对为什么一组根密钥起作用而另一组不起作用感到困惑。但至少你的建议解决了我的问题。
-
我已经添加了相同的答案以造福社区
标签: amazon-web-services amazon-ec2 amazon-s3