无法在两个账户之间使用 Amazon S3 跨区域复制

2024-02-09

我希望有人可以帮助我处理 Amazon S3 跨区域复制查询。我有两个 Amazon 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/*"
                ]
            }
        }
    }
]

}

我的目标存储桶政策是:-

{
"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/*"
        ]
    }
]

}

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

提前致谢。


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

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

过程创建了一个角色 called 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 and it 成功复制 to Bucket-B.

所以,这个过程似乎运行良好。如果您遇到困难,可以考虑以下一些想法:

  • 确保没有可能应用的政策DENY对着水桶
  • 检查IAM Role已分配给 CRR 并确保其授予如上所示的权限
  • Check 跨区域复制故障排除 - Amazon Simple Storage Service https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-troubleshoot.html
  • 也可以看看跨区域复制状态信息 - Amazon Simple Storage Service https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-status.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在两个账户之间使用 Amazon S3 跨区域复制 的相关文章

随机推荐

  • 文件暂存内容与 HEAD 不同

    当我尝试使用git rm cached我收到以下错误 error the following file has staged content different from both the file and the HEAD 我知道我可以通
  • 如何删除字符串中除所选值之外的所有值[重复]

    这个问题在这里已经有答案了 所以我的代码是value 123456 我想删除除 2 和 5 之外的所有内容 输出将是25例如 即使值发生变化 程序也应该工作value 463312 输出将为 2 我尝试使用remove and replac
  • 更改多窗口应用程序任务栏组中显示的图标

    在 Windows 7 上 应用程序可以控制如何在任务栏上对 Windows 进行分组 Windows 有一些与可执行文件 快捷方式创建方式 程序名称等相关的默认设置 以应用一些默认分组 基于主机的应用程序 例如 Java 的问题在于 许多
  • 禁止访问“/SVN/[repo name]/!svn/me”[重复]

    这个问题在这里已经有答案了 我遇到了一些 SVN 用户的问题 他们收到以下消息 禁止访问 SVN repo name svn me 我在找出其根本原因时遇到了一些问题 当前设置是在 Windows 上使用 Visual SVN 我们为用户使
  • Spark2 + YARN - 准备 AM 容器时出现 nullpointerException

    我正在尝试跑步 pyspark master yarn 火花版本 2 0 0 Hadoop版本 2 7 2 Hadoop 纱线 Web 界面是 成功启动 发生的情况是这样的 16 08 15 10 00 12 DEBUG Client Us
  • MockMvc 返回 null 而不是对象

    我正在开发一个微服务应用程序 我需要测试一个发布请求 到控制器 手动测试可以工作 但测试用例始终返回 null 我在 Stackoverflow 和文档中读过很多类似的问题 但还没有弄清楚我错过了什么 以下是我目前所拥有的以及我为使其发挥作
  • UITextField 将不间断空格转换为空格?

    看来 UITextFields 全部转换不间断空格 http en wikipedia org wiki Non breaking space nbsp U 00A0 至spaces http en wikipedia org wiki S
  • 无法设置 Cloud Firebase 每日支出限额

    我刚刚购买了 Firebase blaze 计划 无限制 但我尝试按照其文档中的建议设置每日配额 https firebase google com docs firestore quotas set spending limits htt
  • Bootstrap 移动菜单不会保持打开状态

    第一个问题 谢谢大家的耐心解答 我寻找了一个类似的问题 但很惊讶我没有找到一个诚实的问题 我也学到了足够的知识来为此创建一个小提琴 你可以在这里看到它 https jsfiddle net jhallwebdev gm6r6mLu 5 HT
  • 将大文本分割成小块的最快方法

    我使用下面的代码来分割字符串 但这需要很多时间 using StreamReader srSegmentData new StreamReader fileNamePath string strSegmentData string line
  • java spring boot 是否提供像 php CodeIgniter 查询生成器一样的查询生成器

    我们正在 Spring Boot 中开发一个应用程序 我们将在运行时创建动态表单并将其发布到我们的应用程序中 以 JSON 格式将表单数据发布到数据库 MySql 中 我们想要创建一个通用的 api 来处理所有动态表单的 CRUD 操作 我
  • 如何将 SSL 从 Tomcat 迁移到 Apache HTTPD?

    我正在将我的单服务器 tomcat 迁移到集群 由 Apache HTTPD 使用 mod proxy 进行反向代理 进行负载平衡和缓存 是否可以将证书和密钥转换为 apache 格式 或者我必须重新颁发整个内容 直接使用提取证书非常容易k
  • 返回字符串第一次出现之前和之后的单词

    我有一个从搜索查询返回的文本正文 我们称之为 body 现在 我想做的是让脚本找到搜索查询 query 的第一次出现 我知道我可以用 strripos 找到第一次出现的情况 一旦找到 我希望脚本在字符串第一次出现之前返回几个单词 以及在第一
  • 如何处理多个构建目标,例如开发、测试、主要?

    我目前正在从 Maven 迁移到 SBT 并且我正在努力理解如何处理多个构建目标 开发 测试 训练 生产等 例如 我有一个persistence xml看起来像这样
  • R markdown:使用for循环生成文本并显示图形/表格

    我认为 R markdown 可以使用 for 循环生成文本部分 请参阅这个帖子 https stackoverflow com questions 36674824 use loop to generate section of text
  • 如何将包含图像信息的 .xml 文件转换为 jpeg 或 png

    我的任务是为人体动作检测算法准备数据 总而言之 我收到了一些图像 xml 文件 使用 Kinect 传感器拍摄的 我想将其转换为 jpeg 或 png 以便从算法中读取 我想我必须使用 OpenCV 我确信这是一个初学者的问题 但我在互联网
  • 如何使“git log”仅显示提交日期,而不显示其他内容

    我只是想快速浏览一下项目的历史git log show only提交日期 没有其他 我们怎样才能最好地做到这一点 Update 事实证明我实际上是在要求author日期 显示的是git log 为了看到提交者日期也可以不同 运行git lo
  • python-polars使用字典按列值将数据帧分割成许多dfs

    我想使用字典通过唯一列值将单个 df 拆分为多个 df 下面的代码展示了如何使用 pandas 来完成此操作 我怎样才能在极地中执行以下操作 import pandas as pd Favorite color of 10 people d
  • 如何在 Subversion 服务器中搜索文件?

    有没有办法在颠覆存储库中搜索文件 类似于 Unix 的东西find命令 用它我可以找到存储库中文件的位置 我知道有svn list 但这给了我一个目录中所有文件的列表 我想找到文件所在的目录 您可以在服务器上使用以下命令和 grep svn
  • 无法在两个账户之间使用 Amazon S3 跨区域复制

    我希望有人可以帮助我处理 Amazon S3 跨区域复制查询 我有两个 Amazon AWS 账户 每个账户在不同区域都有一个存储桶 我想将数据从一个存储桶复制到另一个存储桶 据我了解 这应该是一个简单的创建过程 然而 我真的很挣扎 我不知