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

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

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

使用限制

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

  • 桶级别锁设置后,默认 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天 的桶级别锁后,又在 2023年06月28日 修改了该 Bucket 的的保护周期为 40天。您在不同时间上传了 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年07月10日 24:00:00

    test_file3.txt

    2023年07月01日 00:00:00

    2023年08月10日 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

    说明

    对象版本锁设置后,是对后续上传的对象生效。test_file1.txt 上传的时间早于对象版本锁设置的时间,因此该保留策略对其不生效。

  • 示例四

    假设您在 2023年06月01日 为您账号下的某个 Bucket 创建了保护周期为 30天 的对象版本锁后,又在 2023年06月18日 修改了该 Bucket 的的保护周期为 40天。您在不同时间上传了 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月30日 24:00:00

    说明

    对象版本锁设置后,是对后续上传的对象生效。test_file1.txt 上传的时间早于对象版本锁设置的时间,因此该保留策略对其不生效。

基本操作

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

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

console main

启用 WORM

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

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

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

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

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

      bucket worm3
      说明
      • 此处设置的 对象版本锁 是一个默认保留配置,后续上传的对象均使用该默认配置进行保护。

      • 如需差异化的来指定对象的保留策略,您可以通过 API 携带相应的请求头来上传对象。

    • 参数说明

      参数名称 说明

      数据保留级别

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

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

      • 推荐使用 桶级别锁

      数据保留时间

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

      • 设置 桶级别锁 且已 锁定 时,对于已在保护期内的数据,用户可延长其保留时间。

      • 设置 桶级别锁 且未 锁定 时,对于已在保护期内的数据,用户可以延长或缩短数据保留时间。

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

      数据保留模式

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

      • 治理模式 下,对于已在保护期内的数据,可以修改数据保留模式为 合规模式,还可以延长或缩短其保留时间。

      • 合规模式 下,对于已在保护期内的数据,不可以修改数据保留模式,可以延长但不能缩短其保留时间。

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

    bucket worm4

修改保留策略

操作如下。

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

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

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

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

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

删除保留策略

Bucket 的 WORM 功能一旦开启后,就不能取消。WORM 作为 Bucket 的设置项,只能随 Bucket 的删除而删除。

若您的 Bucket 在开启 WORM 功能一段时间后,由于业务需要想要关闭 WORM 功能,即删除保留策略,但又需要保留该 Bucket,可以按以下说明进行操作。

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

  2. 删除 Bucket。

  3. 待 Bucket 成功删除后,创建同名 Bucket,以达到关闭 WORM 功能但保留 Bucket 的目的。

相关 API

Bucket WORM API 见 API 文档 WORM 设置

操作 API 说明

设置 Bucket 桶级别锁

PUT Bucket Retention

用于设置 Bucket 桶级别锁的保留策略

修改 Bucket 桶级别锁的保留策略

PUT Bucket Retention

用于修改 Bucket 桶级别锁的保留策略

删除 Bucket 桶级别锁的保留策略

PUT Bucket Retention

用于删除 Bucket 桶级别锁的保留策略

获取 Bucket 的 WORM 策略

GET Bucket Retention

用于获取 Bucket 已设置的 WORM 策略

锁定 Bucket 桶级别锁的保留策略

POST Bucket Retention

用于锁定 Bucket 已设置的桶级别锁的保留策略

设置对象版本锁

PUT ObjectLockConfiguration

用于设置对象版本锁