AWS S3存储桶跨账户数据同步
场景:例如AWS账户免费套餐过期需要将S3相关资源迁移至新AWS账户的相关操作。这也是个很常见的场景。
--课程与题库整理--
--
先决条件:
拥有两个活跃 AWS 账户并且具有S3存储桶,以便数据迁移。
开始操作步骤:
1.在需要迁出的S3存储桶中设置存储桶
顶部菜单导航到S3
在存储桶菜单中选择需要数据迁出的存储桶
点击权限选项卡
找到阻止公有访问(存储桶设置):确保阻止所有公开访问设置已关闭(如没有关闭需手动关闭)
继续向下滚动
找到存储桶策略选项,点击编辑按钮
粘贴以下存储桶策略对存储桶进行公开操作
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3Access",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::greryhtryrty/*",
"arn:aws:s3:::greryhtryrty"
]
}
]
}
点击保存更改
2.更换AWS账号至新账号
3.新账号创建S3存储桶
这里存储桶区域我使用美国东部(弗吉尼亚北部)us-east-1 区域
顶部菜单导航到S3
在 S3 页面上,单击创建存储桶并填写存储桶详细信息
桶名称:输入mys3bucket-123456
注意: S3 存储桶名称是全局唯一的,请选择一个可用的名称。
AWS 区域:选择美国东部(弗吉尼亚北部)
将其他所有设置保留为默认值。
点击创建存储桶按钮
S3存储桶已创建
此存储桶无需额外设置。
4.在新AWS账户进行存储桶同步
在顶栏点击图标打开CloudShell
等待CloudShell初始化完成后输入AWS CLI命令完成同步
摘自官网:
aws s3 sync s3:// DOC-EXAMPLE-BUCKET-SOURCE / \
s3:// DOC-EXAMPLE-BUCKET-TARGET / \
--source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME
这里我的命令是:
aws s3 sync s3://greryhtryrty/ s3://mys3bucket-123456/ --source-region ap-east-1 --region us-east-1
等待完成
最后检查新AWS 账户S3存储桶数据即可
完成验证
--