我有关注的情况。 Azure Data Lake Gen2 已设置。 单个容器有 2 个文件夹。(文件夹 1、文件夹 2) 我已经设置了 Data Lake gen2 并启用了 smap。 我创建了 2 个 smtp 本地用户。(user1, user2)
我的目标是.. 要在文件夹 1 上设置 ACL,用户 1 可以读写,但不能在文件夹 2 上写入。 要在folder2上设置ACL,用户2可以读写但不能在folder1上写入。
下面是使用 azure cmdlet 在 powershell 上执行的内容。
$acl = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $userID -Permission rwx
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl
输出跟随错误。恐怕获取 user1 的 -EntityId 失败。用户名不起作用。此外,命令“ Get-AzStorageLocalUser -ResourceGroupName "myblobstorage" -StorageAccountName "myccount" 中的 SID 失败。还有。
我的目标是.. 在文件夹 1 上设置 ACL,用户 1 可以读写,但不能在文件夹 2 上写入。要在folder2上设置ACL,用户2可以读写但不能在folder1上写入。
根据此MS-Document
Azure Blob 存储的文件和目录级别的
ACL authorization
仍处于 preview
状态,目前只能通过 Azure Portal
启用。这意味着 Azure CLI、PowerShell 或其他本地用户管理工具尚未完全支持 ACL authorization
在更精细的级别(例如文件和目录)控制访问。
在我的环境中,我创建了在门户中启用 SFTP 的本地用户,并通过门户启用了 ACL。
传送门:
现在
user1
只能访问文件夹1。
命令与输出:
PS C:\xxxx> Sftp storage accountname.<localusername>@<storage account name>.blob.core.windows.net
[email protected]'s password:
Connected to venkat8912.blob.core.windows.net.
sftp> ls
mac-tar-cache-exp.png project-structure.png
上面的示例命令将仅显示folder1中的文件。
与您只能为
folder2
创建本地用户访问权限相同。
参考: