(AWS S3) 显示文件所有权

(AWS S3) Show File Ownership

我们正在尝试 copy/move 最初从另一个 AWS 账户传输到我们的存储桶的 s3 存储桶文件。

然而,当我们尝试使用 aws s3 cp 命令移动这些文件内容时,我们得到:fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden

我认为问题是有人在没有使用 --acl bucket-owner-full-control 的情况下从另一个帐户复制了这些数据。你知道我们是否有办法通过 CLI 或 boto3 来检查和列出文件所有者吗?也许递归调用存储桶以显示每个文件的所有对象所有者?或者找到不属于我们帐户的任何东西?

我们存储桶的当前权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": [
               "arn:aws:iam::account-user-id:root"
            ]
         },
         "Action": "s3:*",
         "Resource": "arn:aws:s3:::customers"
      },
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": [
               "arn:aws:iam::account-user-id:root"
            ]
         },
         "Action": "s3:*",
         "Resource": "arn:aws:s3:::customers/*"
      }
   ]
}

Amazon S3 中的 recent feature 允许您覆盖所有权设置:

如果您将存储桶配置为禁用 ACL,那么您应该立即重新获得对所有对象的访问权限。