对象锁定注意事项
Amazon S3 对象锁定可以协助在固定的时间长度内或无限期地阻止删除或覆盖对象。
您可以使用 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)、AWS SDK 或 Amazon S3 REST API 来查看或设置对象锁定信息。有关 S3 对象锁定功能的一般信息,请参阅使用 S3 对象锁定。
重要
-
在某个存储桶上启用对象锁定后,您将无法为该存储桶禁用对象锁定或暂停版本控制。
-
具有对象锁定的 S3 存储桶不能用作服务器访问日志的目标存储桶。有关更多信息,请参阅 使用服务器访问日志记录来记录请求。
主题
查看锁定信息的权限
您可以使用 HeadObject 或 GetObject 操作,以编程方式查看 Amazon S3 对象版本的对象锁定状态。这两个操作都会返回指定对象版本的保留模式、保留到期日和依法保留状态。此外,您可以使用 S3 清单来查看 S3 存储桶中多个对象的对象锁定状态。
要查看对象版本的保留模式和保留期限,您必须拥有 s3:GetObjectRetention
权限。要查看对象版本的依法保留状态,您必须拥有 s3:GetObjectLegalHold
权限。要查看存储桶的默认保留配置,您必须具有 s3:GetBucketObjectLockConfiguration
权限。如果您对未启用 S3 对象锁定的存储桶请求对象锁定配置,则 Amazon S3 将返回错误。
绕过监管模式
如果您具有 s3:BypassGovernanceRetention
权限,则在对象未受保护时,您可对在监管模式下锁定的对象版本执行操作。这些操作包括删除对象版本、缩短保留期限,或者通过实施参数为空的新 PutObjectRetention
请求来删除对象锁定保留期限。
要绕过监管模式,您必须在请求中明确指明您要绕过此模式。为此,在 PutObjectRetention
API 操作请求中包含 x-amz-bypass-governance-retention:true
标头,或将等效参数用于通过 AWS CLI 或 AWS SDK 发出的请求。如果您具有 s3:BypassGovernanceRetention
权限,则 S3 控制台会自动将此标头应用于通过 S3 控制台发出的请求。
注意
绕过监管模式不会影响对象版本的依法保留状态。如果某个对象版本已启用依法保留,则依法保留将保持有效,并可阻止覆盖或删除该对象版本的请求。
将对象锁定与 S3 复制结合使用
您可以将对象锁定与 S3 复制结合使用,以便跨 S3 存储桶,对锁定对象及其保留元数据启用自动异步复制。这意味着,对于复制的对象,Amazon S3 采用源存储桶的对象锁定配置。换句话说,如果源存储桶已启用对象锁定,则目标存储桶也必须启用对象锁定。如果将对象直接上传到目标存储桶(在 S3 复制之外),它将使用目标存储桶上设置的对象锁定。如果您使用复制功能,则源存储桶中的对象会被复制到目标存储桶。
要在启用了对象锁定的存储桶上设置复制功能,您可以使用 S3 控制台、AWS CLI、Amazon S3 REST API 或 AWS SDK。
注意
将对象锁定与 Amazon S3 清单结合使用
您可以配置 Amazon S3 清单,以便按预定的计划创建 S3 存储桶中对象的列表。对于您的对象,您可以将 Amazon S3 清单配置为包含以下对象锁定元数据:
-
保留截止日
-
保留模式
-
依法保留状态
有关更多信息,请参阅 Amazon S3 清单。
使用对象锁定管理 S3 生命周期策略
对象生命周期管理配置将继续正常应用于受保护的对象,包括实施删除标记。但是,S3 生命周期过期策略无法删除对象的锁定版本。无论对象位于哪个存储类,以及在存储类之间的整个 S3 生命周期转换过程中,都将保持对象锁定。
有关管理对象生命周期的更多信息,请参阅管理存储生命周期。
使用对象锁定管理删除标记
尽管您无法删除受保护的对象版本,但您仍可为该对象创建删除标记。对对象实施删除标记不会删除对象或它的对象版本。但会使 Amazon S3 的行为方式在最大程度上与对象被删除时相似。有关更多信息,请参阅 使用删除标记。
注意
无论基础对象中实施任何保留期限或依法保留,删除标记均不受 WORM 保护。
将 S3 Storage Lens 存储分析功能与对象锁定结合
要查看启用对象锁定的存储字节数和对象计数的指标,您可以使用 Amazon S3 Storage Lens 存储统计管理工具。S3 Storage Lens 存储统计管理工具是一项云存储分析功能,您可以使用它在整个组织范围内了解对象存储的使用情况和活动。
有关更多信息,请参阅 使用 S3 Storage Lens 存储统计管理工具保护您的数据。
要获得指标的完整列表,请参阅 Amazon S3 Storage Lens 存储统计管理工具指标词汇表。
将对象上传到启用了对象锁定的桶
如果使用对象锁定为某个对象配置了保留期,则任何上传该对象的请求都需要 Content-MD5
标头。MD5 摘要是一种在将对象上传到存储桶后验证对象完整性的方法。上传对象后,Amazon S3 会计算对象的 MD5 摘要,并将其与您提供的值进行比较。只有在两个摘要匹配的情况下,请求才会成功。S3 控制台会自动添加此标头,但您在使用 PutObject API 时必须指定此标头。
有关更多信息,请参阅 在上传对象时使用 Content-M5。
配置事件和通知
您可以使用 Amazon S3 事件通知,通过 AWS CloudTrail 跟踪在对象锁定配置及数据上进行的访问和更改。有关 CloudTrail 的信息,请参阅《AWS CloudTrail 用户指南》中的什么是 AWS CloudTrail?
您还可以使用 Amazon CloudWatch 根据此数据生成警报。有关 CloudWatch 的信息,请参阅《Amazon CloudWatch 用户指南》中的什么是 Amazon CloudWatch?
使用存储桶策略为保留期限设置限制
您可以使用存储桶策略为存储桶设置允许的最小和最大保留期限。最长保留周期为 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:::/*", "Condition": { "NumericGreaterThan": { "s3:object-lock-remaining-retention-days": "10" } } } ] }
amzn-s3-demo-bucket1
注意
如果您的存储桶是复制配置的目标存储桶,则对于通过使用复制功能创建的对象副本,您可以设置允许的最小和最大保留期限。为此,您必须在存储桶策略中允许 s3:ReplicateObject
操作。有关复制权限的更多信息,请参阅为实时复制设置权限。
有关存储桶的更多信息,请参阅以下主题:
-
《Service Authorization Reference》中的 Actions, resources, and condition keys for Amazon S3。