gpt4 book ai didi

Azure Data Lake Gen 2 默认访问控制列表未应用于新文件

转载 作者:行者123 更新时间:2023-12-03 00:02:46 26 4
gpt4 key购买 nike

Azure Data Lake Gen 2 有两个级别的访问控制;基于角色的访问控制 (RBAC) 和访问控制列表 (ACL)。 RBAC在容器级别起作用,ACL可以在目录和文件级别起作用。为了使目录的子对象继承父级的 ACL,需要将“默认”权限指定为与父级的访问权限相同。

参见:https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-access-control#default-permissions-on-new-files-and-directories

我的问题是,我发现子目录继承其父级的ACL,但子文件却没有。

我的步骤是这样的:

  1. 创建一个 AAD 群组,例如“消费者”
  2. 在 Microsoft Azure 存储资源管理器中,创建一个新目录(“foo”),右键单击“foo”,选择“管理访问”,选择“添加”,将“消费者”组添加到列表中,选中 [x]使用 [x] 读取和 [x] 执行进行访问。使用 [x] 读取和 [x] 执行检查 [x] 默认值。
  3. 编写一个 Azure 函数,将 blob 从容器复制到具有托管访问权限的容器中,例如“foo/dataset/2020/05/myblob.csv”。
  4. 深入目录; “dataset”目录与“foo”具有相同的 ACL,“2020”和“05”也是如此。但“myblob.csv”的 ACL 中根本不包括“Consumers”组。

这是意外的行为还是我在这里错过了一些基本的东西?

这似乎是函数或函数中使用的 Azure Data Lake Gen 2 SDK (C#) 的问题。

使用 Azure 存储资源管理器,当我在已添加“消费者”组的目录下手动添加文件时,它会应用预期的 ACL。当我添加包含文件的目录时,它也可以工作 - 子目录中的文件和子目录都具有预期的 ACL。

谢谢

[编辑]这与使用C# SDK写入文件时的umask有关吗?我是否需要覆盖默认掩码以允许文件继承其父级的权限? https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-access-control#the-mask

[edit2] 我认为这与使用 DataLakeFileClient.Rename 来“移动”blob 有关。我怀疑该 blob 保留其原始 ACL,而不是从其新父级继承 ACL。编写测试...

最佳答案

使用 Azure 存储资源管理器设置权限。并使用“传播访问列表”功能来设置适当的权限。

关于Azure Data Lake Gen 2 默认访问控制列表未应用于新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62183885/

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