如何限制服务主体对 ADLS Gen2 中特定文件夹的访问?

How to restrict a Service Principle access to specific folder in ADLS Gen2?

我正在尝试使用服务原则配置 Power BI 与 ADLS Gen2 的连接。我想限制对特定文件夹(和下面的子文件夹)的访问。

看起来服务原则需要添加到容器级别的 'Data Reader' 或 'Data Contributor' RBAC 角色。这会自动授予对容器根目录下整个文件夹的访问权限。

如何限制服务原则对特定文件夹级别的访问?

谢谢

如果要将Service Principle的访问权限限制在特定的文件夹级别,我们可以使用Access Control List来实现。 ACL 使用 ReadWriteExecute 来控制访问。

关于如何使用这些权限来控制访问,请参考document。 例如,如果我们想读取一个文件夹中的文件,我们需要向容器授予安全主体 Execute 权限,并向指向该文件的文件夹层次结构中的每个文件夹授予 Read ] 使用 Azure Storage Explorer.

对文件的权限

但是,请注意,我们不能使用访问控制列表来提供低于 Azure RABC 角色分配授予的级别的访问级别。例如,如果将 Storage Blob Data Contributor 角色分配给服务主体,则无法使用访问控制列表来阻止该服务主体写入目录。所以我建议你在使用ACL控制访问时去掉service principal Azure RABC role assignment。