共用方式為


版本層級寫入一次,讀取許多不可變 Blob 數據的 WORM 原則

版本層級的唯寫多讀(WORM)政策是一種可在帳戶、容器或版本層級設定的不變性規則。 若要深入瞭解 Azure Blob Storage 的不可變儲存,請參閱 使用不可變儲存將關鍵業務的 Blob 資料儲存於一次寫入、多次讀取 (WORM) 狀態

可用性

新帳戶的版本層級不變性(VLW)原則支援包括帳戶層級,且在新及現有帳戶/容器中,支援容器和 Blob 層級的原則。 一般用途 v2 和進階區塊 Blob 帳戶都支援這些原則。 階層命名空間帳戶不支援此功能。

版本相依性

版本層級原則要求為記憶體帳戶啟用 Blob 版本控制 。 若要了解如何啟用 Blob 版本設定,請參閱啟用和管理 Blob 版本設定。 請記住,啟用版本控制可能會影響計費。 如需詳細資訊,請參閱 Blob 版本設定的定價和計費一節

啟用版本控制之後,第一次上傳 Blob 時,該版本即為當前版本。 每次覆寫 Blob 時,都會建立新版本來儲存 Blob 的先前狀態。 當您刪除 Blob 的目前版本時,目前的版本會變成舊版,並保留到明確刪除為止。 先前的 Blob 版本擁有當目前版本變成舊版時生效的時間型保留原則。

如果記憶體帳戶或容器的默認原則生效,則當覆寫作業建立舊版時,新的目前版本會繼承帳戶或容器的默認原則。

每個版本可能只設定一個以時間為基礎的保留原則。 版本可能也設有一個法律保留。

若要瞭解如何設定版本層級的時間型保留原則,請參閱 設定 Blob 版本的不變性原則

啟用和原則設定

使用版本層級 WORM 的不可變政策是分為兩個步驟的過程。 首先,啟用版本層級不變性。 然後,您可以設定版本層級不變性原則。

若要在記憶體帳戶層級設定原則,您必須先在記憶體帳戶上啟用版本層級 WORM。 您只能在帳戶建立時執行此動作。 沒有選項可針對這些已有的帳戶啟用版本層級 WORM。

在帳戶層級設定版本層級不可變儲存策略的圖表。

若要在容器層級設定原則,您必須先在帳戶或容器上啟用版本層級 WORM。

如果您打算在容器上啟用版本層級 WORM,Microsoft建議您在容器建立期間啟用它。 不過,您可以將已啟用非版本層級 WORM 的容器移轉至已啟用版本層級 WORM 的容器。 如果您選擇不移轉容器,您仍然可以在該容器上設定容器層級的WORM原則,但該容器上將無法使用設定 Blob 層級原則的選項。

在容器層級設定版本層級固定記憶體原則的圖表。

若要在 Blob 層級設定原則,您必須在帳戶或容器上啟用版本層級 WORM。 沒有選項可以在 Blob 層級啟用版本層級的 WORM,它必須被繼承。

在 Blob 層級設定版本層級不可變記憶體原則的圖表。

遷移

現有的容器可以支援版本層級不變性,但必須先進行移轉程式。 此過程可能需要一些時間。 啟用之後,就無法移除該容器的版本層級 WORM 支援。 針對一個儲存體帳戶,您一次只能移轉 10 個容器。 如需移轉容器以支援版本層級不變性的詳細資訊,請參閱 移轉現有的容器以支援版本層級不變性

在目前版本上設定原則

啟用記憶體帳戶或容器版本層級不變性支持之後,您可以選擇為帳戶或容器設定預設的時間型保留原則。 當您設定帳戶或容器的默認時間型保留原則,然後上傳 Blob 時,Blob 會繼承該默認原則。 您也可以透過設定該 Blob 的自定義原則,選擇覆寫上傳時任何 Blob 的默認原則。

如果帳戶或容器的默認時間型保留原則已解除鎖定,則繼承默認原則的 Blob 目前版本也會有解除鎖定的原則。 上傳個別 Blob 之後,您可以縮短或延長目前 Blob 版本的原則保留期間,或刪除目前的版本。 您也可以鎖定目前版本的原則,即使帳戶或容器上的默認原則仍保持解除鎖定。

