你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

了解 Azure NetApp 文件中的 NAS 共享权限

Azure NetApp 文件提供了几种保护 NAS 数据的方法。 安全性的一个方面是权限。 在 NAS 中,权限可以分为两个类别:

  • 共享访问权限限制谁可以装载 NAS 卷。 NFS 通过 IP 地址或主机名来控制共享访问权限。 SMB 通过用户和组访问控制列表 (ACL) 来控制此权限。
  • 文件访问权限限制用户和组在装载 NAS 卷后可以执行的操作。 文件访问权限应用于单个文件和文件夹。

Azure NetApp 文件权限依赖于 NAS 标准,可简化管理员和最终用户使用熟悉方法来保护 NAS 卷的过程。

注意

如果共享和文件上列出了冲突的权限,则会应用限制性最强的权限。 例如,如果用户在共享级别具有只读访问权限,并且在文件级别具有完全控制权限,则用户会收到所有级别的读取访问权限。

共享访问权限

在 NAS 环境中要保护的初始入口点是对共享本身的访问。 在大多数情况下,访问权限应仅限于需要访问共享的用户和组。 使用共享访问权限,可以锁定谁甚至可以首先装载共享。

由于限制性最强的权限会替代其他权限,并且共享是卷的主要入口点(具有最少的访问控制),因此共享权限应遵守漏斗逻辑,其中共享允许具有比基础文件和文件夹更多的访问权限。 漏斗逻辑执行更精细的限制性控制。

文件访问层次结构的倒金字塔图。

NFS 导出策略

通过导出某个客户端或一组客户端可访问的路径,将 Azure NetApp 文件中的卷共享到 NFS 客户端。 NFSv3 和 NFSv4.x 使用相同的方法来限制对 Azure NetApp 文件中 NFS 共享的访问:导出策略。

导出策略是一组访问规则的容器,这些规则按所需访问的顺序列出。 这些规则使用客户端 IP 地址或子网控制对 NFS 共享的访问。 如果导出策略规则中未列出某个客户端(允许或明确拒绝访问),则该客户端无法装载 NFS 导出。 由于规则是按顺序读取的,如果对某个客户端应用了更严格的策略规则(例如,通过子网),则会先读取并应用该规则。 将忽略允许更多访问的后续策略规则。 此图显示 IP 为 10.10.10.10 的客户端获得对卷的只读访问权限,因为子网 0.0.0.0/0(每个子网中的每个客户端)设置为只读,并且在策略中列在第一位。

导出策略规则层次结构建模的示意图。

Azure NetApp 文件中提供的导出策略规则选项

创建 Azure NetApp 文件卷时,可通过多种选项来控制对 NFS 卷的访问。

  • 索引:指定导出策略规则的评估顺序。 如果某个客户端受策略中的多个规则控制,则第一条适用的规则将应用于该客户端,后续规则将被忽略。
  • 允许的客户端:指定规则应用于哪些客户端。 此值可以是客户端 IP 地址、逗号分隔的 IP 地址列表,也可以是包含多个客户端的子网。 Azure NetApp 文件中不支持主机名和网络组值。
  • 访问权限:指定允许非根用户拥有的访问级别。 对于未启用 Kerberos 的 NFS 卷,选项包括:只读、读写或无访问权限。 对于已启用 Kerberos 的卷,选项包括:Kerberos 5、Kerberos 5i 或 Kerberos 5p。
  • 根访问权限:指定在给定客户端的 NFS 导出中如何处理根用户。 如果设置为“开”,则根用户为 root。 如果设置为“关”,则根压缩成匿名用户 ID 65534。
  • chown 模式:控制哪些用户可以对导出 (chown) 运行更改所有权命令。 如果设置为“受限”,则只有根用户可以运行 chown。 如果设置为“不受限制”,则具有适当文件/文件夹权限的任何用户都可以运行 chown 命令。

Azure NetApp 文件中的默认策略规则

创建新卷时,将创建默认策略规则。 默认策略可防止在没有策略规则的情况下创建卷,这会限制任何尝试访问导出的客户端的访问权限。 如果没有规则,则没有访问权限。

