Amazon Simple Storage Service
开发人员指南 (API 版本 2006-03-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

管理 Amazon S3 对象锁定

Amazon S3 object lock使您能够使用一次写入,多次读取 (WORM) 模式在 Amazon S3 中存储对象。您可以使用它来查看、配置和管理 Amazon S3 对象的对象锁定状态。有关 Amazon S3 object lock功能的更多信息,请参阅Amazon S3 对象锁定概览

查看对象的锁定信息

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

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

要查看存储桶的默认保留配置(如果有),应请求存储桶的对象锁定配置。为此,您必须具有 s3:GetBucketObjectLockConfiguration 权限。如果您对未启用 Amazon S3 object lock的存储桶请求对象锁定配置,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 管理控制台会自动将此标头应用于通过控制台发出的请求。

注意

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

配置事件和通知

可在对象锁定存储桶中为对象级别操作配置 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 条件键完成此操作。以下示例显示一个存储桶策略,它将最长保留期限设置为 10 天。

{ "Version": "2012-10-17", "Id": "<Policy1436912751980>", "Statement": [ { "Sid": "<Stmt1436912698057>", "Effect": "Deny", "Principal": "*", "Action": [ "s3:PutObjectRetention" ], "Resource": "arn:aws-cn:s3:::<example-bucket>/*", "Condition": { "NumericGreaterThan": { "s3:object-lock-remaining-retention-days": "10" } } } ] }

注意

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

有关使用存储桶策略的更多信息,请参阅使用存储桶策略和用户策略。

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

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

注意

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

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

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

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

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

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

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

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

选项 2:首先设置复制。

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

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

要完成上述选项中的步骤 2,您必须联系 AWS Support。此要求是为了确保正确地配置复制。

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

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

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

有关 Amazon S3 的更多信息,请参阅使用 Amazon S3 对象锁定以锁定对象