文件

MinIO 物件鎖定

概觀

MinIO 物件鎖定(「物件保留」)強制執行「一次寫入多次讀取」(WORM) 不可變性,以保護 版本化的物件 免於刪除。MinIO 支援基於持續時間的物件保留無限期法律保留

根據Cohasset Associates的說法,MinIO 物件鎖定提供關鍵的資料保留合規性,並滿足 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 只有在保留期過後已明確解除(例如法律保留)後,才能使非目前的版本到期。

例如,考慮以下預設啟用 GOVERNANCE 模式 鎖定 45 天的儲存桶。

$ 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.csvv1 版本處於未鎖定狀態,因此符合刪除資格。

教學

建立啟用物件鎖定的儲存桶

您必須依照 S3 行為在建立儲存桶時啟用物件鎖定。您可以使用 MinIO 主控台、MinIO mc CLI 或使用 S3 相容的 SDK 建立啟用物件鎖定的儲存桶。

選取 MinIO 主控台的 儲存桶區段以存取儲存桶的建立和管理功能。從儲存桶清單中選取儲存桶列。您可以使用 搜尋列來篩選清單。

MinIO Console Bucket Management

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

MinIO Console Bucket Management

使用 mc mb 命令和 --with-lock 選項來建立啟用物件鎖定的儲存桶。

mc mb --with-lock ALIAS/BUCKET
  • ALIAS 取代為已設定 MinIO 部署的 別名

  • BUCKET 取代為要建立的儲存桶的名稱

設定儲存桶預設物件保留

您可以使用 MinIO 主控台、MinIO mc CLI 或使用 S3 相容的 SDK 來設定物件鎖定規則(「物件保留」)。

MinIO 支援設定儲存桶預設每個物件的保留規則。以下範例設定儲存桶預設保留。如需每個物件的保留設定,請參閱您偏好 SDK 所使用之 PUT 操作的文件。

選取 MinIO 主控台的 儲存桶區段以存取儲存桶的建立和管理功能。您可以使用 搜尋列來篩選清單。

MinIO Console Bucket Management

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

MinIO Console Bucket Management

保留區段中,選取 已啟用。此區段僅適用於建立時啟用物件鎖定的儲存桶。

設定保留設定模式中,設定所需的儲存桶預設保留設定。

  • 對於 保留模式,選取 COMPLIANCEGOVERNANCE

  • 對於 持續時間,選取 的保留持續時間單位。

  • 對於 保留有效性,設定 MinIO 在指定的保留模式下持有該儲存桶物件的時間長度。

使用 mc retention set 命令搭配 --recursive--default 選項來設定儲存桶的預設保留模式。

mc retention set --recursive --default MODE DURATION ALIAS/BUCKET

物件保留模式

MinIO 實作下列 S3 物件鎖定模式

模式

摘要

GOVERNANCE 模式

防止任何非特權使用者執行會改變或修改物件或其鎖定設定的操作。

對儲存桶或物件具有 s3:BypassGovernanceRetention 權限的使用者可以修改物件或其鎖定設定。

MinIO 會在設定的保留規則持續時間過後自動解除鎖定。

COMPLIANCE 模式

防止任何會改變或修改物件或其鎖定設定的操作。

包括 MinIO root 使用者在內的任何 MinIO 使用者都無法修改物件或其設定。

MinIO 會在設定的保留規則持續時間過後自動解除鎖定。

GOVERNANCE 模式

處於 GOVERNANCE 鎖定下的物件受到保護,不會受到非特權使用者的寫入操作。

GOVERNANCE 鎖定物件會對鎖定的物件強制執行受管理的不可變性,其中具有 s3:BypassGovernanceRetention 動作的使用者可以修改鎖定的物件、變更保留期限或完全解除鎖定。略過 GOVERNANCE 保留也需要將 x-amz-bypass-governance-retention:true 標頭設定為請求的一部分。

MinIO 的 GOVERNANCE 鎖定在功能上與 S3 GOVERNANCE 模式相同。

COMPLIANCE 模式

COMPLIANCE 鎖定下的物件會受到保護,所有 使用者(包括 MinIO root 使用者)都無法執行寫入操作。

COMPLIANCE 鎖定的物件會對鎖定的物件強制執行完全的不可變性。您無法在設定的保留期限到期之前變更或移除鎖定。

MinIO 的 COMPLIANCE 鎖定在功能上與 S3 COMPLIANCE 模式相同。