复制对象 - Amazon Simple Storage Service

复制对象

复制支持跨 Amazon S3 存储桶自动以异步方式复制对象。为对象复制配置的存储桶可由相同 AWS 账户 或不同账户拥有。您可以将对象复制到单个目标存储桶或多个目标存储桶。目标存储桶可以位于不同的 AWS 区域,也可以与源存储桶位于同一区域内。

要在向存储桶写入新对象时自动复制它们,请使用实时复制,例如跨区域复制(CRR)。要根据需要将现有对象复制到其他存储桶,请使用 S3 分批复制。有关复制现有对象的更多信息,请参阅 何时使用 S3 分批复制

要启用 CRR,请将复制配置添加到源存储桶。最小配置必须需要提供以下内容:

  • 您希望 Amazon S3 将对象复制到的目标存储桶

  • 一个 AWS Identity and Access Management (IAM) 角色,Amazon S3 可以代入该角色以代表您复制对象

其他配置选项如下。有关更多信息,请参阅其他复制配置

要获取 S3 复制的详细指标,包括复制规则计数指标,您可以使用 Amazon S3 Storage Lens 存储统计管理工具。S3 Storage Lens 存储统计管理工具是一项云存储分析功能,您可以使用它在整个组织范围内了解对象存储的使用情况和活动。有关更多信息,请参阅使用 S3 Storage Lens 存储统计管理工具保护您的数据。有关指标的完整列表,请参阅 S3 Storage Lens 存储统计管理工具指标词汇表

为什么使用复制

复制可帮助您实现以下功能:

  • 复制对象,同时保留元数据 – 您可以使用复制来制作对象的副本,并保留所有元数据(例如原始对象创建时间和版本 ID)。如果您必须确保副本与源对象完全相同,则此功能非常重要。

  • 将对象复制到不同的存储类 – 您可以使用复制直接将对象置于目标存储桶中的 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 或其他存储类中。您还可以将数据复制到相同的存储类,并在目标存储桶上使用生命周期配置,以在对象老化时将其移动到较冷的存储类。

  • 在不同的所有权下维护对象副本 – 无论谁拥有源对象,您都可以指示 Amazon S3 将副本的所有权更改为拥有目标存储桶的 AWS 账户。这称为拥有者覆盖 选项。您可以使用此选项来要限制对对象副本的访问权限。

  • 将对象存储在多个 AWS 区域 – 要确保数据保存位置的地理差异,您可以在不同的 AWS 区域 中设置多个目标存储桶。此功能可能会帮助您满足某些合规性要求。

  • 在 15 分钟内复制对象 – 要在可预测的时间范围内在同一 AWS 区域 或跨不同区域复制您的数据,您可以使用 S3 Replication Time Control(S3 RTC)。S3 RTC 在 15 分钟内复制 Amazon S3 中存储的 99.99% 的新对象(由服务等级协议提供支持)。有关更多信息,请参阅使用 S3 Replication Time Control(S3 RTC)满足合规性要求

  • 同步存储桶、复制现有对象以及之前无法复制或已复制的对象 – 要同步存储桶和复制现有对象,请使用分批复制作为按需复制操作。有关何时使用分批复制的更多信息,请参阅 何时使用 S3 分批复制

  • 复制对象并失效转移到另一个 AWS 区域中的存储桶 - 要在数据复制期间使所有元数据和对象在存储桶之间保持同步,请在配置 Amazon S3 多区域接入点失效转移控制之前使用双向复制规则。双向复制规则有助于确保在将数据写入流量失效转移到的 S3 存储桶时,该数据随后被复制回源存储桶。

注意

S3 RTC 不适用于分批复制。分批复制是一项按需复制任务,可以使用 S3 批量操作进行跟踪。有关更多信息,请参阅跟踪任务状态和完成报告

何时使用跨区域复制

S3 跨区域复制(CRR)用于在不同 AWS 区域中跨 Amazon S3 存储桶复制对象。CRR 可帮助您:

  • 满足合规性要求 – 虽然 Amazon S3 默认跨多个地理位置较远的可用区存储数据,但是合规性要求所规定的数据存储距离可能更远。为满足这些要求,可以使用跨区域复制在远距离 AWS 区域 之间复制数据。

  • 最大限度减少延迟 – 如果客户处于两个地理位置,您可以在地理位置与用户较近的AWS 区域中维护对象副本,从而最大限度缩短访问对象时的延迟。

  • 提高操作效率 – 如果您在两个不同 AWS 区域 中具有分析同一组对象的计算集群,则可以选择在这些区域中维护对象副本。

