复制 S3 on Outposts 的对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

复制 S3 on Outposts 的对象

借助 Amazon Outposts 上的 S3 复制,您可以将 Amazon S3 on Outposts 配置为在不同的 Outposts 之间或在同一 Outpost 上的桶之间自动复制 S3 对象。您可以使用 Outposts 上的 S3 复制,在相同或不同的 Outposts 或跨不同的账户维护数据的多个副本,以帮助满足数据驻留需求。Outposts 上的 S3 复制有助于满足您的合规存储需求并实现跨账户的数据共享。如果需要确保副本与源数据完全相同,可以使用 Outposts 上的 S3 复制来制作保留所有元数据的对象的副本,如原始对象创建时间、标签和版本 ID。

Outposts 上的 S3 复制还提供详细的指标和通知,以监控桶之间对象复制的状态。您可以使用 Amazon CloudWatch,通过跟踪待复制的字节数、待复制的操作数以及源桶和目标桶之间的复制延迟来监控复制进度。要快速诊断和纠正配置问题,还可以设置 Amazon EventBridge 以接收有关复制对象失败的通知。要了解更多信息,请参阅 管理您的复制

复制配置

S3 on Outposts 以 XML 格式存储复制配置。在复制配置 XML 文件中,您将指定一个 Amazon Identity and Access Management (IAM) 角色以及一个或多个规则。

<ReplicationConfiguration> <Role>IAM-role-ARN</Role> <Rule> ... </Rule> <Rule> ... </Rule> ... </ReplicationConfiguration>

S3 on Outposts 无法在未经您许可的情况下复制对象。您使用在复制配置中指定的 IAM 角色向 S3 on Outposts 授予权限。S3 on Outposts 代入此 IAM 角色以代表您复制对象。在开始复制之前,您必须向 IAM 角色授予所需的权限。有关 S3 on Outposts 的这些权限的更多信息,请参阅创建 IAM 角色

在以下场景的复制配置中添加一个规则:

  • 您希望复制所有对象。

  • 您希望复制对象子集。通过在规则中添加一个筛选条件,可标识对象子级。在该筛选条件中,指定对象键前缀、标签或二者的组合以标识要向其应用规则的对象子集。

如果要复制其他对象子集,请在复制配置中添加多个规则。在每个规则中,指定一个选择不同对象子集的筛选条件。例如,您可能选择了键前缀为 tax/document/ 的复制对象。要做到这一点,您需要添加两个规则,一个规则指定 tax/ 键前缀筛选条件,另一个指定 document/ 键前缀。

有关 S3 on Outposts 复制配置和复制规则的更多信息,请参阅《Amazon Simple Storage Service API 参考》中的 ReplicationConfiguration

Outposts 上的 S3 复制的要求

复制有下列要求:

  • 目标 Outpost CIDR 范围必须在源 Outpost 子网表中关联。有关更多信息,请参阅创建复制规则的先决条件

  • 源桶和目标桶必须均已启用 S3 版本控制。有关版本控制的更多信息,请参阅 为 S3 on Outposts 桶管理 S3 版本控制

  • Amazon S3 on Outposts 必须有权代表您将对象从源桶复制到目标桶。这意味着您必须创建一个服务角色,以便将 GETPUT 权限委派给 S3 on Outposts。

    1. 在创建服务角色之前,您必须拥有源桶的 GET 权限和目标桶的 PUT 权限。

    2. 要创建服务角色以将权限委派给 S3 on Outposts,您必须先配置权限以允许 IAM 实体(用户或角色)执行 iam:CreateRoleiam:PassRole 操作。然后,您允许 IAM 实体创建服务角色。要使 S3 on Outposts 代表您代入此服务角色,并将 GETPUT 权限委派给 S3 on Outposts,您必须为该角色分配必要的信任和权限策略。有关 S3 on Outposts 的这些权限的更多信息,请参阅创建 IAM 角色。有关创建服务角色的更多信息,请参阅创建服务角色

复制什么内容?

原定设置情况下,S3 on Outposts 会复制以下内容:

删除操作对复制操作有何影响

如果您从源桶中删除对象,则默认情况下会执行以下操作:

  • 如果您发出 DELETE 请求而未指定对象版本 ID,S3 on Outposts 会添加删除标记。S3 on Outposts 将按如下所示处理该删除标记:

    • 原定设置情况下,S3 on Outposts 不复制删除标记。

    • 但是,您可以将删除标记复制添加到非基于标记的规则。有关如何在复制配置中启用删除标记复制的更多信息,请参阅使用 S3 控制台

  • 如果您在 DELETE 请求中指定一个要删除的对象版本 ID,S3 on Outposts 会在源桶中永久删除该对象版本。但是,它不会将删除操作复制到目标桶中。换句话说,它不会从目标桶中删除同一对象版本。此行为可防止恶意删除数据。

不复制什么内容?

原定设置情况下,S3 on Outposts 不复制以下内容:

  • 源桶中作为另一个复制规则所建副本的对象。例如,假设您配置的复制中,桶 A 是源,桶 B 是目标。现在假设您添加另一个复制配置,其中桶 B 是源,而桶 C 是目标。在这种情况下,存储桶 B 中作为存储桶 A 中对象的副本的对象不会复制到存储桶 C。

  • 源存储桶中已复制到其他目标的对象。例如,如果您在现有复制配置中更改目标桶,则 S3 on Outposts 不会再次复制对象。

  • 使用具有客户提供的加密密钥的服务器端加密(SSE-C)创建的对象。

  • 对桶级别子资源进行的更新。

    例如,如果您更改生命周期配置或向源桶添加通知配置,则这些更改不会应用于目标桶。此功能使您可以在源桶和目标桶中具有不同的配置。

  • 由生命周期配置执行的操作。

    例如,如果您只在源桶上启用生命周期配置并配置过期操作,S3 on Outposts 会为源桶中的过期对象创建删除标记,但不会将这些标记复制到目标桶。如果您希望对源桶和目标桶应用相同的生命周期配置,请对这两个桶启用相同的生命周期配置。有关生命周期配置的更多信息,请参阅 管理存储生命周期

Outposts 上的 S3 复制不支持什么?

S3 on Outposts 目前不支持以下 S3 复制功能。

  • S3 Replication Time Control(S3 RTC)。不支持 S3 RTC,因为 Outposts 上的 S3 复制中的对象流量通过您的本地网络(本地网关)传输。有关本地网关的更多信息,请参阅《Amazon Outposts 用户指南》中的使用本地网关

  • 适用于批量操作的 S3 复制。