复制 S3 on Outposts 的对象
借助 AWS 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 文件中,您将指定一个 AWS 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 必须有权代表您将对象从源桶复制到目标桶。这意味着您必须创建一个服务角色,以便将
GET
和PUT
权限委派给 S3 on Outposts。
复制什么内容?
原定设置情况下,S3 on Outposts 会复制以下内容:
-
添加复制配置之后创建的对象。
-
从源对象到副本的对象元数据。有关如何将元数据从副本复制到源对象的信息,请参阅在 Outposts 上启用了 Amazon S3 副本修改同步时的复制状态。
-
对象标签(如果有)。
删除操作对复制操作有何影响
如果您从源存储桶中删除对象,则默认情况下会执行以下操作:
-
如果您发出
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 会为源桶中的过期对象创建删除标记,但不会将这些标记复制到目标桶。如果您希望对源存储桶和目标存储桶应用相同的生命周期配置,请对这两个存储桶启用相同的生命周期配置。有关生命周期配置的更多信息,请参阅 为 Amazon S3 on Outposts 桶创建和管理生命周期配置。
Outposts 上的 S3 复制不支持什么?
S3 on Outposts 目前不支持以下 S3 复制功能。
-
S3 Replication Time Control(S3 RTC)。不支持 S3 RTC,因为 Outposts 上的 S3 复制中的对象流量通过您的本地网络(本地网关)传输。有关本地网关的更多信息,请参阅《AWS Outposts 用户指南》中的使用本地网关。
-
适用于批量操作的 S3 复制。