AWS 是否提供一种将存储桶从一个账户复制到另一个账户的方法?出于开发目的,我将几个文件上传到我自己的存储桶,但现在我想将存储桶切换到客户帐户。
有什么可能的解决方案来做到这一点?
AWS 是否提供一种将存储桶从一个账户复制到另一个账户的方法?出于开发目的,我将几个文件上传到我自己的存储桶,但现在我想将存储桶切换到客户帐户。
有什么可能的解决方案来做到这一点?
您可以将一个存储桶的内容复制到另一个账户拥有的另一个存储桶,但您不能将存储桶的所有权转移到新账户。考虑它的方式是您正在转移存储桶中对象的所有权,而不是存储桶本身。
亚马逊有关于这个程序的非常详细的文章。
在源账户中,将以下策略附加到您要复制的存储桶。
#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
您不能将整个存储桶移动到另一个帐户。您应该先删除一个帐户中的存储桶,然后在另一个帐户中重新创建具有相同名称的存储桶。删除存储桶名称后,它最多需要 24 小时才能再次可用。
或者您可以在所需帐户中创建新存储桶 - 将所有数据移到那里,然后删除旧存储桶。
有不同的工具可以帮助您执行此操作,但我认为我不应该在此处粘贴任何链接。
您是否需要将存储桶移动到另一个区域,或者您需要在一个区域内进行这些更改?