配置对象锁定(WORM)防止对象被更改或删除
OBS提供WORM(Write Once Read Many)功能,即一次写入多次读取,实现对象在用户指定的时间段内不能被删除和篡改。目前OBS支持桶级和对象级的WORM功能,提供合规模式一种对象锁定模式。
使用场景
OBS提供合规模式的WORM功能,合规模式是指如果您给一个对象应用了WORM,那么任何用户在指定时间内都不能覆盖或删除受保护的对象版本,包括账号中的根用户。
根据作用目标的范围不同,WORM可以分为桶级WORM和对象级WORM。桶级WORM以桶为单位锁定,保护范围覆盖桶中的所有对象。对象级WORM以对象为单位锁定,保护范围仅覆盖与WORM策略绑定的对象。无论是对象级WORM策略还是桶级WORM策略,都要在开启桶级WORM开关后,才能生效,否则不会保护桶内对象。WORM策略只对策略生效之后新上传的对象生效。当对象同时被桶级WORM和对象级WORM覆盖时,优先遵从对象级WORM的保护策略。
注意事项
- 开启了桶级WORM开关,系统将自动开启多版本,并且不允许暂停多版本。WORM保护是基于对象版本号的,配置WORM的版本受到WORM保护,没有配置WORM的版本可正常删除。例如,test.txt 001受到WORM保护。此时再次上传同名文件,产生新的对象版本test.txt 002,test.txt 002并未配置WORM,那么test.txt 002就不受保护可以正常删除。当您下载对象时,不指定版本号下载的是最新对象,也就是test.txt 002。
- 处于保护中的对象不会被生命周期删除,但是能正常进行存储类别转换。受保护的对象不再受保护后,如果满足生命周期过期规则,将会被系统删除。
- 桶级WORM开关一旦打开,则无法为该桶禁用桶级WORM开关 ,也无法暂停桶的版本控制,但可以禁用桶级默认WORM策略。
- 开启桶级WORM开关的桶暂不支持跨区域复制能力。
- 在客户销户、欠费超期情况下,WORM未到期数据会被删除而不做保留。
- 不支持迁移场景。
- WORM不阻止修改对象元数据。
配置桶级WORM
OBS支持通过控制台、API方式配置桶级WORM,不支持通过SDK、OBS Browser+、obsutil方式配置桶级WORM。
暂不配置WORM
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏,单击“概览”,进入“概览”页面。
- 在“基础配置”区域下,单击“WORM保留策略”卡片,系统弹出“配置保留策略”对话框。
- 选择“暂不配置”并单击“确定”。
图2 暂不配置保留策略
延长保留期
配置WORM后,进入对象详情页面,在“版本”页签,可以对对象进行延长保留期操作。系统将阻止在指定时间点前删除受保护的对象版本。
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在“对象”列表,选择待操作的对象,进入对象详情页面。
- 在“版本”页签,显示该对象的所有版本。
- 找到需要延长保留期的对象,单击“更多>延长保留期”,选择时间点。
图3 延长保留期
保留期不支持缩短,仅支持选择延后的指定时间点。
例如:原保留期是2023年3月30日,如果您在2023年3月1日选择延长保留期,那么您可以选择2023年3月31日或以后的日期;如果您在2023年4月1日选择延长保留期,那么您可以选择当天(2023年4月1日)或以后的日期,如果您选择当天日期,在当天24点后该对象会失去WORM策略的保护。
手动彻底删除WORM对象
WORM桶内对象未配置保留策略或者保留策略已过期,可选择对应的版本进行手动删除操作;如果对象版本在保留期内,则无法成功删除。
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 启用“历史版本”开关。
- 勾选需要彻底删除的对象版本,单击搜索栏上方的“彻底删除”。
图4 彻底删除对象版本
- 单击弹窗中的“确定”,完成对象版本的彻底删除。
配置生命周期规则删除WORM对象
配置对象过期删除规则后,WORM桶内对象未配置保留策略或者保留策略已过期,则受规则影响自动被OBS删除,WORM桶内对象如果在保留期内,无法对其执行删除操作。
当桶开启了WORM功能,则“已删除对象”列表不支持对文件夹进行彻底删除操作。如果需要彻底删除文件夹,仅支持配置生命周期规则进行过期删除。
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏,单击“概览”,进入“概览”页面。
- 在左侧导航栏单击“基础配置>生命周期规则”,进入“生命周期规则”界面。
- 单击“创建”,系统弹出如图5所示对话框。
- 配置生命周期管理规则。
基本信息:
- “状态”:选中“启用”,启用本条生命周期规则。
- “规则名称”:用于识别不同的生命周期配置,其长度需不超过255字符。
- “前缀”:可选。
- 填写前缀:满足该前缀的对象将受生命周期规则管理,输入的对象前缀不能包括\:*?"<>|特殊字符,不能以/开头,不能两个/相邻。
- 未填写前缀:桶内所有对象都将受生命周期规则管理。
配置当前版本或历史版本:
对象过期删除天数:勾选后指定在对象最后一次更新后多少天,受规则影响的对象将过期并自动被OBS删除。过期时间必须大于上方存储类别转换时间的最大值。
例如,您于2023年11月7日在OBS中更新了(最后一次更新)以下几个文件:- log/未配置-1.log(注:此文件未配置WORM保留策略)
- log/已过期-1.log(注:此文件配置的WORM保留策略已过期)
- doc/保留期内-1.doc(注:此文件配置的WORM保留策略在2023年11月30日过期)
您于2023年11月10日在OBS中更新了(最后一次更新)以下几个文件:- log/未配置-2.log(注:此文件未配置WORM保留策略)
- log/已过期-2.log(注:此文件配置的WORM保留策略已过期)
- doc/保留期内-2.doc(注:此文件配置的WORM保留策略在2023年11月30日过期)
如果您在2023年11月10日设置前缀为“log”的对象,过期删除的时间设置为一天,可能出现如下情况:
- 11月7日更新的对象“log/未配置-1.log”和“log/已过期-1.log”会在最近一次系统自动扫描后被删除,可能在11月10日当天,也可能在11月11日,这取决于系统的下一次扫描在何时进行。“doc/保留期内-1”不会被删除。
- 11月10日更新的对象“log/未配置-2.log”和“log/已过期-2.log”,每下一次系统扫描均会判断距上一次对象更新是否已满一天。如果已满一天,则在本次扫描时删除;如果未满一天,则会等到下次扫描再判断,直到满一天时删除,一般可能在11月11日或11月12日删除。“doc/保留期内-2”不会被删除。
更多配置生命周期规则详情请参见配置生命周期规则。
- 单击“确定”,完成生命周期规则配置过期删除WORM对象的操作。