MinIO 物件鎖定
概觀
MinIO 物件鎖定(「物件保留」)強制執行一次寫入多次讀取 (WORM) 不可變性,以保護版本化的物件免遭刪除。MinIO 支援基於持續時間的物件保留和無限期法律保留。
MinIO 物件鎖定提供關鍵資料保留合規性,並根據Cohasset Associates的要求,符合 SEC17a-4(f)、FINRA 4511(C) 和 CFTC 1.31(c)-(d) 的要求。
MinIO 物件鎖定是功能和 API 與 AWS S3 相容。此頁面概述了 MinIO 實作的物件鎖定/保留概念。請參閱 AWS S3 文件中的S3 物件鎖定如何運作,以取得其他資源。
您只能在建立儲存桶時啟用物件鎖定,如S3 行為所示。您無法在未啟用鎖定的情況下建立的儲存桶上啟用物件鎖定。然後,您可以隨時設定物件保留規則。物件鎖定需要版本控制,並隱式啟用此功能。
與版本控制的互動
在 WORM 鎖定下持有的物件,在鎖定到期或明確解除之前是不可變的。鎖定是針對每個物件版本進行的,每個版本都是獨立不可變的。
如果應用程式對鎖定的物件執行未版本化的刪除操作,則該操作會產生一個刪除標記。嘗試明確刪除任何 WORM 鎖定的物件都會失敗並產生錯誤。刪除標記不適用於 WORM 鎖定的保護。有關更多資訊,請參閱 S3 文件中關於管理刪除標記和物件生命週期的說明。
例如,假設以下儲存桶預設啟用了GOVERNANCE 模式鎖定。
$ mc ls --versions play/locking-guide
[DATETIME] 29B 62429eb1-9cb7-4dc5-b507-9cc23d0cc691 v3 PUT data.csv
[DATETIME] 32B 78b3105a-02a1-4763-8054-e66add087710 v2 PUT data.csv
[DATETIME] 23B c6b581ca-2883-41e2-9905-0a1867b535b8 v1 PUT data.csv
由於物件鎖定設定,嘗試對 data.csv
的特定版本執行刪除會失敗。
$ mc rm --version-id 62429eb1-9cb7-4dc5-b507-9cc23d0cc691 play/data.csv
Removing `play/locking-guide/data.csv` (versionId=62429eb1-9cb7-4dc5-b507-9cc23d0cc691).
mc: <ERROR> Failed to remove `play/locking-guide/data.csv`.
Object, 'data.csv (Version ID=62429eb1-9cb7-4dc5-b507-9cc23d0cc691)' is
WORM protected and cannot be overwritten
嘗試對 data.csv
執行未版本化的刪除會成功,並為該物件建立一個新的 DeleteMarker
。
$ mc rm play/locking-guide/data.csv
[DATETIME] 0B acce329f-ad32-46d9-8649-5fe8bf4ec6e0 v4 DEL data.csv
[DATETIME] 29B 62429eb1-9cb7-4dc5-b507-9cc23d0cc691 v3 PUT data.csv
[DATETIME] 32B 78b3105a-02a1-4763-8054-e66add087710 v2 PUT data.csv
[DATETIME] 23B c6b581ca-2883-41e2-9905-0a1867b535b8 v1 PUT data.csv
與生命週期管理的互動
MinIO 的物件過期會遵守過期規則涵蓋的物件的所有有效物件鎖定和保留設定。
對於僅針對目前物件版本運作的過期規則,MinIO 會為鎖定的物件建立刪除標記。
對於針對非目前物件版本運作的過期規則,MinIO 僅能在保留期限過後或已明確解除(例如,法律保留)之後,才能使非目前版本過期。
例如,假設以下儲存桶預設啟用了為期 45 天的GOVERNANCE 模式鎖定。
$ mc ls --versions play/locking-guide
[7D] 29B 62429eb1-9cb7-4dc5-b507-9cc23d0cc691 v3 PUT data.csv
[30D] 32B 78b3105a-02a1-4763-8054-e66add087710 v2 PUT data.csv
[60D] 23B c6b581ca-2883-41e2-9905-0a1867b535b8 v1 PUT data.csv
為早於 7 天的目前物件建立過期規則,會導致該物件產生刪除標記。
$ mc ls --versions play/locking-guide
[0D] 0B acce329f-ad32-46d9-8649-5fe8bf4ec6e0 v4 DEL data.csv
[7D] 29B 62429eb1-9cb7-4dc5-b507-9cc23d0cc691 v3 PUT data.csv
[30D] 32B 78b3105a-02a1-4763-8054-e66add087710 v2 PUT data.csv
[60D] 23B c6b581ca-2883-41e2-9905-0a1867b535b8 v1 PUT data.csv
然而,針對早於 7 天的非目前物件的過期規則,僅會在設定的 WORM 鎖定到期後才會生效。由於儲存桶設定了 45 天的 GOVERNANCE
保留期,因此只有 data.csv
的 v1
版本會被解除鎖定,因此可以刪除。
教學
建立啟用物件鎖定的儲存桶
您必須依照 S3 行為在建立儲存桶期間啟用物件鎖定。您可以使用 MinIO 主控台、MinIO mc
CLI,或使用與 S3 相容的 SDK 建立啟用物件鎖定的儲存桶。
選取 MinIO 主控台的儲存桶區段,以存取儲存桶建立和管理功能。從儲存桶清單中選取儲存桶列。您可以使用 搜尋列來篩選清單。

