AWS S3服务器端加密访问被拒绝错误

时间:2017-12-05 13:13:00

标签: amazon-web-services encryption amazon-s3

  • 我有A和B AWS账户,我正在将S3存储桶从A账户SoruceS3Bucket同步到B账户DestinationS3Bucket。
  • 以下是适用于目标存储区的存储桶策略,它允许源AWS账户将内容与DestinationS3Bucket同步。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PermissionsToAAccount",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::XXXXXXX:root"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::DestinationS3Bucket",
                "arn:aws:s3:::DestinationS3Bucket/*"
            ]
        }
    ]
}
  • 这里的同步工作很长时间以来它仍然有效,但是从最近几天起,使用服务器端加密访问被拒绝
  • 错误无法访问DestinationS3Bucket文件。
  • 我已经验证SourceS3Bucket和DestinationS3Bucket上没有加密(默认加密,无),我使用Source AWS账户密钥和访问密钥来同步内容。提前致谢。

3 个答案:

答案 0 :(得分:10)

当您使用帐户A的凭据将帐户A中的一个S3存储桶中的文件复制到帐户B中的存储桶时,目标存储桶中文件的所有者将是帐户A.(帐户A是创建文件的主体在帐户B的桶中。)

在从源到目标存储区的文件复制期间,添加--acl bucket-owner-full-control选项,以便帐户B可以控制文件。否则,您可能在帐户B的存储桶中有文件B无法访问或控制的文件。

另一种选择是使用帐户B的凭据从源复制到目标存储桶。这样,复制文件的所有者就是帐户B.

答案 1 :(得分:1)

您应该以这种方式一起替换文件和元数据-

aws s3 cp s3://yourbucket s3://yourbucket --recursive --acl bucket-owner-full-control --metadata-directive REPLACE

答案 2 :(得分:0)

John Hanely提供的解决方案有效,但这不会立即改变所有权。您需要执行单独的命令来更改它

第一步:

aws s3 cp s3://yourbucket s3://yourbucket --recursive --acl bucket-owner-full-control

第二步:

aws s3 cp s3://yourbucket s3://yourbucket --recursive --metadata-directive REPLACE

注意--meta-directive REPLACE