觀點 · 資訊分享

S3 Object Lock 新增「事件保留」:合約結束後才開始算 5 年,不必再猜一個遙遠的到期日

Amazon S3 Object Lock 支援可變保留:先用事件鎖定保護檔案,等合約結束、稽核完成等事件發生,再放開鎖定,保留期才從那一刻起算。所有區域都能用,不另外收費。

發布
2026-09-08
篇幅
約 4 分鐘 · 1,713 字
結構
7 節 + 4 題常見問題
標籤
#AWS#Amazon S3#Object Lock#WORM#資料保存
S3 Object Lock 新增「事件保留」:合約結束後才開始算 5 年,不必再猜一個遙遠的到期日

一句話看懂:S3 Object Lock 新增「可變保留」,先把檔案鎖住,等合約結束、稽核完成之類的事件發生後,保留期才從那一刻開始算,不用在寫入時就猜一個到期日。

S3 Object Lock 新增事件保留資訊圖卡:先鎖住檔案,等事件發生再起算保留期,不用預先猜到期日

先用白話講:Object Lock 是什麼?

想像公司有一批合約,法規要求「合約結束後,要再保存 5 年,期間誰都不能銷毀」。問題是:合約什麼時候結束?有的可能續約、有的提前終止、有的跑完全程,簽約當下根本不知道。

S3 Object Lock 就像檔案的防刪鎖:鎖住期間,物件版本不能被刪除或覆寫(也叫 WORM,寫一次、讀多次)。以前這道鎖一定要先填一個「到期日」,所以只能憑空估:寫太近,檔案可能在該保留的時候就被刪掉;寫太遠,就得多付很久的儲存費。

發生什麼事

AWS 在 9 月 8 日宣布,Object Lock 支援可變保留:

  • 先鎖住:在物件上放一個「事件鎖定」並指定保留期長(以日或年計算),鎖定期間物件一直受到保護
  • 事件發生後放開:放開鎖定時,S3 把到期日設為「放開當下加上你指定的期長」,並繼續保護到那一天
  • 跟法務保留不同:法務保留一移除,保護就結束;事件鎖定在放開之後還會依期長繼續保護

以前有哪些做法?

做法 缺點
設一個很遠的到期日(合規模式) 義務結束後還要繼續付儲存費,也沒辦法縮短
設很遠的到期日(治理模式) 可以提早刪,但有相關權限的人也能繞過保護
定期把到期日往後延 要自己維護排程去重新延長

給開發者的技術細節

以 AWS Storage Blog 的範例,每筆合約紀錄寫入時:

aws s3api put-object-retention \
  --bucket amzn-s3-demo-bucket1 \
  --key my-object \
  --retention '{ "Mode": "COMPLIANCE", "EventHold": "ON", "EventHoldDuration": {"Years": 5} }'

合約結束時,放開鎖定:

aws s3api put-object-retention \
  --bucket amzn-s3-demo-bucket1 --key my-object \
  --retention '{"Mode":"COMPLIANCE","EventHold":"OFF"}'
  • 套用方式:單一物件、儲存貯體預設值,或用 S3 批次作業大規模處理
  • 權限控管:新的 IAM 與儲存貯體政策條件鍵,可控制誰能設定或放開鎖定,並要求最短或最長的鎖定期長
  • 稽核:CloudTrail 會記錄所有鎖定操作,S3 Inventory 可以列出各儲存貯體的鎖定狀態
  • 合規評估:官方說這項功能已由 Cohasset Associates 評估,適用於受 SEC Rule 17a-4(f)、FINRA Rule 4511 與 CFTC Regulation 1.31 規範的環境
  • 費用與區域:所有 AWS 區域(含中國區域)都能用,不另外收費

我的看法

多數小型網站和接案專案不會碰到這麼嚴格的保存義務,但如果你幫客戶做的系統涉及合約、病歷、財務憑證、稽核紀錄,這個功能很實用,因為它剛好補上「事件何時結束事先不知道」這個老問題。

不過要特別小心合規模式:官方明講,鎖上之後連 root 使用者都解不開。我會建議先在測試用的儲存貯體用小檔案練習,確認「事件是什麼、什麼時候放開、要保留幾年」都跟法務或會計確認過,再套到正式資料。寫錯一次,可能就是多付好幾年的儲存費,而且沒辦法反悔。

名詞小辭典

  • WORM:Write Once, Read Many,寫入後只能讀、不能改或刪的保護方式。
  • 合規模式(Compliance mode):最嚴格的保護模式,鎖定期間任何人(包含 root)都不能刪除。
  • 治理模式(Governance mode):較寬鬆的模式,有特定權限的人可以繞過保護。
  • 法務保留(Legal hold):因為訴訟等原因暫時凍結資料,移除後保護就結束。

資料來源

常見問題

事件鎖定跟法務保留(legal hold)有什麼不同?
官方說明:法務保留一移除,保護就立刻結束;事件鎖定則是在事件發生、放開鎖定之後,還會依你設定的期長繼續保護,這樣可以符合「事件後再保留一段時間」的要求。
鎖定期間可以刪除檔案嗎?
以合規(COMPLIANCE)模式設定的話,官方 Storage Blog 寫明,包含 root 使用者在內的任何身分都不能刪除該物件版本,也不能縮減保護。設定前請想清楚。
要怎麼設定?
官方範例是用 aws s3api put-object-retention,帶上模式、EventHold 的開關與 EventHoldDuration(以日或年為單位)。事件發生後,再把 EventHold 設成 OFF 即可。也可以設為儲存貯體預設值或用批次作業。
要另外付錢嗎?
官方說明這項功能在所有 AWS 區域(含中國區域)都不另外收費;物件本身的儲存費用當然照舊。
LINE