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

能否通过AWS PrivateLink实现S3到S3的直接跨账号数据复制?

完全可以不需要EC2中转,直接通过AWS PrivateLink实现跨账号S3桶之间的复制,全程流量不会经过公网,也不需要中间实例做中转。

实现前提
  • 两个S3桶必须和配置的S3接口端点(PrivateLink for S3资源)在同一个AWS区域,跨区域暂时无法直接通过PrivateLink做原生S3复制
  • 你方账号和客户账号都已经在对应VPC中配置了S3接口端点,且两端的端点安全组都放行443端口的HTTPS出入站流量
  • 两边S3桶策略都配置了对应VPC端点的访问权限,同时完成跨账号读写授权
具体配置步骤

1. 配置双向S3 PrivateLink接口端点

  • 你方账号在自有VPC中创建S3接口端点,端点策略中配置允许访问你方源S3桶,同时开放跨账号访问权限给客户账号
  • 客户账号在自有VPC中创建S3接口端点,端点策略中配置允许写入客户侧目标S3桶,开放跨账号访问权限给你方账号

2. 配置桶策略与访问权限

你方源桶添加如下策略,允许复制角色通过指定VPC端点读取源桶数据:

{
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::执行复制操作的账号ID:role/跨账号复制角色"},
    "Action": ["s3:GetObject", "s3:ListBucket"],
    "Resource": [
        "arn:aws:s3:::你的源桶名/*",
        "arn:aws:s3:::你的源桶名"
    ],
    "Condition": {
        "StringEquals": {
            "aws:SourceVpce": "你方S3接口端点ID"
        }
    }
}

客户方目标桶添加如下策略,允许复制角色通过指定VPC端点写入目标桶:

{
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::执行复制操作的账号ID:role/跨账号复制角色"},
    "Action": ["s3:PutObject", "s3:ListBucket"],
    "Resource": [
        "arn:aws:s3:::客户目标桶名/*",
        "arn:aws:s3:::客户目标桶名"
    ],
    "Condition": {
        "StringEquals": {
            "aws:SourceVpce": "客户方S3接口端点ID"
        }
    }
}

3. 执行S3跨桶复制

直接使用S3原生同步命令即可,执行时指定S3接口端点地址,流量全程走PrivateLink链路:
aws s3 sync s3://你的源桶名 s3://客户目标桶名 --region 对应区域 --endpoint-url https://bucket.vpce-xxx-xxx.s3.区域ID.vpce.amazonaws.com

注意事项
  • 如果你使用S3原生同区域复制(SRR)功能,需要在复制规则中额外指定流量走VPC端点,避免走公网路径
  • 执行复制的IAM角色需要同时拥有两边桶的对应读写权限、以及S3接口端点的访问权限
  • 所有数据传输全程在AWS骨干网内完成,完全符合PrivateLink的安全合规要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:27:00