AWS是否提供了将存储桶从一个帐户复制到另一个帐户的方法?我正在将几个文件上传到我自己的存储桶中以用于开发目的,但现在我想要将存储桶切换到客户帐户。
所有可行的解决方案是做什么的?
答案 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小时。
或者您可以在所需帐户中创建新存储桶 - 将所有数据移动到那里然后删除旧存储桶。
有不同的工具可以帮助您完成此操作,但我认为我不应该粘贴任何链接。
您是否需要将存储桶移动到其他区域,或者需要在一个区域内进行这些更改?