如果帳戶或容器的預設基於時間的保留政策已鎖定,則繼承該預設政策的 Blob 的目前版本也會有鎖定的政策。 不過,如果您在上傳 Blob 時覆寫默認原則,只要設定該 Blob 的原則,該 Blob 的原則就會保持解除鎖定,直到您明確鎖定它為止。 鎖定目前版本的原則時,您可以延長保留間隔,但無法刪除原則或縮短保留間隔。

如果沒有針對記憶體帳戶或容器設定的默認原則,您可以使用自定義原則或沒有原則來上傳 Blob。

如果修改記憶體帳戶或容器上的默認原則,該容器內對象的原則會保持不變,即使這些原則繼承自默認原則也一樣。

下表顯示上傳時,可在 Blob 上設定以時間為基礎的保留原則的各種選項:

帳戶或容器的預設政策狀態 上傳具有預設策略的資料塊 使用自定義原則上傳 Blob 上傳不含原則的 Blob
帳戶或容器的預設原則 (解除鎖定) Blob 會以預設解除鎖定原則上傳 Blob 會以自定義解除鎖定原則上傳 Blob 已上傳但未附有任何政策
帳戶或容器的預設政策(鎖定) Blob 會以預設鎖定的原則上傳 Blob 會以自定義解除鎖定原則上傳 Blob 已上傳但沒有原則
帳戶或容器上沒有默認原則 N/A Blob 會以自訂解鎖策略上傳 Blob 已上傳但未附加任何原則

在先前版本上設定政策

啟用版本設定時,對 Blob 的寫入或刪除作業會建立該 Blob 的新版本,以在作業之前儲存 Blob 的狀態。 根據預設,若目前版本在成為舊版時具備任何生效的時間型保留原則,則這些原則會由舊版繼承。 如果有政策,則新的當前版本會繼承容器上的政策。

如果舊版繼承的原則已解除鎖定,則可以縮短或延長保留間隔,也可以刪除原則。 即使目前版本的原則已解除鎖定,先前版本的原則還是可以鎖定。

如果先前版本繼承的政策已鎖定,則可以延長保留期限。 無法刪除原則,也無法縮短保留間隔。 如果目前版本上未設定任何原則,則舊版不會繼承任何原則。

您可以設定版本的自訂政策。 如果修改了目前版本的原則,則即使原則繼承自目前版本,現有舊版的原則仍會保持不變。

刪除

一旦針對不可變原則啟用帳戶或容器之後,就無法刪除該帳戶或容器,直到它是空的為止。 注意的重點是,無論在版本層級的 WORM 帳戶或容器上是否設定了不可變的政策,本身並不重要,重要的是該政策是否已啟用。 一旦完成,帳戶或容器就必須是空的,才能刪除。

此圖顯示刪除具有版本層級不變性原則之帳戶的作業順序。

情境

情境 禁止的作業 Blob 保護 容器保護 帳戶防護
Blob 版本受到正在執行的保留策略的保護,或法律保留已生效 刪除 Blob設定 Blob Metadata寫入頁面 無法刪除 Blob 版本。 無法寫入使用者元數據。
使用 放置 Blob放置區塊清單複製 Blob 覆寫 Blob 會建立新的第 1 版。
如果容器中至少有一個 Blob 存在,則無論是否已鎖定或解除鎖定原則,容器刪除作業都會失敗。 如果至少有一個容器啟用了版本層級不可變儲存,或該帳戶啟用了不可變儲存,則儲存帳戶刪除會失敗。
Blob 版本受已過期的保留策略保護,且沒有任何法律保留生效。 設定 Blob 元數據和放置頁面 Blob 版本受到已過期的保留政策保護,沒有任何法律保留措施生效。 Blob 版本可被刪除。
使用 放置 Blob放置區塊清單複製 Blob 覆寫 Blob 會建立新的第 1 版。
如果至少有一個容器包含具有鎖定時間型保留原則的 Blob 版本,則記憶體帳戶刪除會失敗。
解除鎖定的原則不會提供刪除保護。

1 Blob 版本的內容始終是不可變的。 如果記憶體帳戶已啟用版本控制,則區塊 Blob 的寫入作業會建立新版本,但 Put Block 作業除外。

限制

一個帳戶中只能有 10,000 個容器設定獨特的時間型保留政策;不過,您可以設定帳戶層級政策,超過 10,000 個容器會自動繼承。

後續步驟