You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何克隆S3存储桶并完整复制其所有权限、配置属性及相关参数

S3存储桶完整克隆操作方案

aws s3 sync确实仅支持同步桶内的对象数据,不会同步桶级别的配置、权限、KMS加密设置等属性,你可以按以下流程实现存储桶的完整克隆:


前置条件

  • 本地已安装配置AWS CLI,操作账号拥有源桶、目标桶的S3管理权限、KMS密钥读取权限、相关IAM配置权限
  • 目标桶名称符合S3全局唯一命名规则,你在目标区域拥有S3桶创建权限

步骤1:导出源桶全量配置

执行以下aws s3api命令导出源桶的所有配置项:

  • 桶区域配置:aws s3api get-bucket-location --bucket 源桶名称
  • 桶权限策略:aws s3api get-bucket-policy --bucket 源桶名称
  • 桶ACL配置:aws s3api get-bucket-acl --bucket 源桶名称
  • 桶加密配置(含KMS密钥设置):aws s3api get-bucket-encryption --bucket 源桶名称
  • 其他配置:版本控制规则、生命周期规则、跨域CORS配置、桶标签、事件通知配置分别对应get-bucket-versioning、get-bucket-lifecycle-configuration、get-bucket-cors、get-bucket-tagging、get-bucket-notification-configuration命令

步骤2:创建目标桶并同步所有配置

  1. 按照源桶的区域配置创建目标桶,同区域创建可省略--create-bucket-configuration参数:
    aws s3api create-bucket --bucket 目标桶名称 --region 目标区域 --create-bucket-configuration LocationConstraint=目标区域
  2. 将步骤1导出的所有配置逐一应用到目标桶,所有配置写入对应put-bucket-*系列命令即可,比如写入KMS加密配置的命令为:
    aws s3api put-bucket-encryption --bucket 目标桶名称 --server-side-encryption-configuration 导出的加密配置JSON内容

步骤3:同步桶内对象及对象级属性

执行带参数的s3 sync命令同步对象+元数据+ACL:
aws s3 sync s3://源桶名称 s3://目标桶名称 --acl bucket-owner-full-control --metadata-directive COPY --source-region 源桶区域 --region 目标区域

补充说明:如果需要同步后的对象仍使用源KMS密钥加密,可在上述命令末尾追加--sse aws:kms --sse-kms-key-id 源KMS密钥ARN;如果源桶开启了版本控制,需要额外遍历所有版本ID同步,或使用s3cmd sync --recursive --preserve s3://源桶名称 s3://目标桶名称实现全版本同步。

可选自动化方案

如果需要频繁执行克隆操作,可自行编写Shell/Python脚本批量调用S3 API,自动完成配置导出、目标桶配置写入、数据同步的全流程,无需手动逐行执行命令。


内容的提问来源于stack exchange,提问作者Gonzalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:15:03