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

基于AWS CloudFormation YAML实现S3源桶到目标桶内容复制

AWS CloudFormation YAML实现S3源桶到目标桶内容复制

以下是基于AWS CloudFormation YAML的完整配置方案,通过S3复制功能(支持同区域/跨区域)实现源桶内容自动同步到目标桶:

CloudFormation模板

AWSTemplateFormatVersion: '2010-09-09'
Description: 配置S3源桶到目标桶的自动内容复制

Parameters:
  SourceBucketName:
    Type: String
    Description: 源存储桶名称(需全局唯一)
  TargetBucketName:
    Type: String
    Description: 目标存储桶名称(需全局唯一)

Resources:
  # 源存储桶(必须开启版本控制)
  SourceBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref SourceBucketName
      VersioningConfiguration:
        Status: Enabled
      ReplicationConfiguration:
        Role: !GetAtt ReplicationRole.Arn
        Rules:
          - Id: SyncAllObjects
            Status: Enabled
            Destination:
              Bucket: !GetAtt TargetBucket.Arn
              StorageClass: STANDARD # 可根据需求修改存储类,比如GLACIER_IR
            # 可选:过滤特定前缀/后缀的对象,如需复制所有对象则移除Filter
            # Filter:
            #   Prefix: "docs/"

  # 目标存储桶(建议开启版本控制以保留历史版本)
  TargetBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref TargetBucketName
      VersioningConfiguration:
        Status: Enabled

  # S3复制所需的IAM角色
  ReplicationRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: s3.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: S3ReplicationPolicy
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              # 允许读取源桶的对象和版本信息
              - Effect: Allow
                Action:
                  - s3:GetReplicationConfiguration
                  - s3:ListBucket
                  - s3:GetObjectVersion
                  - s3:GetObjectVersionAcl
                Resource:
                  - !Sub arn:aws:s3:::${SourceBucketName}
                  - !Sub arn:aws:s3:::${SourceBucketName}/*
              # 允许写入目标桶
              - Effect: Allow
                Action:
                  - s3:ReplicateObject
                  - s3:ReplicateDelete
                  - s3:ReplicateTags
                  - s3:GetObjectVersionTagging
                Resource: !Sub arn:aws:s3:::${TargetBucketName}/*

关键配置说明

  • 版本控制要求:源桶必须开启版本控制,目标桶建议开启,否则复制功能无法正常工作。
  • 复制规则:模板中配置的是复制源桶所有对象,如需过滤特定前缀/后缀的对象,可取消注释Filter部分并调整规则。
  • IAM角色权限:角色需具备源桶的读取权限和目标桶的写入权限,确保S3服务能承担该角色完成复制操作。
  • 存储类选择:目标桶的存储类可根据业务需求修改,比如归档类存储(GLACIER)或低频访问存储(STANDARD_IA)。

注意事项

  • 该配置仅会复制模板部署后新增/修改的对象,部署前已存在的对象不会自动复制。如需同步历史对象,需手动使用aws s3 sync命令或S3批量复制功能。
  • 跨区域复制时,需确保源桶和目标桶位于不同AWS区域,可在模板中为桶添加LocationConstraint属性指定区域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:33:20