You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/storage/blobs/immutable-container-level-worm-policies.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,11 +13,11 @@ ms.author: normesta
13
13
14
14
# Container-level write once, read many (WORM) policies for immutable blob data
15
15
16
-
A container-level write once, read many (WORM) policy is a type of immutability policy that can be set at the container-level.
16
+
A container-level write once, read many (WORM) policy is a type of immutability policy that can be set at the container-level. To learn more about immutable storage for Azure Blob Storage, see [Store business-critical blob data with immutable storage in a write once, read many (WORM) state](immutable-storage-overview.md)
17
17
18
18
## Availability
19
19
20
-
Container-level WORM policies are available for all new and existing containers. These policies are supported for general-purpose v2, premium block blob, general-purpose v1 (legacy), and blob storage (legacy) accounts.
20
+
Container-level WORM (CLW) policies are available for all new and existing containers. These policies are supported for general-purpose v2, premium block blob, general-purpose v1 (legacy), and blob storage (legacy) accounts.
21
21
22
22
> [!TIP]
23
23
> Microsoft recommends upgrading general-purpose v1 accounts to general-purpose v2 so that you can take advantage of more features. For information on upgrading an existing general-purpose v1 storage account, see [Upgrade a storage account](../common/storage-account-upgrade.md).
Copy file name to clipboardExpand all lines: articles/storage/blobs/immutable-version-level-worm-policies.md
+14-15Lines changed: 14 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,27 +1,27 @@
1
1
---
2
2
title: Version-level WORM policies for immutable blob data
3
3
titleSuffix: Azure Storage
4
-
description: Description for version-level WORM goes here.
4
+
description: version-level write once, read many (WORM) policy is a type of immutability policy that can be set at the account, container, or version level.
5
5
services: storage
6
6
author: normesta
7
7
8
8
ms.service: azure-blob-storage
9
9
ms.topic: conceptual
10
-
ms.date: 09/14/2022
10
+
ms.date: 03/26/2024
11
11
ms.author: normesta
12
12
---
13
13
14
14
# Version-level write once, read many (WORM) policies for immutable blob data
15
15
16
-
Something needed here as an introduction.
16
+
A version-level write once, read many (WORM) policy is a type of immutability policy that can be set at the account, container, or version level. To learn more about immutable storage for Azure Blob Storage, see [Store business-critical blob data with immutable storage in a write once, read many (WORM) state](immutable-storage-overview.md).
17
17
18
18
## Availability
19
19
20
-
Version-level immutability policies are supported on the account level for new accounts, and at the container and blob level for new and existing accounts/containers. These policies are supported for both general-purpose v2 and premium block blob accounts. This feature is not supported on hierarchical namespace accounts.
20
+
Version-level immutability (VLW) policies are supported on the account level for new accounts, and at the container and blob level for new and existing accounts/containers. These policies are supported for both general-purpose v2 and premium block blob accounts. This feature isn't supported on hierarchical namespace accounts.
21
21
22
22
## Version dependency
23
23
24
-
Version-level policies require that [blob versioning](versioning-overview.md) is enabled for the storage account. To learn how to enable blob versioning, see [Enable and manage blob versioning](versioning-enable.md). Keep in mind that enabling versioning may have a billing impact. For more information, see the Pricing and billing section in Blob versioning.
24
+
Version-level policies require that [blob versioning](versioning-overview.md) is enabled for the storage account. To learn how to enable blob versioning, see [Enable and manage blob versioning](versioning-enable.md). Keep in mind that enabling versioning may have a billing impact. For more information, see the [Pricing and billing section for Blob Versioning](versioning-overview.md#pricing-and-billing).
25
25
26
26
After versioning is enabled, when a blob is first uploaded, that version of the blob is the current version. Each time the blob is overwritten, a new version is created that stores the previous state of the blob. When you delete the current version of a blob, the current version becomes a previous version and is retained until explicitly deleted. A previous blob version possesses the time-based retention policy that was in effect when the current version became a previous version.
27
27
@@ -33,34 +33,34 @@ To learn how to configure version-level time-based retention policies, see [Conf
33
33
34
34
## Enablement and policy setting
35
35
36
-
Using immutable policies with VLW is a two-step process, including enablement and policy setting.
36
+
Using immutable policies with version-level WORM is a two-step process. First, enable version-level immutability. Then, you can set version-level immutability policies.
37
37
38
-
To set a policy at the account level, the account must be enabled to set VLW policies. This can only happen at account creation time— there is no option to enable VLW for pre-existing accounts.
38
+
To set a policy at the storage account level, you must enable version-level WORM on the storage account. You can do this only at account creation time. There's no option to enable version-level WORM for pre-existing accounts.
39
39
40
40
> [!div class="mx-imgBorder"]
41
41
> 
42
42
43
-
To set a policy at the container level, either the account OR container must be enabled to set VLW policies. To enable a container to set VLW policies, it is recommended that it be turned on at container creation, but a pre-existing container can be migrated from a non-VLW enabled container to a VLW enabled container. If a user chooses not to migrate, they can still always set a CLW policy at the container, but the option to set blob-level policies will not be available.
43
+
To set a policy at the container level, you must enable version-level WORM either on the account OR on the container. To enable a container to set version-level WORM policies, Microsoft recommends that you enable version-level WORM at container creation, but an existing container can be migrated from a non-enabled container to an enabled one. If a user chooses not to migrate, they can still always set a container-level policy at the container, but the option to set blob-level policies won't be available.
44
44
45
45
> [!div class="mx-imgBorder"]
46
46
> 
47
47
48
-
To set a policy at the blob level, either the account or container level must be enabled to set VLW policies. There is no option to allow enablement at the blob level; it must be inherited.
48
+
To set a policy at the blob level, you must enable version-level WORM on either the account or container. There's no option to enable version-level WORM at the blob level; it must be inherited.
49
49
50
50
> [!div class="mx-imgBorder"]
51
51
> 
52
52
53
53
### Migration
54
54
55
-
Existing containers can support version-level immutability but must undergo a migration process first. This process may take some time and isn't reversible. You can migrate 10 containers at a time per storage account. For more information about migrating a container to support version-level immutability, see [Migrate an existing container to support version-level immutability](immutable-policy-configure-version-scope.md#migrate-an-existing-container-to-support-version-level-immutability).
55
+
Existing containers can support version-level immutability but must undergo a migration process first. This process might take some time. Once enabled, version-level WORM support for that container can't be removed. You can migrate 10 containers at a time per storage account. For more information about migrating a container to support version-level immutability, see [Migrate an existing container to support version-level immutability](immutable-policy-configure-version-scope.md#migrate-an-existing-container-to-support-version-level-immutability).
56
56
57
57
### Configure a policy on the current version
58
58
59
59
After you enable support for version-level immutability for a storage account or container, then you have the option to configure a default time-based retention policy for the account or container. When you configure a default time-based retention policy for the account or container and then upload a blob, the blob inherits that default policy. You can also choose to override the default policy for any blob on upload by configuring a custom policy for that blob.
60
60
61
61
If the default time-based retention policy for the account or container is unlocked, then the current version of a blob that inherits the default policy will also have an unlocked policy. After an individual blob is uploaded, you can shorten or extend the retention period for the policy on the current version of the blob or delete the current version. You can also lock the policy for the current version, even if the default policy on the account or container remains unlocked.
62
62
63
-
If the default time-based retention policy for the account or container is locked, then the current version of a blob that inherits the default policy will also have a locked policy. However, if you override the default policy when you upload a blob by setting a policy only for that blob, then that blob's policy will remain unlocked until you explicitly lock it. When the policy on the current version is locked, you can extend the retention interval, but you can't delete the policy or shorten the retention interval.
63
+
If the default time-based retention policy for the account or container is locked, then the current version of a blob that inherits the default policy will also have a locked policy. However, if you override the default policy when you upload a blob by setting a policy only for that blob, then that blob's policy remains unlocked until you explicitly lock it. When the policy on the current version is locked, you can extend the retention interval, but you can't delete the policy or shorten the retention interval.
64
64
65
65
If there's no default policy configured for either the storage account or the container, then you can upload a blob either with a custom policy or with no policy.
66
66
@@ -88,7 +88,7 @@ If the policy on a current version is modified, the policies on existing previou
88
88
89
89
## Deletion
90
90
91
-
Once an account or container is enabled for an immutable policy, it cannot be deleted until it is empty. The main thing to note is that it does not matter if an immutable policy has been set on a VLW account or container, it matters if it is enabled for a policy. Once it is, the account or container must be empty to be deleted.
91
+
Once an account or container is enabled for an immutable policy, it can't be deleted until it's empty. The main thing to note is that it doesn't matter if an immutable policy has been set on a version-level WORM account or container, it matters if it's enabled for a policy. Once it is, the account or container must be empty to be deleted.
92
92
93
93
> [!div class="mx-imgBorder"]
94
94
> 
@@ -97,8 +97,8 @@ Once an account or container is enabled for an immutable policy, it cannot be de
| A blob version is protected by an active retention policy and/or a legal hold is in effect |[Delete Blob](/rest/api/storageservices/delete-blob), [Set Blob Metadata](/rest/api/storageservices/set-blob-metadata), and [Put Page](/rest/api/storageservices/put-page)| The blob version cannot be deleted. User metadata cannot be written.<br>Overwriting a blob with [Put Blob](/rest/api/storageservices/put-blob), [Put Block List](/rest/api/storageservices/put-block-list), or [Copy Blob](/rest/api/storageservices/copy-blob) creates a new version<sup>1</sup>.| Container deletion fails if at least one blob exists in the container, regardless of whether policy is locked or unlocked. | Storage account deletion fails if there is at least one container with version-level immutable storage enabled, or if it is enabled for the account.|
101
-
| A blob version is protected by an expired retention policy and no legal hold is in effect| Set Blob Metadata and Put Page | A blob version is protected by an expired retention policy and no legal hold is in effect|The blob version can be deleted.<br>Overwriting a blob with [Put Blob](/rest/api/storageservices/put-blob), [Put Block List](/rest/api/storageservices/put-block-list), or [Copy Blob](/rest/api/storageservices/copy-blob) creates a new version<sup>1</sup>.| Storage account deletion fails if there is at least one container that contains a blob version with a locked time-based retention policy.<br>Unlocked policies do not provide delete protection.|
100
+
| A blob version is protected by an active retention policy and/or a legal hold is in effect |[Delete Blob](/rest/api/storageservices/delete-blob), [Set Blob Metadata](/rest/api/storageservices/set-blob-metadata), and [Put Page](/rest/api/storageservices/put-page)| The blob version can't be deleted. User metadata can't be written.<br>Overwriting a blob with [Put Blob](/rest/api/storageservices/put-blob), [Put Block List](/rest/api/storageservices/put-block-list), or [Copy Blob](/rest/api/storageservices/copy-blob) creates a new version<sup>1</sup>.| Container deletion fails if at least one blob exists in the container, regardless of whether policy is locked or unlocked. | Storage account deletion fails if there is at least one container with version-level immutable storage enabled, or if it's enabled for the account.|
101
+
| A blob version is protected by an expired retention policy and no legal hold is in effect| Set Blob Metadata and Put Page | A blob version is protected by an expired retention policy and no legal hold is in effect|The blob version can be deleted.<br>Overwriting a blob with [Put Blob](/rest/api/storageservices/put-blob), [Put Block List](/rest/api/storageservices/put-block-list), or [Copy Blob](/rest/api/storageservices/copy-blob) creates a new version<sup>1</sup>.| Storage account deletion fails if there is at least one container that contains a blob version with a locked time-based retention policy.<br>Unlocked policies don't provide delete protection.|
102
102
103
103
<sup>1</sup> Blob versions are always immutable for content. If versioning is enabled for the storage account, then a write operation to a block blob creates a new version, with the exception of the Put Block operation.
104
104
@@ -110,7 +110,6 @@ There can only be 10,000 containers set with unique time-based retention policie
0 commit comments