为 Azure 文件存储配置根 Squash

NFS 文件共享的权限由客户端 OS(而不是 Azure 文件存储服务)强制执行。 根 Squash 是 NFS 中的一项管理安全功能,可防止客户端计算机对 NFS 服务器进行未经授权的根级别访问。 此功能是保护用户数据和系统设置免遭不受信任的或遭入侵的客户端操纵的重要一环。

管理员应该在多个用户或系统访问 NFS 共享的环境中启用根 Squash,特别是在客户端计算机不是完全受信任的情况下。 通过将根用户转换为匿名用户,根 Squash 可确保即使在客户端计算机遭入侵的情况下,攻击者也无法利用根权限访问或修改 NFS 服务器上的关键文件。

本文介绍如何配置和更改 NFS Azure 文件共享的根 Squash 设置。

适用于

文件共享类型 SMB NFS
标准文件共享 (GPv2)、LRS/ZRS 否,本文不适用于标准 SMB Azure 文件共享 LRS/ZRS。 仅高级 Azure 文件共享中提供 NFS 共享。
标准文件共享 (GPv2)、GRS/GZRS 否,本文不适用于标准 SMB Azure 文件共享 GRS/GZRS。 仅高级 Azure 文件共享中提供 NFS。
高级文件共享 (FileStorage)、LRS/ZRS 否,本文不适用于高级 SMB Azure 文件共享。 是,本文适用于高级 NFS Azure 文件共享。

如何将根 Squash 与 Azure 文件存储配合使用

根 Squash 的工作原理是将根用户的用户 ID (UID) 和组 ID (GID) 重新映射到服务器上属于匿名用户的 UID 和 GID。 访问文件系统的根用户会自动转换为匿名且特权较低的用户/组,其权限有限。

尽管根 Squash 是 NFS 中的默认行为,但它不是创建 NFS Azure 文件共享时的默认选项。 必须在文件共享上显式启用根 Squash。 可以在创建 NFS Azure 文件共享时执行此操作,也可以稍后这样做。

根 Squash 设置

可以从下述三个根 Squash 设置中进行选择:

  • “无根 Squash”:关闭根 Squash 功能。 此选项主要用于无盘客户端或工作负荷文档指定的工作负荷。 这是创建新的 NFS Azure 文件共享时的默认设置。
  • 全部 Squash:将所有 UID 和 GID 映射到匿名用户。 适用于需要由所有客户端进行只读访问的共享。
  • 根 Squash:将来自 UID/GID 0(根)的请求映射到匿名 UID/GID。 这不适用于任何其他可能同样敏感的 UID 或 GID,例如用户 bin 或组员工。

下表突出显示了配置特定根 Squash 选项时从服务器观察到的 UID 行为。

选项 客户端 UID 服务器 UID
root_squash 0 65534
root_squash 1000 1000
no_root_squash 0 0
no_root_squash 1000 1000
all_squash 0 65534
all_squash 1000 65534

在现有 NFS 文件共享上配置根 Squash

可以通过 Azure 门户、Azure PowerShell 或 Azure CLI 配置根 Squash 设置。

  1. 登录到 Azure 门户,然后导航到包含 NFS Azure 文件共享的 FileStorage 存储帐户。

  2. 在服务菜单中的“数据存储”下,选择“文件共享”

  3. 选择要为其修改根 Squash 设置的文件共享。

  4. 在服务菜单中,选择“属性”。 然后根据需要切换“根 Squash”设置。

    屏幕截图显示如何在 Azure 门户中为 NFS 文件共享配置根 Squash 设置。

  5. 选择“保存”以更新根 Squash 值。

另请参阅