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存储桶数据即可

完成验证--

posted @ 2023-01-11 16:20  warrenlucky  阅读(107)  评论(0编辑  收藏  举报