为什么我的 Amazon S3 批量复制任务失败?

1 分钟阅读
0

我想知道 Amazon Simple Storage Service(Amazon S3)批量复制任务失败的原因。

简短描述

如果您的 S3 批量复制任务失败,则您用于该任务的 AWS Identity and Access Management(IAM)角色可能配置不正确。完成以下任务,对 S3 批量复制作业进行故障排除:

  • (先决条件)选择是要拷贝还是复制
  • 配置 IAM 角色
  • 解决任务失败的其他原因

解决方法

先决条件

使用批量操作时,您可以选择拷贝或复制桶中的对象。在使用批量操作之前,请查看以下信息:

  • 对于批量操作,拷贝的限制为 5GB。它也不允许您拷贝 5GB 或更大的单个对象。复制没有此限制。
  • 复制会保留已复制对象的元数据,例如创建日期和版本 ID。复制的对象还保留对象级别访问控制列表(ACL)。复制让您能够更改已复制对象的存储类。拷贝不允许您保留此信息或更改存储类。
  • 要使用拷贝,源桶和目标桶必须位于同一 AWS 区域。

有关详细信息,请参阅 S3 批量复制注意事项

配置 IAM 角色

源桶上的 Amazon S3 复制规则是 S3 批量复制任务的基础。要创建 S3 批量复制作业,请定义要复制的对象并(可选)配置报告。S3 批量复制任务从在源 S3 桶上配置的复制规则中获取所有其他设置。如果您未在源桶上配置复制规则,则用于复制的批量作业会失败。

IAM 角色配置有误会导致 S3 批量复制任务失败。S3 批量复制任务使用以下 IAM 角色:

  • 批量操作:“batchoperations.s3.amazonaws.com”代入此角色,是在您创建批处理任务时配置的。使用此角色管理 Amazon S3 清单和配置。此角色还会启动复制。有关详细信息,请参阅为批量复制配置 IAM 策略
  • 复制操作:“s3.amazonaws.com”代入此角色,是在您创建 Amazon S3 复制规则时配置的。使用此角色将对象从源桶复制到目标桶。有关详细信息,请参阅在桶之间设置复制时,为什么我的 Amazon S3 对象不复制?

配置 IAM 角色后,请为适合您的复制场景的桶配置复制规则。然后,配置 S3 批量复制作业

解决任务失败的其他原因

批处理角色有问题

  • 批处理角色必须对清单或配置具有 PUT 权限。它还必须对存储清单的桶中的清单具有 GET 权限。如果您使用保存批处理操作清单选项,则您必须对清单文件具有 GET 和 PUT 权限。将清单的桶策略配置为不拒绝批处理角色要求的任何操作。有关详细信息,请参阅为批量复制配置 IAM 策略
  • 如果您使用跨账户桶,则桶策略必须具有批处理角色的权限。这些权限是对 IAM 角色策略的补充。
  • 如果您对桶使用 AWS Key Management Service(AWS KMS)或对象级别加密,则 AWS KMS 密钥必须包含批处理角色。AWS KMS 密钥必须允许批处理角色从桶下载和上传数据。
  • 如果您使用用户提供的清单,则您的清单必须对 IAM 角色具有正确权限。如果是跨账户桶,则桶策略必须包含权限。如果桶采用了 AWS KMS 加密,则 AWS KMS 密钥策略必须授予批处理角色下载清单的权限。

复制角色有问题

如果批处理作业失败且错误率超过 50%,则可能是由于复制角色配置中的问题造成的。如果您对批处理和复制任务使用相同的角色,则允许 Amazon S3 和 Amazon S3 批量操作服务代入该角色。确保配置允许这两个权限集。

**注意:**为 Amazon S3 准备清单需要时间。如果您的批处理任务处于“准备中”阶段,或者在几个小时内处于相同的完成百分比,请联系 AWS Support

相关信息

如何解决 Amazon S3 批量操作问题?

AWS 官方
AWS 官方已更新 1 年前