默认规则具有以下值:

  • 索引 = 1
  • 允许的客户端 = 0.0.0.0/0(所有允许访问的客户端)
  • 访问权限 = 读写
  • 根访问权限 = 开
  • Chown 模式 = 受限

可以在创建卷时或在创建卷后更改这些值。

在 Azure NetApp 文件中启用 NFS Kerberos 的情况下导出策略规则

只能在 Azure NetApp 文件中使用 NFSv4.1 的卷上启用 NFS Kerberos。 Kerberos 通过为 NFS 装载提供不同的加密模式来提供额外的安全性,具体取决于正在使用的 Kerberos 类型。

启用 Kerberos 后,导出策略规则的值将发生更改,以让你指定应允许使用的 Kerberos 模式。 如果需要访问多个 Kerberos 安全模式,则可以在同一规则中启用它们。

这些安全模式包括:

  • Kerberos 5:仅对初始身份验证进行加密。
  • Kerberos 5i:用户身份验证加完整性检查。
  • Kerberos 5p:用户身份验证、完整性检查和隐私。 所有数据包都将加密。

只有已启用 Kerberos 的客户端才能访问包含指定 Kerberos 的导出规则的卷;启用 Kerberos 后,不允许 AUTH_SYS 访问。

根压缩

在某些情况下,需要限制对 Azure NetApp 文件卷的根访问权限。 由于根用户对 NFS 卷中的任何内容的访问权限不受限制 – 即使使用模式位或 ACL 显式拒绝对根的访问权限也是如此,限制根访问的唯一方法是告诉 NFS 服务器特定客户端的根用户不再是 root。

在导出策略规则中,选择“根访问权限:关”,以将根压缩成非根匿名用户 ID 65534。 这意味着,指定客户端上的根用户现在是用户 ID 65534(在 NFS 客户端上通常为 nfsnobody),并且能够根据为该用户指定的 ACL/模式位来访问文件和文件夹。 对于模式位,访问权限通常属于“Everyone”访问权限。 此外,受根压缩规则影响的客户端以“root”写入的文件会以 nfsnobody:65534 用户身份创建文件和文件夹。 如果需要根用户为 root,请将“根访问权限”设置为“开”。

若要详细了解如何管理导出策略,请参阅为 NFS 或双重协议卷配置导出策略

导出策略规则排序

导出策略规则的顺序决定了它们的应用方式。 列表中应用于 NFS 客户端的第一条规则是用于该客户端的规则。 将 CIDR 范围/子网用于导出策略规则时,该范围内的 NFS 客户端可能会因为所包含的范围而接收到不需要的访问权限。

请考虑以下示例:

两个导出策略规则的屏幕截图。

  • 通过使用将 0.0.0.0/0 用作允许的客户端条目的默认策略规则,索引中的第一条规则包括所有子网中的所有客户端。 该规则允许对 Azure NetApp 文件 NFSv3 卷的所有客户端进行“读写”访问。
  • 索引中的第二条规则显式列出了 NFS 客户端 10.10.10.10,并配置为将访问权限限制为“只读”,而没有根访问权限(根被压缩)。

事实表明,由于列表中的第一条规则,客户端 10.10.10.10 可接收访问权限。 永远不会评估下一条规则的访问限制,因此即使需要“只读”,10.10.10.10 也会获得读写访问权限。 根也是 root,而不是被压缩

若要解决此问题并将访问权限设置为所需级别,可以对规则进行重新排序,以将所需客户端访问规则置于任何子网/CIDR 规则之上。 可以在 Microsoft Azure 门户中对导出策略规则进行重新排序,方法是拖动规则或使用每个导出策略规则行中 ... 菜单中的“移动”命令。

注意

只能使用 Azure NetApp 文件 CLI 或 REST API 添加或删除导出策略规则。

SMB 共享

SMB 共享使最终用户能够访问 Azure NetApp 文件中的 SMB 或双重协议卷。 在 Azure NetApp 文件控制平面中,SMB 共享的访问控制仅限于 SMB 安全选项,例如基于访问权限的枚举和不可浏览的共享功能。 在卷创建过程中,可使用编辑卷功能来配置这些安全选项。

共享级别权限的屏幕截图。

共享级别权限 ACL 是通过 Windows MMC 控制台而不是 Azure NetApp 文件进行管理的。

