仅通过 ACL(无 RBAC)授予对 Azure Data Lake Gen2 Access 的访问权限

Grant access to Azure Data Lake Gen2 Access via ACLs only (no RBAC)

我的目标是在目录级别限制对 Azure Data Lake Gen 2 存储的访问(根据 Microsoft 的承诺,这应该是可能的)。

我在第 2 代数据湖容器中有两个目录 datasensitive。对于特定用户,我想授予对目录 data 的读取权限并阻止对目录 sensitive 的任何访问。

沿着 documentation 我删除了该用户的所有 RBAC 分配(在存储帐户和数据湖容器上),这样我就没有继承的目录读取权限。然后,我为该用户向 data 目录添加了一个 Read-ACL 语句。

我的期望:

现实: 当我尝试从数据目录下载文件时,我得到 403 ServiceCode=AuthorizationPermissionMismatch

 az storage blob directory download -c containername -s data --account-name XXX --auth-mode login -d "./download" --recursive


RESPONSE Status: 403 This request is not authorized to perform this operation using this permission.

我希望这应该有效。否则,我只能通过分配 Storage Blob Reader 角色来授予访问权限,但这适用于容器中的所有目录和文件,并且不能被 ACL 语句覆盖。我这里有什么问题吗?

根据我的研究,如果您想授予安全主体对文件的读取权限,我们需要向安全主体授予容器的执行权限,以及文件夹层次结构中导致文件。更多详情,请参考document