本文內容
Azure Blob 儲存體的不可變儲存體可讓使用者以 WORM (一次寫入,多次讀取) 狀態儲存商務關鍵性資料。 在 WORM 狀態下,您無法在使用者指定的間隔內修改或刪除資料。 您可設定 Blob 資料的永久性原則,以免資料遭覆寫和刪除。 不變性原則包含限時保留原則和合法保存。 如需 Blob 儲存體不變性原則的詳細資訊,請參閱使用不可變儲存體儲存商務關鍵性 Blob 資料 。
不變性原則的範圍可能是個別 Blob 版本或容器。 本文說明如何設定容器層級的不變性原則。 若要了解如何設定版本層級不變性原則,請參閱 設定 Blob 版本的不變性原則 。
注意
在已啟用網路檔案系統 (NFS) 3.0 通訊協定或 SSH 檔案傳輸通訊協定 (SFTP) 的帳戶中,不支援不變性原則。
若要在容器上設定限時保留原則,請使用 Azure 入口網站、PowerShell 或 Azure CLI。 您可以設定介於 1 到 146,000 天之間的容器層級保留原則。
若要使用 Azure 入口網站在容器上設定限時保留原則,請遵循下列步驟:
瀏覽至所需的容器。
選取右側的 [更多] 按鈕,然後選取 [存取原則] 。
在 [不可變的 Blob 儲存體] 區段中,選取 [新增原則] 。
在 [原則類型] 欄位中,選取 [限時保留] ,並指定保留期間 (以天為單位)。
若要建立具有容器範圍的原則,請勿核取 [啟用版本層級不變性] 的 方塊。
選擇是否允許受保護的附加寫入。
[附加 Blob] 選項可讓您的工作負載使用 [附加區塊] 作業,將新的資料區塊新增至附加 Blob 的結尾。
[區塊和附加 Blob] 選項提供與 [附加 Blob] 選項相同的權限,但新增了將新區塊寫入至區塊 Blob 的能力。 Blob 儲存體 API 不提供讓應用程式直接執行此動作的途徑。 不過,應用程式可以使用 Data Lake Storage Gen2 API 中提供的附加和排清方法來達成此目的。 此外,有些 Microsoft 應用程式會使用內部 API 建立區塊 Blob,然後附加於其上。 如果您的工作負載相依於上述任何工具,您可以使用此屬性,以避免在這些工具嘗試將區塊附加至區塊 Blob 時出現錯誤。
若要深入了解這些選項,請參閱允許受保護的附加 Blob 寫入 。
設定不變性原則之後,您會看到其範圍限定於容器:
若要使用 PowerShell 在容器上設定限時保留原則,請呼叫 Set-AzRmStorageContainerImmutabilityPolicy 命令,並提供保留間隔 (以天為單位)。 請記得以您自己的值取代角括號中的預留位置值:
Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-ContainerName <container> `
-ImmutabilityPeriod 10
若要允許受保護的附加寫入,請將 -AllowProtectedAppendWrite
或 -AllowProtectedAppendWriteAll
參數設定為 true
。
AllowProtectedAppendWrite 選項可讓您的工作負載使用 [附加區塊] 作業,將新的資料區塊新增至附加 Blob 的結尾。
AllowProtectedAppendWriteAll 選項提供與 AllowProtectedAppendWrite 選項相同的權限,但新增了將新區塊寫入至區塊 Blob 的能力。 Blob 儲存體 API 不提供讓應用程式直接執行此動作的途徑。 不過,應用程式可以使用 Data Lake Storage Gen2 API 中提供的附加和排清方法來達成此目的。 此外,有些 Microsoft 應用程式會使用內部 API 建立區塊 Blob,然後附加於其上。 如果您的工作負載相依於上述任何工具,您可以使用此屬性,以避免在這些工具嘗試將區塊附加至區塊 Blob 時出現錯誤。
若要深入了解這些選項,請參閱允許受保護的附加 Blob 寫入 。
若要使用 Azure CLI 在容器上設定限時保留原則,請呼叫 az storage container immutability-policy create 命令,並提供保留間隔 (以天為單位)。 請記得以您自己的值取代角括號中的預留位置值:
az storage container immutability-policy create \
--resource-group <resource-group> \
--account-name <storage-account> \
--container-name <container> \
--period 10
若要允許受保護的附加寫入,請將 --allow-protected-append-writes
或 --allow-protected-append-writes-all
參數設定為 true
。
--allow-protected-append-writes 選項可讓您的工作負載使用 [附加區塊] 作業,將新的資料區塊新增至附加 Blob 的結尾。
--allow-protected-append-writes-all 選項提供與 --allow-protected-append-writes 選項相同的權限,但新增了將新區塊寫入至區塊 Blob 的能力。 Blob 儲存體 API 不提供讓應用程式直接執行此動作的途徑。 不過,應用程式可以使用 Data Lake Storage Gen2 API 中提供的附加和排清方法來達成此目的。 此外,有些 Microsoft 應用程式會使用內部 API 建立區塊 Blob,然後附加於其上。 如果您的工作負載相依於上述任何工具,您可以使用此屬性,以避免在這些工具嘗試將區塊附加至區塊 Blob 時出現錯誤。
若要深入了解這些選項,請參閱允許受保護的附加 Blob 寫入 。
修改解除鎖定的保留原則
您可以修改解除鎖定的限時保留原則,以縮短或延長保留間隔,並允許額外的寫入在容器中附加 Blob。 您也可以刪除解除鎖定的原則。
若要在 Azure 入口網站中修改解除鎖定的限時保留原則,請遵循下列步驟:
瀏覽至所需的容器。
選取 [更多] 按鈕,然後選擇 [存取原則] 。
在 [不可變的 Blob 版本] 區段下,找出現有的已解除鎖定原則。 選取 [更多] 按鈕,然後從功能表選取 [編輯] 。
為原則提供新的保留間隔。 您也可以選取 [允許附加其他受保護的項目] ,以允許寫入受保護的附加 Blob。
若要刪除解除鎖定的原則,請選取 [更多] 按鈕,然後選取 [刪除] 。
注意
您可以選取 [啟用版本層級不變性] 複選框來啟用版本層級不變性 原則。 如需有關啟用版本層級不變性原則的詳細資訊,請參閱設定 Blob 版本的不變性原則 。
若要修改解除鎖定的原則,請先藉由呼叫 Get-AzRmStorageContainerImmutabilityPolicy 命令來擷取原則。 接下來,呼叫 Set-AzRmStorageContainerImmutabilityPolicy 命令以更新原則。 包含新的保留間隔 (以天為單位) 和 -ExtendPolicy
參數。 請記得以您自己的值取代角括號中的預留位置值:
$policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container>
Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-ContainerName <container> `
-ImmutabilityPeriod 21 `
-AllowProtectedAppendWriteAll true `
-Etag $policy.Etag `
-ExtendPolicy
若要刪除解除鎖定的原則,請呼叫 Remove-AzRmStorageContainerImmutabilityPolicy 命令。
Remove-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container>
-Etag $policy.Etag
若要使用 Azure CLI 修改解除鎖定的限時保留原則,請呼叫 az storage container immutability-policy extend 命令,並提供新的保留間隔 (以天為單位)。 請記得以您自己的值取代角括號中的預留位置值:
$etag=$(az storage container immutability-policy show \
--account-name <storage-account> \
--container-name <container> \
--query etag \
--output tsv)
az storage container immutability-policy extend \
--resource-group <resource-group> \
--account-name <storage-account> \
--container-name <container> \
--period 21 \
--if-match $etag \
--allow-protected-append-writes-all true
若要刪除解除鎖定的原則,請呼叫 az storage container immutability-policy delete 命令。
鎖定限時保留原則
當您完成測試限時保留原則時,您可以鎖定原則。 鎖定的原則符合 SEC 17a-4(f) 和其他法規合規性。 您可以將鎖定原則的保留間隔延長最多五倍,但是無法縮短。
鎖定原則之後,您就無法將其刪除。 不過,您可以在保留間隔到期之後刪除 Blob。
若要使用 Azure 入口網站來鎖定原則,請遵循下列步驟:
瀏覽至具有已解除鎖定原則的容器。
在 [不可變的 Blob 版本] 區段下,找出現有的已解除鎖定原則。 選取 [更多] 按鈕,然後從功能表選取 [鎖定原則] 。
確認您想要鎖定原則。
若要使用 PowerShell 來鎖定原則,請先呼叫 Get-AzRmStorageContainerImmutabilityPolicy 命令來擷取原則的 ETag。 接下來,呼叫 Lock-AzRmStorageContainerImmutabilityPolicy 命令並傳入 ETag 值以鎖定原則。 請記得以您自己的值取代角括號中的預留位置值:
$policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container>
Lock-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container> `
-Etag $policy.Etag
若要使用 Azure CLI 來鎖定原則,請先呼叫 az storage container immutability-policy show 命令以擷取原則的 ETag。 接下來,呼叫 az storage container immutability-policy lock 命令並傳入 ETag 值以鎖定原則。 請記得以您自己的值取代角括號中的預留位置值:
$etag=$(az storage container immutability-policy show \
--account-name <storage-account> \
--container-name <container> \
--query etag \
--output tsv)
az storage container immutability-policy lock \
--resource-group <resource-group> \
--account-name <storage-account> \
--container-name <container> \
--if-match $etag
合法保存會儲存不可變的資料,直到明確清除合法保存為止。 若要深入了解合法保存原則,請參閱不可變 Blob 資料的合法保存 。
若要使用 Azure 入口網站設定容器的合法保存,請遵循下列步驟:
瀏覽至所需的容器。
選取 [更多] 按鈕,然後選擇 [存取原則] 。
在 [不可變的 Blob 版本] 區段下,選取 [新增原則] 。
選擇 [合法保存] 作為原則類型。
新增一或多個合法保留標籤。
選擇是否允許受保護的附加寫入,然後選取 [儲存] 。
[附加 Blob] 選項可讓您的工作負載使用 [附加區塊] 作業,將新的資料區塊新增至附加 Blob 的結尾。
此設定也會新增將新區塊寫入區塊 Blob 的功能。 Blob 儲存體 API 不提供讓應用程式直接執行此動作的途徑。 不過,應用程式可以使用 Data Lake Storage Gen2 API 中提供的附加和排清方法來達成此目的。 此外,此屬性可讓 Microsoft 應用程式 (例如 Azure Data Factory) 使用內部 API 來附加資料區塊。 如果您的工作負載相依於上述任何工具,您可以使用此屬性,以避免在這些工具嘗試將資料附加至 Blob 時出現錯誤。
若要深入了解這些選項,請參閱允許受保護的附加 Blob 寫入 。
設定不變性原則之後,您會看到其範圍限定於容器:
下圖顯示已設定限時保留原則和合法保存的容器。
若要清除法律保留,請流覽至 [ 存取原則 ] 對話框,然後在原則的操作功能表中,選取 [ 編輯 ]。 然後,刪除原則的所有標籤,以清除保留。
若要使用 PowerShell 在容器上設定合法保存,請呼叫 Add-AzRmStorageContainerLegalHold 命令。 請記得以您自己的值取代角括號中的預留位置值:
Add-AzRmStorageContainerLegalHold -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-Name <container> `
-Tag <tag1>,<tag2>,...`
-AllowProtectedAppendWriteAll true
若要清除合法保存,請呼叫 Remove-AzRmStorageContainerLegalHold 命令:
Remove-AzRmStorageContainerLegalHold -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-Name <container> `
-Tag <tag1>,<tag2>,...
若要使用 PowerShell 在容器上設定合法保存,請呼叫 az storage container legal-hold set 命令。 請記得以您自己的值取代角括號中的預留位置值:
az storage container legal-hold set \
--tags tag1 tag2 \
--container-name <container> \
--account-name <storage-account> \
--resource-group <resource-group> \
--allow-protected-append-writes-all true
若要清除合法保存,請呼叫 az storage container legal-hold clear 命令:
az storage container legal-hold clear \
--tags tag1 tag2 \
--container-name <container> \
--account-name <storage-account> \
--resource-group <resource-group> \
下一步