Azure NetApp 文件提供多个共享属性来增强管理员的安全性。

基于访问权限的枚举

基于访问权限的枚举 是一项 Azure NetApp 文件 SMB 卷功能,它将 SMB 中文件和文件夹的枚举(即列出内容)仅限制为对共享具有所允许访问权限的用户。 例如,如果用户对已启用基于访问权限的枚举的共享中的文件或文件夹没有读取权限,则该文件或文件夹不会显示在目录列表中。 在以下示例中,用户 (smbuser) 无权读取 Azure NetApp 文件 SMB 卷中名为“ABE”的文件夹。 只有 contosoadmin 具有访问权限。

基于访问权限的枚举属性的屏幕截图。

在下面的示例中,已禁用基于访问权限的枚举,因此用户有权访问 SMBVolumeABE 目录。

未启用基于访问权限的枚举的目录的屏幕截图。

在下一个示例中,已启用基于访问权限的枚举,因此不会向用户显示 SMBVolumeABE 目录。

包含两个子目录的目录的屏幕截图。

该权限还扩展到单个文件。 在下面的示例中,已禁用基于访问权限的枚举,并且 ABE-file 已向用户显示。

包含两个文件的目录的屏幕截图。

启用基于访问权限的枚举后,ABE-file 不会向用户显示。

包含一个文件的目录的屏幕截图。

不可浏览的共享

通过隐藏 Windows 资源管理器中的视图或在“net view”中列出共享时,Azure NetApp 文件中不可浏览的共享功能可限制客户端浏览 SMB 共享。只有知道共享绝对路径的最终用户才能找到共享。

在下图中,没有为 SMBVolume 启用不可浏览的共享属性,因此卷会显示在文件服务器列表中(使用 \\servername)。

包含文件夹 SMBVolume 的目录的屏幕截图。

在 Azure NetApp 文件中的 SMBVolume 上启用不可浏览的共享时,文件服务器的同一视图将排除 SMBVolume

在下一个图像中,共享 SMBVolume 在 Azure NetApp 文件中启用了不可浏览的共享。 启用它后,这是文件服务器的顶级视图。

包含两个子目录的目录的屏幕截图。

即使无法在列表中看到卷,但如果用户知道文件路径,则仍然可访问它。

Windows 资源管理器的屏幕截图,其中已突出显示文件路径。

SMB3 加密

SMB3 加密是一项 Azure NetApp 文件 SMB 卷功能,它为 SMB 客户端强制执行有线加密,以便在 NAS 环境中提高安全性。 下图显示了禁用 SMB 加密时网络流量的屏幕截图。 文件名和文件句柄等敏感信息可见。

已禁用 SMB 加密的数据包捕获的屏幕截图。

启用 SMB 加密后,数据包将标记为“已加密”,并且用户将看不到任何敏感信息。 相反,它显示为“加密的 SMB3 数据”。

已启用 SMB 加密的数据包捕获的屏幕截图。

SMB 共享 ACL

SMB 共享可以控制谁能够装载和访问共享,以及控制对 Active Directory 域中用户和组的访问级别。 评估的第一级权限是共享访问控制列表 (ACL)。

SMB 共享权限比文件权限更基本:它们只应用读取、更改或完全控制。 共享权限可以被文件权限覆盖,文件权限可以被共享权限覆盖;限制性最强的权限是应遵守的权限。 例如,如果组“Everyone”被授予对共享的完全控制权限(默认行为),并且特定用户通过文件级 ACL 对文件夹具有只读访问权限,则读取访问权限将应用于这些用户。 ACL 中未显式列出的任何其他用户都具有完全控制权限

相反,如果特定用户的共享权限设置为“读取”,但该用户的文件级权限设置为完全控制,则会强制执行“读取”访问权限。

在双重协议 NAS 环境中,SMB 共享 ACL 仅适用于 SMB 用户。 NFS 客户端利用导出策略和规则来实现共享访问规则。 因此,控制文件和文件夹级别的权限优先于共享级别 ACL,尤其是对于双重协议 NAS 卷。

若要了解如何配置 ACL,请参阅在 Azure NetApp 文件中管理 SMB 共享 ACL

后续步骤