对我的AWS S3存储桶中其他人创建的对象的访问权限被拒绝

时间:2019-09-18 22:54:40

标签: amazon-web-services amazon-s3

我们有一个将文件写入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

1 个答案:

答案 0 :(得分:2)

文件的上传者需要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

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