【问题标题】:S3 cp AccessDenied from AWS cli with root keys来自 AWS cli 的 S3 cp AccessDenied 带有根密钥
【发布时间】: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


【解决方案1】:

我想我会添加一个非常相似的问题,我可以在其中列出存储桶但无法写入返回错误的给定存储桶

调用时发生错误 (AccessDenied) CreateMultipartUpload 操作:拒绝访问

如果存储桶使用服务器端加密,您需要添加--sse 标志才能写入此存储桶。

https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html

【讨论】:

  • 谢谢,原来是我的问题。
  • 你的意思是aws s3 cp --sse localfolder s3:///bucketname/?在我的情况下返回error: argument --sse: Invalid choice
  • --sse 应在 (aws s3 cp localfolder s3:///bucketname/ --sse) 之后指定
【解决方案2】:

根访问密钥和秘密密钥具有与 AWS 交互的完全控制权和完全权限。请尝试再次运行aws configure 以重新检查设置并重试。

PS:强烈不建议使用 root 访问密钥 - 请考虑创建一个 IAM(它具有管理员权限,如 root )并使用它们。

【讨论】:

  • 即使我再次aws configure,它仍然不起作用。
  • 更新:我使用的是非 root 凭据,请仔细检查。 @Naveen Vijay 是正确的,您应该可以使用 root 用户执行任何操作,但要小心,对于敏感应用,您应该使用 IAM。
【解决方案3】:

如果您设置了环境变量 AWS_SECRET_ACCESS_KEYAWS_ACCESS_KEY_IDAWS_REGION,AWS CLI 会为它们提供更高的优先级,而不是您使用 aws configure 指定的凭证。

所以,就我而言,bash 命令unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY 解决了这个问题。

【讨论】:

  • 谢谢。我最终从我的 .zshrc 中对其进行了评论。不要忘记,一旦您更改了 .bashrc 或 .zshrc,您需要重新启动 shell,或者 source ~/.zshrc 以将更改应用于您的会话。
  • 这尤其适用于 CI/CD 工具中的 ENV
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 2022-08-16
相关资源
最近更新 更多