本页面讨论了存储桶锁定功能,该功能可让您配置 Cloud Storage 存储桶的保留政策。此政策用于控制存储桶中的对象必须保留多长时间。该功能还可让您锁定存储桶的保留政策,以永久性防止缩短或移除该政策。
此功能可在 Cloud Storage 上提供不可改变的存储。 结合详细的审核日志记录模式(用于记录 Cloud Storage 请求和响应的详细信息),存储分区锁定可以帮助您满足法规和合规性要求,例如与 FINRA、SEC、CFTC 相关的要求。存储桶锁定还可以帮助您满足某些医疗保健行业的保留法规的要求。
概览
您可以向存储分区添加保留政策以指定保留期限。
设置存储桶保留政策后,只有在存储桶中的对象的存在时间超过保留期限时才能删除或替换这些对象。
该政策可追溯地应用于存储桶中的现有对象以及添加到存储桶的新对象。这与对象保留锁定功能不同,后者可让您按对象定义数据保留要求。
您可以锁定存储桶的保留政策,以永久性对存储桶设置该政策。
锁定政策后,您无法移除该政策或缩短其保留期限。
除非存储桶中的每个对象都达到保留期限,否则您无法删除具有锁定的政策的存储桶。
您可以延长锁定的政策的保留期限。
存储桶保留政策
您可以在创建新存储分区时包含保留政策,也可以将保留政策添加到现有存储分区。为存储桶设置保留政策可确保存储桶中所有当前和未来对象在达到该政策中所定义的存在时间之前,不能被删除或替换。尝试删除或替换其存在时间少于保留期限的对象会失败,并返回 403 - retentionPolicyNotMet
错误。
例如,假设在存储分区有两个对象:对象 A 是一个月前添加的,对象 B 是两年前添加的。如果您向该存储分区应用保留期限为 1 年的保留政策,则无法在将来 11 个月内删除或替换对象 A:它当前的存在时间是 1 个月,必须至少达到 1 年才能被删除或替换。而对象 B 可以被立即删除或替换,因为其存在时间超过了保留期限。如果您决定替换对象 B,则此新版本的对象 B 的存在时间将从 0 年开始重新计算。
为了帮助您跟踪单个对象何时可以被删除,具有保留政策的存储分区中的每个对象都具有保留失效时间的元数据。 此元数据显示对象达到保留期限的日期和时间。
一般注意事项
使用保留政策时,请注意以下事项:
除非存储桶的保留政策被锁定,否则您可以延长、缩短或移除该政策。
对象的可修改元数据不受存储桶的保留政策的约束,即使对象本身不可修改,您也可以修改元数据。
存储桶的保留政策包含有效时间,即保证存储桶中所有对象都符合保留期限的时间。
要查看在具有保留政策的存储分区中可以删除指定对象的最早日期,请查看该对象元数据的保留失效日期部分。
其他功能注意事项
以下是保留政策与其他 Cloud Storage 功能的互动:
在使用对象版本控制的存储桶中,具有未来保留到期日期的有效对象版本仍然可以是非当前版本,并且在您应用保留政策时存储桶中存在的任何版本化对象也受该政策的保护。
如果对象受基于事件的保全保护,则无法将其删除。从对象中移除基于事件的保全后,对象的保留期限会重置。
单个对象可能会受到存储桶的保留政策以及其自己的保留配置的约束。如果一个对象同时受两者的约束,则该对象会一直保留,直到两个保留期限都达到为止。
如果对象未达到保留到期时间,则您无法销毁对锁定存储桶中的对象进行加密的 Cloud Key Management Service 密钥版本。如需了解详情,请参阅用于加密锁定的对象的密钥版本。
您可以使用对象生命周期管理自动删除存储分区中的对象,包括具有锁定政策的存储分区中的对象。 但前提是对象满足保留政策,否则不会根据生命周期规则删除对象。
如果存储桶具有保留政策,则不应执行并行复合上传,因为只有在每个组成部分都达到存储桶的最短保留期限时才能删除这些组成部分。
如果生成的对象会覆盖尚未达到其保留期限的对象,则尝试完成 XML API 分段上传将会失败。
您可以在组织政策中使用保留政策限制条件,要求在创建新存储桶时或为现有存储桶添加/更新保留政策时包含具有特定保留期限的保留政策。
保留期限
保留期限以秒为单位。但为了方便,某些工具(如 Google Cloud 控制台和 Google Cloud CLI)也允许您使用其他时间单位设置和查看保留期限。此类情况适用以下单位转换:
- 一天等于 86400 秒。
- 一个月等于 31 天,2678400 秒。
- 一年等于 365.25 天,31557600 秒。
您可以将最长保留期限设置为 3155760000 秒(100 年)。
对于 gcloud CLI,您可以在指定保留期限时指定整数和单位,其中单位可以是 s
、d
、m
或 y
,分别表示秒、天、月或年。例如,1d43200s
设置保留期限为 1 天 43,200 秒(一天半)。
保留政策锁定
锁定存储桶的保留政策时,您可以永久性防止移除政策或缩短保留期限(但您仍可以延长保留期限)。如果您尝试移除或缩短锁定的存储分区的政策时限,则会收到 400 BadRequestException
错误。保留政策锁定后,您将无法删除存储分区,除非存储分区中的所有对象都达到了保留期限。
锁定存储桶的保留政策是不可逆转的,在使用此功能之前,您应熟知这样做的含义。使用未锁定的政策时,您可以移除该政策,以便在需要时仍然可以删除对象。锁定政策后,您必须删除整个存储桶才能“移除”政策。但是,如果存储桶中的对象未达到其保留期限,则您无法删除存储桶。因此,如需“移除”锁定的政策,您必须等到存储桶中的每个对象都已达到其保留期限,才可以删除存储桶。
此外,当锁定保留政策时,Cloud Storage 会自动为包含该存储分区的项目的 projects.delete
权限应用安全锁。应用此安全锁后,就可防止该项目被删除。要删除该项目,您必须先移除所有此类安全锁。请注意,移除安全锁需要 resourcemanager.projects.updateLiens
权限,该权限是 roles/owner
和 roles/resourcemanager.lienModifier
角色的一部分。
如需了解锁定保留政策如何帮助您的数据符合记录保留规定,请参阅合规性页面。
后续步骤
- 了解如何使用和锁定保留政策。
- 了解对象保留锁定和对象保全,它们提供了保护各个对象免遭删除的方法。
- 了解详细的审核日志记录模式,该模式也可以帮助您满足法规和合规性要求。