何时使用同区域复制

同区域复制(SRR)用于在同一 AWS 区域中跨 Amazon S3 存储桶复制对象。SRR 可帮助您:

  • 将日志聚合到单个存储桶 – 如果您在多个存储桶中或者跨多个账户存储日志,则可以轻松地将日志复制到区域中的单个存储桶。这样做实现了在单个位置更简单地处理日志。

  • 在生产账户和测试账户之间配置实时复制 – 如果您或您的客户有使用相同数据的生产账户和测试账户,您可以在那些账户之间复制对象,同时保留对象元数据。

  • 遵守数据主权法律 – 您可能需要将数据的多个副本存储在特定区域内的单独 AWS 账户 中。当合规性法规不允许数据离开您的国家/地区时,同区域复制可帮助您自动复制关键数据。

何时使用双向复制

  • 跨多个 AWS 区域构建共享数据集 – 通过副本修改同步功能,您可以轻松地对于复制对象复制元数据更改,例如对象访问控制列表(ACL)、对象标签或对象锁定。如果要使所有对象和对象元数据更改保持同步,这种双向复制非常重要。在相同或不同 AWS 区域中的两个或更多存储桶之间执行双向复制时,您可以对新的或现有的复制规则启用副本修改同步

  • 在失效转移期间跨区域保持数据同步 – 您可以直接从多区域接入点通过 S3 跨区域复制(CRR)配置双向复制规则,在 AWS 区域中的存储桶之间同步数据。要就何时启动失效转移做出明智的决定,您还可以启用 S3 复制指标来监控 Amazon CloudWatch、S3 Replication Time Control(S3 RTC)或多区域接入点中的复制。

  • 使应用程序具有高可用性 - 即使在区域流量中断的情况下,您也可以使用双向复制规则在数据复制期间跨存储桶保持所有元数据和对象同步。

何时使用 S3 分批复制

作为按需选项,分批复制将现有对象复制到不同的存储桶。与实时复制不同,这些任务可以根据需要运行。分批复制可帮助您实现以下功能:

  • 复制现有对象 – 您可以使用分批复制来复制在配置同区域复制或跨区域复制之前添加到存储桶中的对象。

  • 复制之前无法复制的对象 – 您可以筛选分批复制任务以尝试复制状态为 FAILED 的对象。

  • 复制已经复制的对象 – 您可能需要将数据的多个副本存储在单独的 AWS 账户 或 AWS 区域 中。分批复制可以将现有对象复制到新添加的目标。

  • 复制根据复制规则创建的对象的副本 – 复制配置在目标存储桶中创建对象的副本。对象的副本只能通过分批复制进行复制。

复制的要求

复制有下列要求:

  • 源存储桶拥有者必须已为其账户启用源和目标 AWS 区域。目标存储桶拥有者必须已为其账户启用目标区域。

    有关启用和禁用 AWS 区域的更多信息,请参阅《AWS 一般参考》中的管理 AWS 区域

  • 源存储桶和目标存储桶必须均已启用版本控制。有关版本控制的更多信息,请参阅 在 S3 存储桶中使用版本控制

  • Amazon S3 必须有权代表您将对象从源存储桶复制到目标存储桶。有关这些权限的更多信息,请参阅 设置权限

  • 如果源存储桶的拥有者不拥有该存储桶中的对象,则对象拥有者必须使用对象访问控制列表(ACL)对该存储桶拥有者授予 READREAD_ACP 权限。有关更多信息,请参阅 访问控制列表 (ACL) 概述

  • 如果源存储桶已启用 S3 对象锁定,目标存储桶也必须启用 S3 对象锁定。

    要在启用了对象锁定的存储桶上启用复制,您必须使用 AWS Command Line Interface、REST API 或 AWS SDK。有关更多一般信息,请参阅 使用 S3 对象锁定

    注意

    您必须在用于设置复制的 AWS Identity and Access Management (IAM) 角色中授予对源 S3 存储桶的两项新权限。这两项新权限是 s3:GetObjectRetentions3:GetObjectLegalHold。如果这个角色有 s3:Get* 权限,则它已经满足要求了。有关更多信息,请参阅设置权限

有关更多信息,请参阅设置复制

如果您要在跨账户方案(其中,源存储桶和目标存储桶由不同的 AWS 账户拥有)中设置复制配置,则需要满足以下附加要求: