适用于: ✔️ SMB Azure 文件共享
为存储帐户启用标识源后,必须配置共享级别权限才能访问文件共享。 可通过两种方式分配共享级别权限。 可将这些权限分配给特定的 Microsoft Entra 用户/组,还可以将其作为默认共享级别权限分配给所有已经过身份验证的标识。
选择如何分配共享级别权限
Azure 文件共享的共享级权限是为 Microsoft Entra 用户、组或服务主体配置的,而目录和文件级权限是使用 Windows 访问控制列表 (ACL) 强制执行的。 必须将共享级别权限分配给表示应具有访问权限的用户、组或服务主体的 Microsoft Entra 标识。
大多数用户应将共享级别权限分配给特定的 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 文件共享中读取访问。 |
| 存储文件数据 SMB 管理员 | 允许通过 SMB 为最终用户授予与存储帐户密钥等效的管理员访问权限。 |
特定 Microsoft Entra 用户或组的共享级别权限
如果你打算使用特定的 Microsoft Entra 用户或组来访问 Azure 文件共享资源,该标识必须是同时存在于本地 AD DS 和 Microsoft Entra ID 中的混合标识。
例如,假设 AD 中有一个用户, user1@onprem.contoso.com ,并且已使用 Microsoft Entra Connect Sync 同步到 Microsoft Entra ID 为 user1@contoso.com。要使该用户访问 Azure Files,必须为 user1@contoso.com 分配共享级别的权限。 同一理念也适用于组和服务主体。
重要
请通过显式声明操作和数据操作来分配权限,而不是使用通配符 (*) 字符。 如果数据操作的自定义角色定义包含通配符,则将向分配给该角色的所有标识授予访问所有可能的数据操作的权限。 这意味着,也将向所有此类标识授予添加到平台的任何新数据操作。 对于使用通配符的客户来说,通过新操作或数据操作授予额外的访问权限可能是不必要的行为。
为使共享级别权限正常工作,必须:
- 如果 AD 源是 AD DS 或 Microsoft Entra Kerberos,则必须使用本地 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 用户或组配置共享级别权限。 分配给存储帐户的默认共享级别权限将应用于存储帐户中包含的所有文件共享。
重要
如果对存储帐户设置了默认共享级别权限,则无需将本地标识同步到 Microsoft Entra ID。
设置默认共享级别权限时,所有已经过身份验证的用户和组将获得相同的权限。 已经过身份验证的用户或组会被识别,因为该标识可以针对与存储帐户关联的本地 AD DS 进行身份验证。 默认共享级别权限在初始化时设置为“无”,这意味着不允许访问 Azure 文件共享中的文件或目录。
若要使用 Azure 门户在存储帐户上配置默认共享级别权限,请执行以下步骤。
在 Azure 门户中,转到包含文件共享的存储帐户并选择“数据存储”>“文件共享”。
分配默认共享级别权限之前,必须在存储帐户上启用 AD 源。 如果已执行此操作,请选择“Active Directory”,然后继续执行下一步。 否则,请选择“Active Directory: 未配置”,在所需 AD 源下选择“设置”,然后启用 AD 源。
启用 AD 源后,“步骤 2: 设置共享级权限”即可供配置。 选择“为所有经过身份验证的用户和组启用权限”。
从下拉列表中选择要启用的适当角色作为默认共享权限。
选择“保存”。
同时使用这两种配置会发生什么情况
还可以将权限分配给所有已经过身份验证的 Microsoft Entra 用户和特定的 Microsoft Entra 用户/组。 使用此配置时,特定用户或组将获得默认共享级别权限和 RBAC 分配中更高级别的权限。 换句话说,假设你向某个用户授予了目标文件共享上的“存储文件数据 SMB 读取者”角色。 此外,你还向所有已经过身份验证的用户授予了默认共享级别权限“存储文件数据 SMB 共享权限提升的参与者”角色。 使用此配置时,该特定用户将对文件共享拥有“存储文件数据 SMB 共享权限提升的参与者”级别的访问权限。 较高级别的权限始终优先。
下一步
现在,你已分配共享级权限,接下来可以配置目录和文件级权限。 请记住,共享级权限最多需要三小时才能生效。