2

AWS 是否提供一种将存储桶从一个账户复制到另一个账户的方法?出于开发目的,我将几个文件上传到我自己的存储桶,但现在我想将存储桶切换到客户帐户。

有什么可能的解决方案来做到这一点?

4

2 回答 2

3

您可以将一个存储桶的内容复制到另一个账户拥有的另一个存储桶,但您不能将存储桶的所有权转移到新账户。考虑它的方式是您正在转移存储桶中对象的所有权,而不是存储桶本身。

亚马逊有关于这个程序的非常详细的文章

在源账户中,将以下策略附加到您要复制的存储桶。

#Bucket policy in the source AWS account
{
     "Version": "2012-10-17",
     "Statement": [
          {
               "Sid": "DelegateS3Access",
               "Effect": "Allow",
               "Principal": {"AWS": "222222222222"},
               "Action": "s3:*",
               "Resource": [
                    "arn:aws:s3:::sourcebucket/*",
                    "arn:aws:s3:::sourcebucket"
               ]
          }
     ]
}

将策略附加到目标 AWS 账户中的用户或组,以委托对源 AWS 账户中的存储桶的访问。如果您将策略附加到组,请确保 IAM 用户是该组的成员。

#User or group policy in the destination AWS account
{
     "Version": "2012-10-17",
     "Statement": {
          "Effect": "Allow",
          "Action": "s3:*",
          "Resource": [
               "arn:aws:s3:::sourcebucket",
               "arn:aws:s3:::sourcebucket/*",
               "arn:aws:s3:::destinationbucket",
               "arn:aws:s3:::destinationbucket/*"
          ]
     }
}

完成这些步骤后,您可以使用 AWS 命令​​行界面 (CLI) 命令 cp 或 sync 复制对象。例如,以下 aws s3 sync 命令可用于将内容从源 AWS 账户中的存储桶复制到目标 AWS 账户中的存储桶。

aws s3 sync s3://sourcebucket s3://destinationbucket
于 2017-03-02T05:48:25.550 回答
1

您不能将整个存储桶移动到另一个帐户。您应该先删除一个帐户中的存储桶,然后在另一个帐户中重新创建具有相同名称的存储桶。删除存储桶名称后,它最多需要 24 小时才能再次可用。

或者您可以在所需帐户中创建新存储桶 - 将所有数据移到那里,然后删除旧存储桶。

有不同的工具可以帮助您执行此操作,但我认为我不应该在此处粘贴任何链接。

您是否需要将存储桶移动到另一个区域,或者您需要在一个区域内进行这些更改?

于 2017-03-03T16:29:01.573 回答