AWS S3存储桶跨账户数据同步
场景:例如AWS账户免费套餐过期需要将S3相关资源迁移至新AWS账户的相关操作。这也是个很常见的场景。
先决条件:
拥有两个活跃 AWS 账户并且具有S3存储桶,以便数据迁移。
开始操作步骤:
1.在需要迁出的S3存储桶中设置存储桶
顶部菜单导航到S3
在存储桶菜单中选择需要数据迁出的存储桶
点击权限选项卡
找到阻止公有访问(存储桶设置):确保阻止所有公开访问设置已关闭(如没有关闭需手动关闭)
![](https://pic1.zhimg.com/80/v2-7d7cf3f9746dff36183a41fd5d0836bc_1440w.jpg)
继续向下滚动
找到存储桶策略选项,点击编辑按钮
![](https://pic1.zhimg.com/80/v2-196bac9832cbfe510c93bc6f99906010_1440w.jpg)
粘贴以下存储桶策略对存储桶进行公开操作
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3Access",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::greryhtryrty/*",
"arn:aws:s3:::greryhtryrty"
]
}
]
}
点击保存更改
![](https://pic3.zhimg.com/80/v2-693d05b063bd56d14f28e76b2fa2aba6_1440w.webp)
2.更换AWS账号至新账号
3.新账号创建S3存储桶
这里存储桶区域我使用美国东部(弗吉尼亚北部)us-east-1 区域
顶部菜单导航到S3
在 S3 页面上,单击创建存储桶并填写存储桶详细信息
桶名称:输入mys3bucket-123456
注意: S3 存储桶名称是全局唯一的,请选择一个可用的名称。
AWS 区域:选择美国东部(弗吉尼亚北部)
将其他所有设置保留为默认值。
点击创建存储桶按钮
![](https://pic4.zhimg.com/80/v2-18234845f0cf81aedb335df009db8223_1440w.webp)
S3存储桶已创建
此存储桶无需额外设置。
4.在新AWS账户进行存储桶同步
在顶栏点击图标打开CloudShell
![](https://pic4.zhimg.com/80/v2-4e80879fdca17545303e0ac8dc898f43_1440w.webp)
等待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
等待完成
![](https://pic2.zhimg.com/80/v2-f9dd152f33b20fd13050237d2adc4d05_1440w.webp)
最后检查新AWS 账户S3存储桶数据即可
![](https://pic1.zhimg.com/80/v2-8ae2b8beba1a735dd5e130422a0a3cd8_1440w.webp)
完成验证--