觀點 · 資訊分享
S3 Object Lock 新增「事件保留」:合約結束後才開始算 5 年,不必再猜一個遙遠的到期日
Amazon S3 Object Lock 支援可變保留:先用事件鎖定保護檔案,等合約結束、稽核完成等事件發生,再放開鎖定,保留期才從那一刻起算。所有區域都能用,不另外收費。
- 發布
- 2026-09-08
- 篇幅
- 約 4 分鐘 · 1,713 字
- 結構
- 7 節 + 4 題常見問題
- 標籤

一句話看懂: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 區域(含中國區域)都不另外收費;物件本身的儲存費用當然照舊。
接著讀
全部觀點 →AWS Kinesis 資料流可以直接存進 S3 了:不用自己寫搬運程式,官方說最多省 6 成Amazon Kinesis Data Streams 新增資料送達功能,串流資料能直接存進一般 S3 儲存桶,或轉成 Iceberg 資料表。AWS 說跟自建搬運流程比,送達成本最多省 6 成。閱讀 →Amazon S3 不用再等 30 天:檔案建立當天,就能轉進便宜最多 4 成的 Standard-IAAWS 讓 S3 生命週期規則可以在檔案建立後 0 天就轉進 Standard-IA 與 One Zone-IA,不必先在 Standard 放滿 30 天。但 IA 的 30 天最低計費、取回費與 128 KB 的規矩都還在。閱讀 →AWS 推出 ECS Gateway:容器服務的對外入口交給 AWS 代管,25 個服務共用一台負載平衡器AWS 推出 ECS Gateway,負載平衡器、憑證、安全群組都由 ECS 自動建立與回收,最多 25 個服務共用一台 ALB。Gateway 本身不收費,只付底層資源的錢。閱讀 →