管理对象锁定
您可以使用 Amazon CLI、Amazon 开发工具包和 Amazon S3 REST API 配置和查看锁定信息、设置保留期限、管理删除和生命周期等。
查看对象的锁定信息
您可以使用 GET
Object
或 HEAD Object
命令查看 Amazon S3 对象的对象锁定状态。这两个命令都会返回指定对象版本的保留模式、Retain Until Date
和依法保留状态。
要查看对象版本的保留模式和保留期限,您必须拥有 s3:GetObjectRetention
权限。要查看对象版本的依法保留状态,您必须拥有 s3:GetObjectLegalHold
权限。如果您对某一对象版本执行 GET
或 HEAD
操作但没有查看其锁定状态所需的权限,该请求将成功。但它不会返回您无权查看的信息。
要查看存储桶的默认保留配置(如果有),应请求存储桶的对象锁定配置。为此,您必须具有 s3:GetBucketObjectLockConfiguration
权限。如果您对未启用对象锁定的存储桶请求 S3 对象锁定配置,Amazon S3 将返回错误。有关许可的更多信息,请参阅示例 — 对象操作。
您可以对存储桶配置 Amazon S3 清单报告,以包括存储桶中所有对象的 Retain
Until Date
、object lock Mode
和 Legal Hold Status
。有关更多信息,请参阅 Simple Storage Service (Amazon S3) 清单。
绕过监管模式
可对在监管模式下锁定的对象版本执行操作,如同在您拥有 s3:BypassGovernanceRetention
权限时这些对象版本不受保护。这些操作包括删除对象版本、缩短保留周期或通过实施参数为空的新锁定来删除对象锁定。
要绕过监管模式,您必须在请求中明确指明您要绕过此模式。为此,在请求中包含 x-amz-bypass-governance-retention:true
标头,或将等效参数用于通过 Amazon CLI 或 Amazon 开发工具包发出的请求。如果您具有绕过监管模式所需的权限,则 Amazon Web Services Management Console会自动将此标头应用于通过控制台发出的请求。
绕过监管模式不会影响对象版本的依法保留状态。如果某一对象版本已启用依法保留,则该依法保留将一直有效,并可阻止覆盖或删除该对象版本的请求。
配置事件和通知
您可以使用 Amazon S3 事件通知来跟踪使用 对对象锁定配置及数据进行的访问和更改Amazon CloudTrail 有关 CloudTrail 的信息,请参阅 Amazon 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 对象锁定与复制结合使用,以允许在相同或者跨不同 Amazon Web Services 区域中的 S3 存储桶对锁定的对象及其保留元数据进行自动异步复制。如果您使用复制,源存储桶 中的对象会被复制到目标存储桶。有关更多信息,请参阅 复制对象。
要设置 S3 对象锁定以及复制,您可以选择以下选项之一。
选项 1:首先启用对象锁定
-
在目标存储桶上启用对象锁定,或同时在源和目标存储桶上启用对象锁定。
-
设置源存储桶和目标存储桶之间的复制。
选项 2:首先设置复制
-
设置源存储桶和目标存储桶之间的复制。
-
只在目标存储桶上启用对象锁定,或同时在源和目标存储桶上启用对象锁定。
在上述选项中启用对象锁定时,必须在创建存储桶时完成,或者如果使用现有存储桶,则必须联系 Amazon Web Services Support。此要求是为了确保正确地配置复制。
在您联系 Amazon Web Services Support 之前,检查以下有关设置对象锁定以及复制的要求:
-
Amazon S3 目标存储桶上必须已启用对象锁定。
-
您必须在用于设置复制的 Amazon Identity and Access Management (IAM) 角色中授予对源 S3 存储桶的两项新权限。这两项新权限是
s3:GetObjectRetention
和s3:GetObjectLegalHold
。如果这个角色有s3:Get*
权限,则它已经满足要求了。有关更多信息,请参阅 设置权限。
有关 S3 对象锁定的更多信息,请参阅 S3 对象锁定的工作原理。