Skip to content

Commit ee89ec4

Browse files
author
Jill Grant
authored
Merge pull request #290600 from normesta/gen2
Gen2 content refresh
2 parents 466b7f5 + 5bdfc7b commit ee89ec4

33 files changed

+153
-208
lines changed

articles/storage/blobs/TOC.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,8 +1387,6 @@ items:
13871387
href: data-lake-storage-events.md
13881388
- name: Use with other Azure services
13891389
href: data-lake-storage-integrate-with-services-tutorials.md
1390-
- name: Use with Azure services
1391-
href: data-lake-storage-integrate-with-services-tutorials.md
13921390
- name: Reference
13931391
items:
13941392
- name: Blob Storage APIs

articles/storage/blobs/create-data-lake-storage-account.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: normesta
66

77
ms.topic: how-to
88
ms.author: normesta
9-
ms.date: 03/09/2023
9+
ms.date: 11/15/2024
1010
ms.service: azure-data-lake-storage
1111
---
1212

articles/storage/blobs/data-lake-storage-abfs-driver.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: normesta
77
ms.topic: conceptual
88
ms.author: normesta
99
ms.reviewer: jamesbak
10-
ms.date: 03/09/2023
10+
ms.date: 11/15/2024
1111
ms.service: azure-data-lake-storage
1212
---
1313

articles/storage/blobs/data-lake-storage-access-control-model.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: normesta
66

77
ms.service: azure-data-lake-storage
88
ms.topic: conceptual
9-
ms.date: 04/24/2023
9+
ms.date: 11/26/2024
1010
ms.author: normesta
1111
ms.custom: engagement-fy23
1212
---
@@ -21,7 +21,7 @@ Data Lake Storage supports the following authorization mechanisms:
2121
- Attribute-based access control (Azure ABAC)
2222
- Access control lists (ACL)
2323

