gpt4 book ai didi

azure - ADLS Gen2 --> 文件夹级别的 ACL

转载 作者:行者123 更新时间:2023-12-03 02:15:38 25 4
gpt4 key购买 nike

我对 ADLS Gen2 权限有疑问

简短描述:我有一个 Gen2 存储帐户并创建了一个容器。

文件夹结构看起来像这样

StorageAccount1
--->Container1
--->Folder1
--->Files 1....n

我还有一位客户的服务主体..现在我必须向客户提供仅对Folder1 的写权限(应该无法删除Folder1 内的文件)

我已在访问控制列表中为服务原则分配了以下权限

Container1 --> Execute    
Folder1 --> Write , Execute

有了这个,客户现在可以将数据放入此文件夹1..但我如何防止他删除其中的任何文件? (我不想使用 SAS )或者除了ACL还有其他方式吗?

请帮忙:)

ACL for ADLSgen2

最佳答案

请检查以下是否可以工作。

  • ACL 是控制对文件应用的访问权限的方法,文件夹级别与其他容器级别不同。
  • 最佳实践是始终使用 (Azure RBAC) 限制访问在存储帐户/容器级别上有几个Azure内置的您可以分配给用户、组、服务主体和托管身份,然后与具有更多限制的 ACL 结合对文件和文件夹级别的控制。

例如:存储 Blob 数据贡献者具有读/写/删除权限。 Assign an Azure role

  • 如果内置角色不能满足您的特定需求组织,您可以创建自己的 Azure custom roles .

Reference

要分配角色,必须为您分配一个具有角色分配写入权限的角色,例如您尝试分配角色的范围内的所有者或用户访问管理员。

创建具有自定义权限的自定义角色。

创建一个新文件 C:\CustomRoles\customrole1.json,如下例所示。在初始角色创建时,该 ID 应设置为 null新ID会自动生成。

{
"Name": "Restrict user from delete operation on Storage",
"ID": null,
"IsCustom": true,
"Description": "This role will restrict the user from delete operation on the storage account. However, customer will be able to see the storage account, container, blob.",

"Actions": [
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/blobServices/containers/read",
"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action"
],

"NotActions": [
"Microsoft.Storage/storageAccounts/blobServices/containers/delete"
],

"DataActions": [
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read",
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write",
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action",
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action"
],

"NotDataActions": [
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete",
],


"AssignableScopes": [

"/subscriptions/dxxxx7-xxxx"
]
}

使用上面的角色定义,通过运行以下 powershell 脚本来创建自定义角色:

New-AzRoleDefinition -InputFile "C:\CustomRoles\customrole1.json"

请参阅下面的引用文献:了解详细信息。

  1. How to restrict the user from upload/download or delete blob instorage account - Microsoft Tech Community
  2. Azure built-in roles - Azure RBAC | Microsoft Docs

同时尝试启用soft delete如果角色具有删除权限,则恢复删除操作。

虽然提到不要使用。以防万一。共享访问签名 (SAS) 可用于限制对 Blob 容器或单个 Blob 的访问。 Blob 存储中的文件夹是虚拟的,而不是真实的文件夹。您可以引用本文提到的建议

引用文献

  1. permissions-are-required-to-recursively-delete-a-directory-and-its-contents
  2. Cannot delete blobs from ADLS gen2 when connected via Private Endpoint - Microsoft Q&A
  3. Authorize with Azure Active Directory (REST API) - Azure Storage | Microsoft Docs

关于azure - ADLS Gen2 --> 文件夹级别的 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71294009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com