容器層級寫入一次,讀取許多不可變 Blob 數據的 WORM 原則
容器層級寫入一次,讀取許多 (WORM) 原則是可在容器層級設定的不變性原則類型。 若要深入瞭解 Azure Blob 儲存體 的不可變記憶體,請參閱以寫入一次不可變記憶體儲存業務關鍵 Blob 數據,讀取許多 (WORM) 狀態
可用性
容器層級 WORM (CLW) 原則適用於所有新的和現有的容器。 這些原則支援一般用途 v2、進階區塊 Blob、一般用途 v1(舊版)和 Blob 記憶體 (舊版) 帳戶。
提示
Microsoft 建議將一般用途 v1 帳戶升級至一般用途 v2,讓您可以利用更多功能。 如需升級現有一般用途 v1 儲存體帳戶的詳細資訊,請參閱升級儲存體帳戶。
階層命名空間帳戶支援此功能。 如果已啟用階層命名空間,當 Blob 處於不可變狀態時,您無法重新命名或移動 Blob。 Blob 名稱和目錄結構都提供基本容器層級數據,一旦不可變的原則就緒,就無法修改這些數據。
此功能沒有啟用程式;它會自動可供所有容器使用。 若要深入瞭解如何在新的或現有的容器上設定原則,請參閱 設定容器層級的 WORM 不變性原則。
刪除
容器層級 WORM 原則集的容器必須空白,才能刪除容器。 如果在已啟用階層命名空間的容器上設定了原則,目錄必須空白,才能刪除目錄。
案例
案例 | 禁止的作業 | Blob 保護 | 容器保護 | 帳戶保護 |
---|---|---|---|---|
容器受作用中限時保留原則 (具有容器範圍) 保護和/或有合法保存生效 | 刪除 Blob、放置 Blob1、設定 Blob 中繼資料、放置頁面、設定 Blob 屬性、快照集 Blob、增量複製 Blob、附加區塊2 | 容器中的所有 Blob 對於內容和用戶元數據而言都是固定的。 | 如果容器層級的 WORM 原則生效,容器刪除就會失敗。 | 如果至少有一個 Blob 的容器存在,儲存體 帳戶刪除就會失敗。 |
容器受已到期限時保留原則 (具有容器範圍) 保護,沒有任何合法保存生效 | 放置 Blob1、設定 Blob 中繼資料、放置頁面、設定 Blob 屬性、快照集 Blob、增量複製 Blob、附加區塊2 | 允許刪除作業。 不允許覆寫作業。 | 如果容器中至少有一個 Blob 存在,則無論是否已鎖定或解除鎖定原則,容器刪除作業都會失敗。 | 如果至少有一個容器具有已鎖定限時保留原則,儲存體帳戶刪除會失敗。 解除鎖定的原則不會提供刪除保護。 |
1 Azure 儲存體允許放置 Blob 作業建立新的 Blob。 不允許不可變容器中現有 Blob 路徑上的後續覆寫作業。
2 附加區塊作業僅允許用於已啟用 allowProtectedAppendWrites 或 allowProtectedAppendWritesAll 屬性的原則。
允許受保護的附加 Blob 寫入
附加 Blob 由資料區塊所組成,已針對稽核和記錄案例所需的資料附加作業進行最佳化。 根據設計,附加 Blob 只允許將新區塊新增至 Blob 的結尾。 不論是否有不變性,基本都不允許修改或刪除附加 Blob 中的現有區塊。 若要深入了解附加 Blob,請參閱關於附加 Blob。
allowProtectedAppendWrites 屬性設定允許將新的區塊寫入附加 Blob,同時維護不變性保護和合規性。 如果啟用此設定,您可以直接在受原則保護的容器中建立附加 Blob,然後使用附加區塊作業繼續將新的數據區塊新增至附加 Blob 的結尾。 只能新增新的區塊,無法修改或刪除任何現有的區塊。 啟用此設定並不會影響區塊 Blob 或分頁 Blob 的不變性行為。
AllowProtectedAppendWritesAll 屬性設定提供與 allowProtectedAppendWrites 屬性相同的許可權,並新增將新區塊寫入區塊 Blob 的能力。 Blob 儲存體 API 不提供讓應用程式直接執行此動作的途徑。 不過,應用程式可以使用 Data Lake Storage Gen2 API 中提供的附加和排清方法來達成此目的。 此外,此屬性可讓 Microsoft 應用程式 (例如 Azure Data Factory) 使用內部 API 來附加資料區塊。 如果您的工作負載相依於上述任何工具,您可以使用此屬性,以避免在這些工具嘗試將資料附加至 Blob 時出現錯誤。
在有效保留期間內,附加 Blob 會保持不可變狀態。 由於在附加 Blob 的初始建立之外也可附加新的資料,因此決定保留期間的方式會有些許差異。 有效保留是附加 Blob 上次修改時間與使用者指定保留間隔之間的差異。 因為使用者可以延長保留間隔,所以不可變儲存體會採用使用者所指定保留間隔的最新值,以計算有效的保留期限。
例如,假設使用者建立具有 enableProtectedAppendWrites 屬性且保留間隔為 90 天的以時間為基礎的保留原則。 今天在容器中建立了附加 Blob:logblob1,並在接下來 10 天內繼續將新的記錄新增至附加 Blob,如此一來,logblob1 的有效保留期限便是從今天起算的 100 天 (上次附加時間 + 90 天)。
解除鎖定的時間型保留原則允許 隨時啟用和停用allowProtectedAppendWrites 和 AllowProtectedAppendWritesAll 屬性設定。 鎖定以時間為基礎的保留原則之後, 就無法變更 allowProtectedAppendWrites 和 AllowProtectedAppendWritesAll 屬性設定。
限制
對於記憶體帳戶,具有固定原則的容器數目上限(以時間為基礎的保留或法律保留期)為 10,000。
針對容器,任何一次合法保留標記的數目上限為 10。
合法保存標記的長度下限為 3 個英數字元。 長度上限為 23 個英數位元。
針對容器,原則的持續時間最多會保留 10 個法律保留原則稽核記錄。