24-
[Shared Key and SAS authorization](#shared-key-and-shared-access-signature-sas-authorization) grants access to a user (or application) without requiring them to have an identity in Microsoft Entra ID. With these two forms of authentication, Azure RBAC, Azure ABAC, and ACLs have no effect.
24+
Shared Key, account SAS, and service SAS authorization grants access to a user (or application) without requiring them to have an identity in Microsoft Entra ID. With these forms of authentication, Azure RBAC, Azure ABAC, and ACLs have no effect. ACLs can be applied to user delegated SAS tokens because those tokens are secured with Microsoft Entra credentials. See [Shared Key and SAS authorization](#shared-key-and-shared-access-signature-sas-authorization).
2525

2626
Azure RBAC and ACL both require the user (or application) to have an identity in Microsoft Entra ID. Azure RBAC lets you grant "coarse-grain" access to storage account data, such as read or write access to **all** of the data in a storage account. Azure ABAC allows you to refine RBAC role assignments by adding conditions. For example, you can grant read or write access to all data objects in a storage account that have a specific tag. ACLs let you grant "fine-grained" access, such as write access to a specific directory or file.
2727

@@ -131,11 +131,9 @@ By using groups, you're less likely to exceed the maximum number of role assignm
131131

132132
## Shared Key and Shared Access Signature (SAS) authorization
133133

134-
Azure Data Lake Storage also supports [Shared Key](/rest/api/storageservices/authorize-with-shared-key) and [SAS](../common/storage-sas-overview.md?toc=/azure/storage/blobs/toc.json) methods for authentication. A characteristic of these authentication methods is that no identity is associated with the caller and therefore security principal permission-based authorization cannot be performed.
134+
Azure Data Lake Storage also supports [Shared Key](/rest/api/storageservices/authorize-with-shared-key) and [SAS](../common/storage-sas-overview.md?toc=/azure/storage/blobs/toc.json) methods for authentication.
135135

136-
In the case of Shared Key, the caller effectively gains 'super-user' access, meaning full access to all operations on all resources including data, setting owner, and changing ACLs.
137-
138-
SAS tokens include allowed permissions as part of the token. The permissions included in the SAS token are effectively applied to all authorization decisions, but no additional ACL checks are performed.
136+
In the case of Shared Key, the caller effectively gains 'super-user' access, meaning full access to all operations on all resources including data, setting owner, and changing ACLs. ACLs don't apply to users who use Shared Key authorization because no identity is associated with the caller and therefore security principal permission-based authorization cannot be performed. The same is true for shared access signature (SAS) tokens except when a user delegated SAS token is used. In that case, Azure Storage performs a POSIX ACL check against the object ID before it authorizes the operation as long as the optional parameter suoid is used. To learn more, see [Construct a user delegation SAS](/rest/api/storageservices/create-user-delegation-sas#construct-a-user-delegation-sas).
139137

140138
## Next steps
141139

articles/storage/blobs/data-lake-storage-access-control.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: normesta
66

77
ms.service: azure-data-lake-storage
88
ms.topic: conceptual
9-
ms.date: 06/06/2024
9+
ms.date: 11/15/2024
1010
ms.author: normesta
1111
ms.reviewer: jamesbak
1212
ms.devlang: python
@@ -229,9 +229,19 @@ def access_check( user, desired_perms, path ) :
229229

230230
### The mask
231231

232-
As illustrated in the Access Check Algorithm, the mask limits access for named users, the owning group, and named groups.
232+
The mask applies only to the ACL entry of a named user, named group, and the owning group. The mask specifies which of the permissions in the ACL entry are used to authorize access. These applied permissions are called the _effective_ permissions of the ACL entry. All other permissions in the ACL entry are ignored. By using the mask, you can establish an upper limit on permission levels.
233233

234-
For a new Data Lake Storage container, the mask for the access ACL of the root directory ("/") defaults to **750** for directories and **640** for files. The following table shows the symbolic notation of these permission levels.
234+
The mask may be specified on a per-call basis. This allows different consuming systems, such as clusters, to have different effective masks for their file operations. If a mask is specified on a given request, it completely overrides the default mask.
235+
236+
### The sticky bit
237+
238+
The sticky bit is a more advanced feature of a POSIX container. In the context of Data Lake Storage, it is unlikely that the sticky bit will be needed. In summary, if the sticky bit is enabled on a directory, a child item can only be deleted or renamed by the child item's owning user, the directory's owner, or the Superuser ($superuser).
239+
240+
The sticky bit isn't shown in the Azure portal. To learn more about the sticky bit and how to set it, see [What is the sticky bit Data Lake Storage?](/troubleshoot/azure/azure-storage/blobs/authentication/adls-gen2-sticky-bit-403-access-denied#what-is-the-sticky-bit-in-adls-gen2).
241+
242+
## Default permissions of the root directory
243+
244+
For a new Data Lake Storage container, the access ACL of the root directory ("/") defaults to **750** for directories and **640** for files. The following table shows the symbolic notation of these permission levels.
235245

236246
|Entity|Directories|Files|
237247
|--|--|--|
@@ -241,14 +251,6 @@ For a new Data Lake Storage container, the mask for the access ACL of the root d
241251

242252
Files do not receive the X bit as it is irrelevant to files in a store-only system.
243253

244-
The mask may be specified on a per-call basis. This allows different consuming systems, such as clusters, to have different effective masks for their file operations. If a mask is specified on a given request, it completely overrides the default mask.
245-
246-
### The sticky bit
247-
248-
The sticky bit is a more advanced feature of a POSIX container. In the context of Data Lake Storage, it is unlikely that the sticky bit will be needed. In summary, if the sticky bit is enabled on a directory, a child item can only be deleted or renamed by the child item's owning user, the directory's owner, or the Superuser ($superuser).
249-
250-
The sticky bit isn't shown in the Azure portal. To learn more about the sticky bit and how to set it, see [What is the sticky bit Data Lake Storage?](/troubleshoot/azure/azure-storage/blobs/authentication/adls-gen2-sticky-bit-403-access-denied#what-is-the-sticky-bit-in-adls-gen2).
251-
252254
## Default permissions on new files and directories
253255

254256
When a new file or directory is created under an existing directory, the default ACL on the parent directory determines:

articles/storage/blobs/data-lake-storage-acl-azure-portal.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: normesta
66

77
ms.service: azure-data-lake-storage
88
ms.topic: how-to
9-
ms.date: 03/09/2023
9+
ms.date: 11/26/2024
1010
ms.author: normesta
1111
---
1212

@@ -66,7 +66,7 @@ To learn about how to use ACLs and Azure roles together, see [Access control mod
6666
> [!NOTE]
6767
> We recommend that you create a security group in Microsoft Entra ID, and then maintain permissions on the group rather than for individual users. For details on this recommendation, as well as other best practices, see [Access control model in Azure Data Lake Storage](data-lake-storage-access-control-model.md).
6868
69-
8. To manage the *default ACL*, select the **default permissions** tab, and then select the **Configure default permissions** checkbook.
69+
8. To manage the *default ACL*, select the **default permissions** tab, and then select the **Configure default permissions** checkbox.
7070

7171
> [!TIP]
7272
> A default ACL is a template of an ACL that determines the access ACLs for any child items that are created under a directory. A blob doesn't have a default ACL, so this tab appears only for directories.

articles/storage/blobs/data-lake-storage-acl-cli.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: normesta
77

88
ms.service: azure-data-lake-storage
99
ms.topic: how-to
10-
ms.date: 06/09/2023
10+
ms.date: 11/26/2024
1111
ms.author: normesta
1212
ms.reviewer: prishet
1313
ms.devlang: azurecli
@@ -32,17 +32,15 @@ ACL inheritance is already available for new child items that are created under
3232

3333
- One of the following security permissions:
3434

35-
- A provisioned Microsoft Entra ID [security principal](../../role-based-access-control/overview.md#security-principal) that has been assigned the [Storage Blob Data Owner](../../role-based-access-control/built-in-roles.md#storage-blob-data-owner) role, scoped to the target container, storage account, parent resource group, or subscription..
35+
- A provisioned Microsoft Entra ID [security principal](../../role-based-access-control/overview.md#security-principal) that has been assigned the [Storage Blob Data Owner](../../role-based-access-control/built-in-roles.md#storage-blob-data-owner) role, scoped to the target container, storage account, parent resource group, or subscription.
3636

3737
- Owning user of the target container or directory to which you plan to apply ACL settings. To set ACLs recursively, this includes all child items in the target container or directory.
3838

39-
- Storage account key.
40-
4139
## Ensure that you have the correct version of Azure CLI installed
4240

4341
1. Open the [Azure Cloud Shell](../../cloud-shell/overview.md), or if you've [installed](/cli/azure/install-azure-cli) the Azure CLI locally, open a command console application such as Windows PowerShell.
4442

45-
2. Verify that the version of Azure CLI that have installed is `2.14.0` or higher by using the following command.
43+
2. Verify that the version of Azure CLI that you have installed is `2.14.0` or higher by using the following command.
4644

4745
```azurecli
4846
az --version
@@ -64,7 +62,7 @@ ACL inheritance is already available for new child items that are created under
6462

6563
To learn more about different authentication methods, see [Authorize access to blob or queue data with Azure CLI](./authorize-data-operations-cli.md).
6664

67-
2. If your identity is associated with more than one subscription, then set your active subscription to subscription of the storage account that will host your static website.
65+
2. If your identity is associated with more than one subscription, and you are not prompted to select the subscription, then set your active subscription to the subscription of the storage account that you want to operate upon. In this example, replace the `<subscription-id>` placeholder value with the ID of your subscription.
6866

6967
```azurecli
7068
az account set --subscription <subscription-id>
@@ -101,7 +99,7 @@ In this example, the owning user has read, write, and execute permissions. The o
10199

102100
## Set ACLs
103101

104-
When you *set* an ACL, you **replace** the entire ACL including all of it's entries. If you want to change the permission level of a security principal or add a new security principal to the ACL without affecting other existing entries, you should *update* the ACL instead. To update an ACL instead of replace it, see the [Update ACLs](#update-acls) section of this article.
102+
When you *set* an ACL, you **replace** the entire ACL including all of its entries. If you want to change the permission level of a security principal or add a new security principal to the ACL without affecting other existing entries, you should *update* the ACL instead. To update an ACL instead of replace it, see the [Update ACLs](#update-acls) section of this article.
105103

106104
If you choose to *set* the ACL, you must add an entry for the owning user, an entry for the owning group, and an entry for all other users. To learn more about the owning user, the owning group, and all other users, see [Users and identities](data-lake-storage-access-control.md#users-and-identities).
107105

@@ -177,7 +175,7 @@ This example updates an ACL entry with write permission.
177175
az storage fs access update-recursive --acl "user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:rwx" -p my-parent-directory/myfile.txt -f my-container --account-name mystorageaccount --auth-mode login
178176
```
179177

180-
To a update the ACL of a specific group or user, use their respective object IDs. For example, `group:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` or `user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`.
178+
To update the ACL of a specific group or user, use their respective object IDs. For example, `group:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` or `user:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`.
181179

182180
> [!NOTE]
183181
> Updating the ACL of a single directory without updating the ACL of child items is not supported by the Azure CLI. To update the ACL of a directory without modifying the ACLs of all child items in that directory, use any of the other supported tools and SDKs. See [How to set ACLs](data-lake-storage-access-control.md#how-to-set-acls).

0 commit comments

Comments
 (0)