为 Azure 文件共享分配共享级权限
为存储帐户启用 Active Directory (AD) 源后,必须配置共享级权限才能访问文件共享。 可通过两种方式分配共享级别权限。 可将这些权限分配给特定的 Microsoft Entra 用户/组,还可以将其作为默认共享级别权限分配给所有已经过身份验证的标识。
重要
对文件共享的完全管理控制权限(包括文件所有权权限)需要使用存储帐户密钥。 基于标识的身份验证不支持完全管理控制。
适用于
文件共享类型 | SMB | NFS |
---|---|---|
标准文件共享 (GPv2)、LRS/ZRS | ||
标准文件共享 (GPv2)、GRS/GZRS | ||
高级文件共享 (FileStorage)、LRS/ZRS |
选择如何分配共享级别权限
Azure 文件共享的共享级权限是为 Microsoft Entra 用户、组或服务主体配置的,而目录和文件级权限是使用 Windows 访问控制列表 (ACL) 强制执行的。 必须将共享级别权限分配给表示应具有访问权限的用户、组或服务主体的 Microsoft Entra 标识。 不支持对仅存在于 Microsoft Entra ID 中的标识(例如 Azure 托管标识 (MSI))进行身份验证和授权。
大多数用户应将共享级别权限分配给特定的 Microsoft Entra 用户或组,然后使用 Windows ACL 在目录和文件级别进行精细访问控制。 这是最严格且最安全的配置。
在以下三种情况下,我们建议使用 默认共享级别权限来允许读者、参与者、提升的参与者、特权参与者或特权读者访问所有经过身份验证的标识:
- 如果你无法将本地 AD DS 同步到 Microsoft Entra ID,则可以使用默认共享级别权限。 通过分配默认共享级别权限可以解决同步要求,因为无需在 Microsoft Entra ID 中为标识指定权限。 然后,可以使用 Windows ACL 对文件和目录强制实施精细权限。
- 绑定到 AD 但未同步到 Microsoft Entra ID 的标识还可以利用默认的共享级别权限。 这可能包括独立托管服务帐户 (sMSA)、组托管服务帐户 (gMSA) 和计算机帐户。
- 使用的本地 AD DS 不会同步到部署了文件共享的 Microsoft Entra ID,而是同步到另一个 Microsoft Entra ID。
- 管理多租户环境时,这种情况很常见。 使用默认共享级别权限可以绕过 Microsoft Entra ID 混合标识相关的要求。 仍可对文件和目录使用 Windows ACL,以强制实施精细权限。
- 你倾向于仅在文件和目录级别使用 Windows ACL 强制实施身份验证。
Azure 文件存储的 Azure RBAC 角色
Azure 文件存储有五个内置 Azure 基于角色的访问控制 (RBAC) 角色,其中一些角色允许向用户和组授予共享级别权限。 如果使用 Azure 存储资源管理器,则还需要读者和数据访问角色才能读取/访问 Azure 文件共享。
注意
由于计算机帐户在 Microsoft Entra ID 中没有标识,因此无法为其配置 Azure RBAC。 但是,计算机帐户可以使用默认共享级别权限访问文件共享。
内置 Azure RBAC 角色 | 描述 |
---|---|
存储文件数据 SMB 共享读取者 | 允许对 Azure 文件共享中的文件和目录进行读取访问。 此角色类似于 Windows 文件服务器上的文件共享读取 ACL。 |
存储文件数据 SMB 共享参与者 | 允许对 Azure 文件共享中的文件和目录进行读取、写入和删除访问。 |
存储文件数据 SMB 共享提升参与者 | 允许读取、写入、删除和修改针对 Azure 文件共享中文件和目录的 ACL。 此角色类似于 Windows 文件服务器上的文件共享更改 ACL。 |
存储文件数据特权参与者 | 通过重写现有 ACL,允许读取、写入、删除和修改 Azure 文件共享中的 ACL。 |
存储文件数据特权读取者 | 通过重写现有 ACL,允许在 Azure 文件共享中读取访问。 |
特定 Microsoft Entra 用户或组的共享级别权限
如果你打算使用特定的 Microsoft Entra 用户或组来访问 Azure 文件共享资源,该标识必须是同时存在于本地 AD DS 和 Microsoft Entra ID 中的混合标识。 例如,假设你在 AD 中具有一个用户为 user1@onprem.contoso.com,并且你已使用 Microsoft Entra Connect 连接同步以 user1@contoso.com 身份同步到 Microsoft Entra ID。要支持此用户访问 Azure 文件存储,必须向 user1@contoso.com 分配共享级权限。 同一理念也适用于组和服务主体。
重要
请通过显式声明操作和数据操作来分配权限,而不是使用通配符 (*) 字符。 如果数据操作的自定义角色定义包含通配符,则将向分配给该角色的所有标识授予访问所有可能的数据操作的权限。 这意味着,也将向所有此类标识授予添加到平台的任何新数据操作。 对于使用通配符的客户来说,通过新操作或数据操作授予额外的访问权限可能是不必要的行为。
为使共享级别权限正常工作,必须:
- 使用本地 Microsoft Entra Connect Sync 应用程序将用户和组从本地 AD 同步到 Microsoft Entra ID。
- 将 AD 同步组添加到 RBAC 角色,以便它们访问你的存储帐户。
提示
可选:要将 SMB 服务器共享级别权限迁移到 RBAC 权限的客户可以使用 Move-OnPremSharePermissionsToAzureFileShare
PowerShell cmdlet 将目录和文件级别权限从本地迁移到 Azure。 此 cmdlet 会评估特定本地文件共享的组,然后使用三个 RBAC 角色将相应的用户和组写入 Azure 文件共享。 调用 cmdlet 时,提供本地共享和 Azure 文件共享的信息。
你可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 将内置角色分配给用户的 Microsoft Entra 标识,以便授予共享级别权限。
重要
共享级别权限在完成后最多需要三小时才能生效。 在使用凭据连接到文件共享之前,请务必等待权限同步。
若要使用 Azure 门户将 Azure 角色分配给 Microsoft Entra 标识,请执行以下步骤:
- 在 Azure 门户中,转到文件共享,或创建 SMB 文件共享。
- 选择“访问控制 (IAM)”。
- 选择“添加角色分配”
- 在“添加角色分配”边栏选项卡中,从“角色”列表中选择相应的内置角色 。
- 让“分配访问权限至”保留默认设置:Microsoft Entra 用户、组或服务主体。 按名称或电子邮件地址选择目标 Microsoft Entra 标识。 所选 Microsoft Entra 标识必须是混合标识,不能是纯云标识。 这意味着同一标识也会在 AD DS 中进行表示。
- 选择“保存”以完成角色分配操作。
所有已经过身份验证的标识的共享级别权限
可以在存储帐户上添加默认共享级别权限,而不是为 Microsoft Entra 用户或组配置共享级别权限。 分配给存储帐户的默认共享级别权限将应用于存储帐户中包含的所有文件共享。
设置默认共享级别权限时,所有已经过身份验证的用户和组将获得相同的权限。 已经过身份验证的用户或组会被识别,因为该标识可以针对与存储帐户关联的本地 AD DS 进行身份验证。 默认共享级别权限在初始化时设置为“无”,这意味着不允许访问 Azure 文件共享中的文件或目录。
若要使用 Azure 门户在存储帐户上配置默认共享级别权限,请执行以下步骤。
在 Azure 门户中,转到包含文件共享的存储帐户并选择“数据存储”>“文件共享”。
分配默认共享级别权限之前,必须在存储帐户上启用 AD 源。 如果已执行此操作,请选择“Active Directory”,然后继续执行下一步。 否则,请选择“Active Directory: 未配置”,在所需 AD 源下选择“设置”,然后启用 AD 源。
启用 AD 源后,“步骤 2: 设置共享级权限”即可供配置。 选择“为所有经过身份验证的用户和组启用权限”。
从下拉列表中选择要启用的适当角色作为默认共享权限。
选择“保存”。
同时使用这两种配置会发生什么情况
还可以将权限分配给所有已经过身份验证的 Microsoft Entra 用户和特定的 Microsoft Entra 用户/组。 使用此配置时,特定用户或组将获得默认共享级别权限和 RBAC 分配中更高级别的权限。 换句话说,假设你向某个用户授予了目标文件共享上的“存储文件数据 SMB 读取者”角色。 此外,你还向所有已经过身份验证的用户授予了默认共享级别权限“存储文件数据 SMB 共享权限提升的参与者”角色。 使用此配置时,该特定用户将对文件共享拥有“存储文件数据 SMB 共享权限提升的参与者”级别的访问权限。 较高级别的权限始终优先。
下一步
现在,你已分配共享级权限,接下来可以配置目录和文件级权限。 请记住,共享级权限最多需要三小时才能生效。