【问题标题】:Access permission denied for the objects created by someone else in my AWS S3 bucket其他人在我的 AWS S3 存储桶中创建的对象的访问权限被拒绝
【发布时间】:2019-09-19 12:43:13
【问题描述】:

我们有一个将文件写入 Amazon S3 存储桶的应用程序。我无法将文件下载或复制到不同的存储桶。我收到access denied 错误。文件的所有者是其他人,但存储桶归我们所有。该人不可访问,也不存在于组织中。如何访问文件并更改访问权限或更改文件的所有者?

我尝试将对象从源存储桶复制到目标存储桶,但 Error 403

这是存储桶策略:

{
    "Version": "2012-10-17",
    "Id": "abcd",
    "Statement": [
        {
            "Sid": "abcd",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012:user/xxx"
                ]
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::xyz/*",
                "arn:aws:s3:::xyz"
            ]
        }
    ]
} 

预期:我想将这些文件移动到不同的存储桶或下载这些文件。它给出了错误Access denied 403

【问题讨论】:

  • 您是否有权更改 IAM 政策?您可能需要联系 AWS 支持。
  • 这通常是在 AWS 账户之间复制对象的副作用。对象是从不同的帐户复制的吗?您是否有权访问该其他帐户?
  • @Juned,我可以访问我的 aws 帐户的 IAM 政策
  • @John,我无权访问任何其他 AWS 账户,也无权访问创建对象的那个人。
  • 在这种情况下,您似乎需要联系 AWS Support。

标签: amazon-web-services amazon-s3


【解决方案1】:

文件的上传者需要grant full control over the objects给桶的拥有者。

您如何执行此操作取决于您用于上传文件的工具或 SDK。例如,如果您使用的是awscli,那么您可以将--acl bucket-owner-full-control 附加到aws s3 cp 命令中。

作为 S3 存储桶所有者,您可以通过指定适当的 S3 存储桶策略require uploaders to give you full control

请注意,授予存储桶所有者完全控制权并不会使存储桶所有者成为对象的所有者。它们仍归上传者所有。但是,如果存储桶拥有者拥有完全控制权并想要拥有所有权,那么存储桶拥有者可以简单地将每个文件复制到自身之上,这将转移所有权。

【讨论】:

  • 谢谢。由于我需要完全控制,如果我将对象复制到自身,文件是否会损坏..etc,因为文件属于生产环境
  • 如果您拥有文件的所有权,您仍然可以完全控制。我不确定您对损坏文件的问题是什么,但是如果您在 S3 中将文件复制到自身之上,它就不会损坏。当然,在危及任何生产系统之前,您应该在非生产系统上测试这些过程。在从互联网接收建议时,这应该是给定的。
  • 非常感谢。我试图将文件更新为自身。它给出了拒绝访问错误。我试图为该文件授予 ACL 权限,但我收到拒绝访问错误。我不确定,我还能尝试访问存储桶中的文件。任何更多建议都会有所帮助
猜你喜欢
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 2021-02-21
  • 1970-01-01
  • 2017-07-04
  • 2021-02-25
相关资源
最近更新 更多