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

能否在源AWS账户运行S3 Batch拷贝作业实现跨账户数据迁移?

源账户运行S3 Batch跨账户复制作业的配置修改方案

你遇到的两个报错分别对应跨账户访问manifest文件、跨账户写入目标桶的权限缺失问题,按以下步骤配置即可解决:


1. 修复Manifest文件ETag读取报错

目标账户侧配置(Manifest存储桶所属账户)

  • 给Manifest存储桶添加如下桶策略,授权源账户Batch作业角色读取Manifest权限:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<源账户ID>:role/<源账户S3 Batch作业角色名称>"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::<Manifest存储桶名称>/*"
        }
    ]
}
  • 若Manifest文件使用KMS加密,需在对应KMS密钥的策略中添加上述角色的kms:Decrypt权限。
  • 确认Manifest对象本身没有设置限制跨账户读取的ACL。

源账户侧配置

  • 给S3 Batch作业使用的IAM角色添加如下权限:
{
    "Effect": "Allow",
    "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion"
    ],
    "Resource": "arn:aws:s3:::<Manifest存储桶名称>/*"
}

2. 修复目标桶访问权限不足报错

目标账户侧配置(目标S3桶所属账户)

  • 给目标S3桶添加如下桶策略,授权源账户Batch作业角色写入对象权限:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<源账户ID>:role/<源账户S3 Batch作业角色名称>"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::<目标桶名称>/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}
  • 若目标桶开启KMS默认加密,需在对应KMS密钥的策略中添加上述角色的kms:GenerateDataKey、kms:Encrypt权限。

源账户侧配置

  • 给S3 Batch作业使用的IAM角色添加如下权限:
{
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
    ],
    "Resource": "arn:aws:s3:::<目标桶名称>/*"
}
  • 确认该IAM角色的信任关系已允许S3 Batch服务扮演,信任策略示例:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "s3batchops.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

额外校验项

  • 确认S3 Batch作业配置中,复制操作的ACL设置为bucket-owner-full-control,避免目标账户无法访问复制后的对象。
  • 若使用S3 Inventory生成的Manifest,需确认Inventory导出时已授权源账户读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:45:03