按一下建立儲存桶按鈕,以開啟儲存桶建立模式。切換物件鎖定選取器,以啟用儲存桶上的物件鎖定。

使用 mc mb
命令和 --with-lock
選項,來建立啟用物件鎖定的儲存桶。
mc mb --with-lock ALIAS/BUCKET
設定儲存桶預設物件保留
您可以使用 MinIO 主控台、MinIO mc
CLI,或使用與 S3 相容的 SDK 設定物件鎖定規則(「物件保留」)。
MinIO 支援設定儲存桶預設和每個物件的保留規則。以下範例會設定儲存桶預設保留。如需每個物件的保留設定,請參閱您的首選 SDK 所使用的 PUT
操作說明文件。
選取 MinIO 主控台的儲存桶區段,以存取儲存桶建立和管理功能。您可以使用 搜尋列來篩選清單。

每個儲存桶列都有一個管理按鈕,可開啟該儲存桶的管理檢視。

從保留區段中,選取已啟用。此區段僅適用於已啟用物件鎖定建立的儲存桶。
從設定保留設定模式中,設定所需的儲存桶預設保留設定。
對於保留模式,請選取COMPLIANCE 或 GOVERNANCE。
對於期間,請選取天或年的保留期間單位。
對於保留有效性,設定 MinIO 在指定儲存桶保留模式下保留物件的時間長度。
使用 mc retention set
命令和 --recursive
和 --default
選項,以設定儲存桶的預設保留模式。
mc retention set --recursive --default MODE DURATION ALIAS/BUCKET
將
MODE
取代為 COMPLIANCE 或 GOVERNANCE。將
DURATION
取代為物件鎖定保持有效狀態的期間。將
BUCKET
取代為要在其中設定預設保留規則的儲存桶名稱。
啟用法律保留
您可以使用 MinIO 主控台、MinIO mc
CLI,或使用與 S3 相容的 SDK 來啟用或停用物件的無限期法律保留。
您可以在已根據COMPLIANCE 或 GOVERNANCE 鎖定持有的物件上放置法律保留。即使保留鎖定到期,物件仍會保持在法律保留下的 WORM 鎖定狀態。您或具有必要權限的其他使用者必須明確解除法律保留,才能移除 WORM 鎖定。
物件保留模式
MinIO 實作了以下 S3 物件鎖定模式
模式 |
摘要 |
---|---|
防止非特權使用者執行任何會變更或修改物件或其鎖定設定的操作。 具有儲存桶或物件上的 MinIO 會在設定的保留規則期間過後自動解除鎖定。 |
|
防止任何會變更或修改物件及其鎖定設定的操作。 任何 MinIO 使用者都無法修改物件或其設定,包括 MinIO root 使用者。 MinIO 會在設定的保留規則期間過後自動解除鎖定。 |
治理模式(GOVERNANCE Mode)
在 GOVERNANCE
鎖定下的物件會受到保護,防止非特權使用者進行寫入操作。
GOVERNANCE
鎖定的物件會對鎖定的物件強制執行受管理的不可變性,具有 s3:BypassGovernanceRetention
操作權限的使用者可以修改鎖定的物件、變更保留期限,或完全解除鎖定。繞過 GOVERNANCE
保留期限也需要在請求中設定 x-amz-bypass-governance-retention:true
標頭。
MinIO GOVERNANCE
鎖定在功能上與 S3 GOVERNANCE 模式相同。
合規模式(COMPLIANCE Mode)
在 COMPLIANCE
鎖定下的物件會受到保護,防止所有使用者(包括 MinIO root 使用者)進行寫入操作。
COMPLIANCE
鎖定的物件會對鎖定的物件強制執行完全的不可變性。在設定的保留期限過去之前,您無法變更或移除鎖定。
MinIO COMPLIANCE
鎖定在功能上與 S3 COMPLIANCE 模式相同。
法律保留(Legal Hold)
在法律保留下的物件會受到保護,防止所有使用者(包括 MinIO root 使用者)進行寫入操作。
法律保留是無限期的,並對鎖定的物件強制執行完全的不可變性。只有具有 s3:PutObjectLegalHold
權限的特權使用者才能設定或解除法律保留。
法律保留適用於物件層級。如果您為一組物件(例如儲存桶的內容)啟用法律保留,則該儲存桶中隨後建立的物件不受影響。
法律保留是對 治理模式(GOVERNANCE Mode) 和 合規模式(COMPLIANCE Mode) 保留設定的補充。同時處於法律保留和 GOVERNANCE/COMPLIANCE
保留規則下的物件將保持 WORM 鎖定,直到解除法律保留且規則到期為止。
對於 GOVERNANCE
鎖定的物件,法律保留會防止變更物件,即使使用者具有繞過保留的必要權限。