无法在两个帐户之间进行Amazon S3跨区域复制

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (35)

我希望有人可以帮我解决Amazon S3 Cross Region Replication问题。我有两个亚马逊AWS账户,每个账户都有一个不同区域的存储桶。我想将数据从一个桶复制到另一个桶,根据我的理解,这应该是一个简单的创建过程。但是,我真的很挣扎,我不知道我做错了什么。我在网上遵循了很多说明,包括浏览各种AWS教程,看到很多例子,但是我无法复制数据。

我已在两个存储桶上启用版本控制,并且没有数据被加密。但是我的源存储桶中有一个策略允许通过引用条件访问源数据,这样数据(本例中的图像)只能通过特定域访问。这一切都很好,我怀疑这可能是限制目标存储桶的访问。

我已按照在线说明设置复制规则和IAM策略。

所以,我的源码存储策略是: -

{
"Version": "2012-10-17",
"Id": "http referrer policy",
"Statement": [
    {
        "Sid": "Allow get requests originated from list",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::SOURCEBUCKET/*",
        "Condition": {
            "StringLike": {
                "aws:Referer": [
                    "http://www.domain1.com/*",
                    "https://www.domain2.com/*",
                    "http://domain3.com/*"
                ]
            }
        }
    }
]

}

我的目标bucket政策是: -

{
"Version": "2008-10-17",
"Id": "S3-Console-Replication-Policy",
"Statement": [
    {
        "Sid": "S3ReplicationPolicyStmt1",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::MYSOURCEACCIDNUMBER:root"
        },
        "Action": [
            "s3:List*",
            "s3:GetBucketVersioning",
            "s3:PutBucketVersioning",
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
        ],
        "Resource": [
            "arn:aws:s3:::DESTINATIONBUCKET",
            "arn:aws:s3:::DESTINATIONBUCKET/*"
        ]
    }
]

}

任何人都可以告诉我如何(如果需要)添加到源存储桶策略,以启用从目标存储桶的访问?我非常有信心问题就在这里。

提前致谢。

提问于
用户回答回答于

为了测试这种情况,我做了以下事情:

  • 创建Bucket-AAccount-A进行版本
  • 创建Bucket-BAccount-B进行版本
  • 配置跨区域复制Bucket-A,选择“创建新角色”(见下文)
  • 添加了UI中提供的目标存储桶策略(与您的匹配,以上) Bucket-B

该过程创建了一个名为s3crr_role_for_bucket-a_to_bucket-b,包含:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:Get*",
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::bucket-a",
                "arn:aws:s3:::bucket-a/*"
            ]
        },
        {
            "Action": [
                "s3:ReplicateObject",
                "s3:ReplicateDelete",
                "s3:ReplicateTags",
                "s3:GetObjectVersionTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::bucket-b/*"
        }
    ]
}

然后我上传了一个文件Bucket-A成功复制Bucket-B

所以,这个过程似乎工作正常。如果您遇到困难,可以考虑一下:

所属标签

可能回答问题的人

  • 天使的炫翼

    15 粉丝531 提问35 回答
  • 富有想象力的人

    2 粉丝0 提问26 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    48 粉丝0 提问26 回答
  • 发条丶魔灵1

    6 粉丝525 提问25 回答

扫码关注云+社区

领取腾讯云代金券