将AWS s3存储桶移至另一个aws帐户

时间:2017-03-02 05:43:17

标签: amazon-s3 awss3transfermanager

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

所有可行的解决方案是做什么的?

2 个答案:

答案 0 :(得分:2)

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

亚马逊有very detailed articles about this procedure

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

#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

答案 1 :(得分:1)

您无法将整个存储桶移动到其他帐户。您应该首先在一个帐户中删除存储桶,然后在另一个帐户中重新创建具有相同名称的存储桶。删除后,桶名称最多可用24小时。

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

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

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