一次写入多次读取
对象锁定是对象存储里的合规留存机制:给某个对象版本设定保留期限,在期限届满之前任何人也无法删除或覆盖它,即便握着最高权限也一样。它把「数据不会被篡改」从制度条款变成技术约束,因此常用于满足金融、医疗、审计等领域的留存要求。锁定作用在具体版本上,所以必须与版本控制配合使用。
基本信息
| 适用平台 | 兼容 S3 的对象存储,需桶开启版本控制 |
|---|---|
| 两种模式 | 合规模式不可绕过;治理模式可被特殊权限者绕过 |
| 两个维度 | 保留期限(到期自动解除)与法律保留(需人工解除) |
| 作用粒度 | 单个对象版本 |
典型使用场景
- 财务与交易凭证留存:法规要求期限内原始记录不可删改
- 审计日志固化:防止内部人员为掩盖操作而删除日志
- 勒索软件防护:备份副本在保留期内无法被加密或清除
- 证据链保存:版本与时间戳一并留存,供事后取证
- 合规检查:把留存要求直接落到存储配置而不是操作规范
配置思路
配置思路
# 1) 桶必须先开启版本控制
aws s3api put-bucket-versioning --bucket demo-bucket --versioning-configuration Status=Enabled
# 2) 再启用对象锁定能力(部分实现要求在创建桶时即开启,以官方文档为准)
# 3) 上传时带保留声明,例如指定合规模式与保留天数
# x-amz-object-lock-mode: COMPLIANCE
# x-amz-object-lock-retain-until-date: 2027-01-01T00:00:00Z
# 4) 也可对已存在的版本单独设置保留期
# 5) 到期后按需清理,需要显式删除具体版本两种锁定模式对比
| 模式 | 谁能提前解除 | 适用场景 |
|---|---|---|
| 合规模式 | 无人可以,包括管理账号 | 强合规留存,要求绝对不可删改 |
| 治理模式 | 具备特殊权限者可绕过 | 日常防误删,需要保留运维退路 |
| 保留期限 | 到期自动解除,无需操作 | 有明确法规期限的数据 |
| 法律保留 | 必须人工解除 | 诉讼或调查期间需无限期保留 |
落地注意事项
- 先确认保留期限的法律依据,期限设得过长会长期占用容量
- 启用锁定后桶的删除策略要重新设计,删除请求会被明确拒绝
- 治理模式虽可绕过,但绕过权限应交由独立账号管理并留有审批记录
- 与生命周期策略配合时注意先后顺序,锁定中的版本不会被过期规则清理
- 定期核对锁定对象的到期时间,避免到期后数据长期无人处理
对象锁定只保证「不被删改」,不保证「可读」:密钥管理策略若配置不当,数据在保留期内也可能读不出来,因此密钥与锁定要一起规划。
合规模式下保留期一旦设置就无法缩短或撤销,写错期限意味着这批数据在到期前无法释放容量,配置前务必核对日期与时区。