你当前正在访问 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 环境中要保护的初始入口点是访问共享本身。 在大多数情况下,访问权限应仅限于需要访问共享的用户和组。 使用共享访问权限,可以锁定甚至可以首先装载共享的人员。

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

Diagram of inverted pyramid of file access hierarchy.

NFS 导出策略

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

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

Diagram modeling export policy rule hierarchy.

导出Azure NetApp 文档中可用的策略规则选项

创建Azure NetApp 文档卷时,有多种选项可用于控制对 NFS 卷的访问。

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

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

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

默认规则具有以下值:

  • 索引 = 1
  • 允许的客户端 = 0.0.0.0/0 (所有客户端都允许访问)
  • Access = 读取和写入
  • 根访问 = 打开
  • 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 access: off”,将根压到非根匿名用户 ID 为 65534。 这意味着,指定客户端上的根目录现在是用户 ID 65534(通常 nfsnobody 位于 NFS 客户端上),并且能够基于为该用户指定的 ACL/模式位访问文件和文件夹。 对于模式位,访问权限通常属于“每个人”访问权限。 此外,从受根壁球规则影响的客户端写入“root”的文件会以用户身份 nfsnobody:65534 创建文件和文件夹。 如果需要根目录,请将“根访问权限”设置为“打开”。

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

导出策略规则排序

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

请考虑以下示例:

Screenshot of two export policy rules.

  • 索引中的第一个规则包括所有子网中的所有客户端,方法是使用 0.0.0.0.0/0 作为允许的客户端条目的默认策略规则。 该规则允许对该 Azure NetApp 文档 NFSv3 卷的所有客户端进行“读取和写入”访问。
  • 索引中的第二个规则显式列出 NFS 客户端 10.10.10.10,并配置为限制对“只读”的访问,而没有根访问(根被挤压)。

正如它所代表的那样,由于列表中的第一条规则,客户端 10.10.10.10 接收访问权限。 下一个规则永远不会针对访问限制进行评估,因此,即使需要“只读”,10.10.10.10 也会获得读取和写入访问权限。 根也是根,而不是 被挤压

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

注意

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

SMB 共享

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

Screenshot of share-level permissions.

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

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

基于访问的枚举

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

Screenshot of access-based enumeration properties.

在下面的示例中,禁用基于访问的枚举,因此用户有权访问 ABE 目录 SMBVolume

Screenshot of directory without access-bassed enumeration.

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

Screenshot of directory with two sub-directories.

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

Screenshot of directory with two-files.

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

Screenshot of directory with one file.

不可眉毛的共享

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

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

Screenshot of a directory that includes folder SMBVolume.

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

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

Screenshot of a directory with two sub-directories.

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

Screenshot of Windows Explorer with file path highlighted.

SMB3 加密

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

Screenshot of packet capture with SMB encryption disabled.

启用 SMB 加密后,数据包将被标记为加密,并且无法看到敏感信息。 而是显示为“加密的 SMB3 数据”。

Screenshot of packet capture with SMB encryption enabled.

SMB 共享 ACL

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

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

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

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

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

后续步骤