管理对象锁定 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

管理对象锁定

您可以使用 AWS CLI、AWS 开发工具包和 Amazon S3 REST API 配置和查看锁定信息、设置保留期限、管理删除和生命周期等。

查看对象的锁定信息

您可以使用 GET ObjectHEAD Object 命令查看 Amazon S3 对象的对象锁定状态。这两个命令都会返回指定对象版本的保留模式、Retain Until Date 和依法保留状态。

要查看对象版本的保留模式和保留期限,您必须拥有 s3:GetObjectRetention 权限。要查看对象版本的依法保留状态,您必须拥有 s3:GetObjectLegalHold 权限。如果您对某一对象版本执行 GETHEAD 操作但没有查看其锁定状态所需的权限,该请求将成功。但它不会返回您无权查看的信息。

要查看存储桶的默认保留配置(如果有),应请求存储桶的对象锁定配置。为此,您必须具有 s3:GetBucketObjectLockConfiguration 权限。如果您对未启用对象锁定的存储桶请求 S3 对象锁定配置,Amazon S3 将返回错误。有关许可的更多信息,请参阅示例 — 对象操作

您可以对存储桶配置 Amazon S3 清单报告,以包括存储桶中所有对象的 Retain Until Dateobject lock ModeLegal Hold Status。有关更多信息,请参阅 Amazon S3 清单

绕过监管模式

可对在监管模式下锁定的对象版本执行操作,如同在您拥有 s3:BypassGovernanceRetention 权限时这些对象版本不受保护。这些操作包括删除对象版本、缩短保留周期或通过实施参数为空的新锁定来删除对象锁定。

要绕过监管模式,您必须在请求中明确指明您要绕过此模式。为此,在请求中包含 x-amz-bypass-governance-retention:true 标头,或将等效参数用于通过 AWS CLI 或 AWS 开发工具包发出的请求。如果您具有绕过监管模式所需的权限,则 AWS 管理控制台会自动将此标头应用于通过控制台发出的请求。

注意

绕过监管模式不会影响对象版本的依法保留状态。如果某一对象版本已启用依法保留,则该依法保留将一直有效,并可阻止覆盖或删除该对象版本的请求。

配置事件和通知

可在 S3 对象锁定存储桶中为对象级操作配置 Amazon S3 事件。当 PUT ObjectHEAD ObjectGET Object 调用包含对象锁定元数据时,这些调用的事件将包含这些元数据的值。在为对象添加或更新对象锁定元数据时,这些操作也会触发事件。只要您 PUTGET 对象保留或依法保留信息,便会发生这些事件。

有关 Amazon S3 事件的更多信息,请参阅Amazon S3 事件通知

您可以使用 Amazon S3 事件通知来跟踪使用 AWS CloudTrail 对对象锁定配置及数据进行的访问和更改。有关 CloudTrail 的信息,请参阅 AWS CloudTrail 文档

您还可以使用 Amazon CloudWatch 根据此数据生成警报。有关 CloudWatch 的信息,请参阅 Amazon CloudWatch 文档

设置保留设置

可以使用存储桶策略为存储桶设置允许的最小和最大保留期限。您可以使用 s3:object-lock-remaining-retention-days 条件键完成此操作。最长保留周期为 100 年。

以下示例显示一个存储桶策略,它使用 s3:object-lock-remaining-retention-days 条件键将最长保留期限设置为 10 天。

{ "Version": "2012-10-17", "Id": "<SetRetentionLimits", "Statement": [ { "Sid": "<SetRetentionPeriod", "Effect": "Deny", "Principal": "*", "Action": [ "s3:PutObjectRetention" ], "Resource": "arn:aws:s3:::<awsexamplebucket1>/*", "Condition": { "NumericGreaterThan": { "s3:object-lock-remaining-retention-days": "10" } } } ] }
注意

如果您的存储桶是复制策略的目标存储桶并且您想要为使用复制创建的对象副本设置最小和最大允许保留期,则您必须在存储桶策略中包含 s3:ReplicateObject 操作。

有关更多信息,请参阅以下主题:

管理删除标记和对象生命周期

尽管您无法删除受保护的对象版本,但您仍可为该对象创建删除标记。对对象实施删除标记不会删除任何对象版本。但会使 Amazon S3 的行为方式在最大程度上与对象被删除时相似。有关更多信息,请参阅 使用删除标记

注意

无论基础对象中实施任何保留期限或依法保留,删除标记均不受 WORM 保护。

对象生命周期管理配置将继续正常应用于受保护的对象,包括实施删除标记。但是,受保护的对象版本将一直保持安全状态,不会被生命周期配置删除或覆盖。有关管理对象生命周期的更多信息,请参阅管理存储生命周期

将 S3 对象锁定与复制结合使用

您可以将 S3 对象锁定与跨区域复制 (CRR) 结合使用,以允许在相同或者跨不同 AWS 区域中的 S3 存储桶对锁定的对象及其保留元数据进行自动异步复制。如果您使用复制,源存储桶 中的对象会被复制到目标存储桶。有关更多信息,请参阅 复制对象

要设置 S3 对象锁定以及复制,您可以选择以下选项之一。

选项 1:首先启用对象锁定

  1. 在目标存储桶上启用对象锁定,或同时在源和目标存储桶上启用对象锁定。

  2. 设置源存储桶和目标存储桶之间的复制。

选项 2:首先设置复制

  1. 设置源存储桶和目标存储桶之间的复制。

  2. 只在目标存储桶上启用对象锁定,或同时在源和目标存储桶上启用对象锁定。

在上述选项中启用对象锁定时,必须在创建存储桶时完成,或者如果使用现有存储桶,则必须联系 AWS Support。此要求是为了确保正确地配置复制。

在您联系 AWS Support 之前,检查以下有关设置对象锁定以及复制的要求:

  • Amazon S3 目标存储桶上必须已启用对象锁定。

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

有关 S3 对象锁定的更多信息,请参阅 S3 对象锁定的工作原理