首页/数据/备份与容灾速查/S3 Object Lock(WORM)
数据库与云备份56 条

S3 Object Lock(WORM)

对象级防删防改:按保留期(合规 / 治理模式)或法定保留阻止删除与覆盖,用于勒索防护与合规归档;只能在创建桶时启用。

备份与容灾速查数据更新于 2026-10-13

S3 Object Lock 是什么

Object Lock 给对象加一层 WORM(一次写入、多次读取)保护:在保留期内,任何账号都无法删除或覆盖该对象版本。它有两种模式——合规模式(COMPLIANCE)连根账号也无法提前解除,治理模式(GOVERNANCE)允许持有特殊权限的人绕过。用于勒索防护与合规归档时,通常还要配合版本控制与生命周期规则。

基本信息

适用平台AWS S3 及部分兼容实现(MinIO 支持,其他兼容存储能力不一)
启用前提只能在创建桶时开启;普通桶无法事后追加,须新建桶并迁移
依赖关系Object Lock 建立在版本控制之上,开启后版本控制自动启用
两种模式COMPLIANCE 不可提前解除;GOVERNANCE 需 s3:BypassGovernanceRetention 权限才能绕过
另一套机制法定保留(Legal Hold)与保留期互相独立,解除流程要分别设计

典型使用场景

  • 勒索防护:备份副本在保留期内不可删除或加密覆盖,攻击者无法清空历史
  • 合规归档:财务、日志等记录按监管年限锁定,形成可审计的留存证明
  • 防误删兜底:运维脚本出错时对象仍受保护,需等保留期结束才可清理
  • 备份仓储分层:热数据放普通桶,需长期留存的副本单独放入带锁桶
  • 内部审计取证:保留期内的版本与删除操作都可追溯

创建带锁桶

创建带锁桶
# Object Lock 只能在创建桶时启用,需同时指定区域
aws s3api create-bucket --bucket my-worm-bucket \
  --object-lock-enabled-for-bucket --region ap-northeast-1 \
  --create-bucket-configuration LocationConstraint=ap-northeast-1
# 查看桶的锁配置
aws s3api get-object-lock-configuration --bucket my-worm-bucket

桶默认保留配置 lock.json

桶默认保留配置 lock.json
# 默认保留配置:写入对象自动受合规模式保护 30 天
{
  "ObjectLockEnabled": "Enabled",
  "Rule": {
    "DefaultRetention": {
      "Mode": "COMPLIANCE",
      "Days": 30
    }
  }
}

应用配置与单对象保留

应用配置与单对象保留
# 把默认保留规则应用到桶
aws s3api put-object-lock-configuration --bucket my-worm-bucket \
  --object-lock-configuration file://lock.json
# 上传时直接指定该对象的保留期(覆盖默认配置)
aws s3api put-object --bucket my-worm-bucket --key db/full-20261013.bak \
  --body ./full.bak --object-lock-mode COMPLIANCE \
  --object-lock-retain-until-date 2027-10-13T00:00:00Z

两种模式对照

模式能否提前解除适用判断
COMPLIANCE不能,保留期内连根账号也不行监管留证、勒索防护等不能妥协的场景
GOVERNANCE持有特殊权限者可绕过内部防误删,仍需保留应急清理通道
Legal Hold与保留期独立,解除需专门权限诉讼或调查期间的临时冻结
合规模式不可逆:保留期设得过长会锁死存储成本,过短则防护不足。上线前按合规要求算清年限,并预留成本预算。
带锁桶里对象的删除只会生成删除标记(因版本控制开启),真正清理要等保留期结束后按版本显式删除;生命周期规则可自动处理到期版本。

易错点

  • 普通桶想补 Object Lock:无法事后开启,只能新建桶并迁移数据,规划时要提前决定
  • 保留期设置过长:对象在锁定期内无法删除,存储成本被长期锁定且无法回收
  • 把治理模式当合规模式用:具备绕过权限的人仍可删除,勒索场景下保护力不足
  • 忽略 Legal Hold 与保留期的区别:以为解除保留期就万事大吉,对象仍被法定保留卡住

数据来源与参考

  • AWS 文档(S3 Object Lock)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