对象存储支持 WORM 功能,为用户提供两种不同级别锁,来进行数据合规保留的设置。

  • 针对存储空间(Bucket)设置桶级别锁,保留期内任何用户都无法删除和覆盖对象,实现保护数据或满足监管要求的目的。

  • 设置对象版本(Object Version)锁,根据选择的模式受保护的对象版本不被覆盖或删除,此级别可兼容 S3 Object Lock。

使用限制

  • 桶级别锁和版本管理功能互斥。对象版本锁要求同时开启版本管理功能,如 Bucket 未开启版本管理,系统将会自动开启版本管理功能,且后续无法暂停版本管理。

  • 桶级别锁设置后,默认 Bucket 内所有的对象都受保护,在桶级别锁生效期内,任何用户都不能覆盖或者删除对象。

  • 对象版本锁开启并设置默认保护策略后,新上传的对象版本都受保护,受保护的版本不被覆盖或删除,兼容 S3 Object Lock。

  • 在保留策略生效期间,用户可通过设置生命周期规则进行存储类型转化,在保证合规性的前提下,降低存储成本。

规则说明

  • 生效规则

    当 Bucket 启用桶级别锁后,规则已生效,但还需手动对其锁定。

    • 未锁定 时,Bucket 内数据仍受保护,但可以修改和删除规则。如,延长或缩短保留时间,将桶级别锁修改为对象版本锁,删除保留策略使其恢复到开启 WORM 功能前的状态等。

    • 锁定 后,Bucket 内数据受保护,任何用户都不能删除规则,不能将桶级别锁修改为对象版本锁,但能延长保留时间。

    当 Bucket 启用对象版本锁后,还需选择数据的保留模式。不支持删除规则。

    • 选择 治理模式 时,默认后续上传的对象均使用 治理模式,但支持人为修改上传对象为 合规模式,也支持延长或缩短数据保留时间。

    • 选择 合规模式 时,默认后续上传的对象均使用 合规模式,不支持修改上传对象为 治理模式,且只能延长数据保留时间。

  • 删除规则

    • 当 Bucket 启用桶级别锁,且为 未锁定 状态时,支持删除规则操作。

    • 当 Bucket 启用对象版本锁时,不支持删除规则操作。

    • WORM 为 Bucket 的子资源,当删除 Bucket 时,该 Bucket 设置的数据保留规则也将删除。

    • 当 Bucket 内有对象处于保护周期内,那么您将无法删除 WORM 策略,同时也无法删除 Bucket。

    • 当对象保护期满,您可以对当前对象进行删除或修改操作。

  • 规则示例

    • 示例一:

      假设您在 2023年06月01日 为您账号下的某个 Bucket 创建了保护周期为 30天 的桶级别锁。您在不同时间上传了 test_file1.txt、test_file2.txt、test_file3.txt 三个 Object。关于这三个 Object 的具体上传时间以及对应的到期时间说明如下。

      对象名称 上传时间 到期时间

      test_file1.txt

      2023年04月01日 00:00:00

      2023年04月30日 24:00:00

      test_file2.txt

      2023年06月01日 00:00:00

      2023年06月30日 24:00:00

      test_file3.txt

      2023年07月01日 00:00:00

      2023年07月30日 24:00:00

    • 示例二:

      假设您在 2023年06月01日 为您账号下的某个 Bucket 创建了保护周期为 30天 的对象版本锁。您在不同时间上传了 test_file1.txt、test_file2.txt、test_file2.txt 三个 Object。关于这三个 Object 的具体上传时间以及对应的到期时间说明如下。

      对象名称 上传时间 到期时间

      test_file1.txt

      2023年04月01日

      -

      test_file2.txt(版本一)

      2023年06月01日 00:00:00

      2023年06月30日 24:00:00

      test_file2.txt(版本二)

      2023年06月20日 00:00:00

      2023年07月20日 24:00:00

基本操作

本章节介绍如何在 Console 上开启、关闭 WORM 功能以及如何修改 WORM 保留策略。

说明

Console 页面设置的 对象版本锁 为 Bucket 的默认配置。Bucket 启用 对象版本锁 后,后续通过 Console 上传的对象均使用该默认配置进行保护;通过 API 上传的对象,可以通过携带相应的请求头来差异化的指定保留模式与保留时间。

在 Console 页面,点击 产品与服务 > 存储服务 > 对象存储,进入对象存储的主页面,再执行以下操作。

console main

启用 WORM

  1. 进入 QingStor 对象存储的主页面,选择待设置 WORM 的 Bucket,点击 右键 > 设置

    set bucket replication1
  2. 进入 Bucket 设置页面,点击 WORM > 启用

    bucket worm1
  3. 进入 WORM 策略设置页面,根据页面提示信息,填写相关参数后,点击启用按钮。

    • 数据保留级别选择桶级别锁

      bucket worm2
    • 数据保留级别选择对象版本锁

      bucket worm3
    • 参数说明

      参数名称 说明

      数据保留级别

      • 设置 桶级别锁,则存储于当前 Bucket 中的所有数据均受保护。

      • 设置 对象版本锁,则存储于 Bucket 中的历史数据不受保护,后续上传至 Bucket 中的数据受保护。

      • 推荐使用 桶级别锁

      数据保留时间

      用于设置数据受保护的时间,在该期限内,数据不能被删除或修改。

      • 设置 桶级别锁 且已 锁定 时,用户可延长数据保留时间。

      • 设置 桶级别锁 且未 锁定 时,用户可以延长或缩短数据保留时间。

      • 设置 对象版本锁 时,数据保留时间的修改,参考 数据保留模式 的设定。

      数据保留模式

      当设置 对象版本锁 时,需要同时指定数据保留模式。

      • 治理模式 下,对象可以修改数据保留模式为 合规模式,还可以延长或缩短数据保留时间。

      • 合规模式 下,对象不可以修改数据保留模式,可以延长但不能缩短数据保留时间。

  4. 桶级别锁 启用后,还需手动进行 锁定,未锁定时数据仍受保护但可以修改和删除数据合规保留设置。

    bucket worm4

修改保留策略

  • 桶级别锁 未锁定时,可以延长或缩短保留时间;锁定后,可以延长保留时间,但不能缩短保留时间。

  • 对象版本锁 可修改默认保留时间与保留模式,该修改对后续上传的对象版本生效。

操作如下。

  1. 进入 QingStor 对象存储的主页面,选择待修改 WORM 设置的 Bucket,点击 右键 > 设置

    set bucket replication1
  2. 进入 Bucket 设置页面,点击 WORM,进入 WORM 策略设置页面,点击修改

  3. 根据页面提示信息,修改相关参数后,点击确定

删除保留策略

Bucket 的 WORM 功能一旦开启后,就不能取消。WORM 作为 Bucket 的子资源,只能随 Bucket 的删除而删除。详细操作如下。

  1. 待 Bucket 内的对象保护均到期后,逐一删除 Bucket 内对象。

  2. 删除 Bucket。

  3. 待 Bucket 成功删除后,创建同名 Bucket,以达到删除 Bucket 的 WORM 设置。