WORM
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 对象存储的主页面,再执行以下操作。
启用 WORM
-
进入 QingStor 对象存储的主页面,选择待设置 WORM 的 Bucket,点击 右键 > 设置。
-
进入 Bucket 设置页面,点击 WORM > 启用。
-
进入 WORM 策略设置页面,根据页面提示信息,填写相关参数后,点击启用按钮。
-
数据保留级别选择桶级别锁
-
数据保留级别选择对象版本锁
说明 -
此处设置的
对象版本锁
是一个默认保留配置,后续上传的对象均使用该默认配置进行保护。 -
如需差异化的来指定对象的保留策略,您可以通过 API 携带相应的请求头来上传对象。
-
-
参数说明
参数名称 说明 数据保留级别
-
设置
桶级别锁
,则存储于当前 Bucket 中的所有数据均受保护。 -
设置
对象版本锁
,则存储于 Bucket 中的历史数据不受保护,后续上传至 Bucket 中的数据受保护。 -
推荐使用
桶级别锁
。
数据保留时间
用于设置数据受保护的时间。在该期限内,数据不能被删除或修改。
-
设置
桶级别锁
且已锁定
时,对于已在保护期内的数据,用户可延长其保留时间。 -
设置
桶级别锁
且未锁定
时,对于已在保护期内的数据,用户可以延长或缩短数据保留时间。 -
设置
对象版本锁
时,数据保留时间的修改,参考数据保留模式
的设定。
数据保留模式
当设置
对象版本锁
时,需要同时指定数据保留模式。-
治理模式
下,对于已在保护期内的数据,可以修改数据保留模式为合规模式
,还可以延长或缩短其保留时间。 -
合规模式
下,对于已在保护期内的数据,不可以修改数据保留模式,可以延长但不能缩短其保留时间。
-
-
-
桶级别锁
启用后,还需手动进行锁定
,未锁定时数据仍受保护但可以修改和删除数据合规保留设置。
修改保留策略
操作如下。
-
进入 QingStor 对象存储的主页面,选择待修改 WORM 设置的 Bucket,点击 右键 > 设置。
-
进入 Bucket 设置页面,点击 WORM,进入 WORM 策略设置页面,点击修改。
说明 -
桶级别锁
未锁定时,可以延长或缩短保留时间;锁定后,可以延长保留时间,但不能缩短保留时间。 -
对象版本锁
可修改默认保留时间与保留模式,该修改对后续上传的对象版本生效。
-
-
根据页面提示信息,修改相关参数后,点击确定。
删除保留策略
Bucket 的 WORM 功能一旦开启后,就不能取消。WORM 作为 Bucket 的设置项,只能随 Bucket 的删除而删除。
若您的 Bucket 在开启 WORM 功能一段时间后,由于业务需要想要关闭 WORM 功能,即删除保留策略,但又需要保留该 Bucket,可以按以下说明进行操作。
-
待 Bucket 内的对象保护均到期后,逐一删除 Bucket 内对象。
-
删除 Bucket。
-
待 Bucket 成功删除后,创建同名 Bucket,以达到关闭 WORM 功能但保留 Bucket 的目的。
相关 API
Bucket WORM API 见 API 文档 WORM 设置。
操作 | API | 说明 |
---|---|---|
设置 Bucket 桶级别锁 |
用于设置 Bucket 桶级别锁的保留策略 |
|
修改 Bucket 桶级别锁的保留策略 |
用于修改 Bucket 桶级别锁的保留策略 |
|
删除 Bucket 桶级别锁的保留策略 |
用于删除 Bucket 桶级别锁的保留策略 |
|
获取 Bucket 的 WORM 策略 |
用于获取 Bucket 已设置的 WORM 策略 |
|
锁定 Bucket 桶级别锁的保留策略 |
用于锁定 Bucket 已设置的桶级别锁的保留策略 |
|
设置对象版本锁 |
用于设置对象版本锁 |