为 Azure 托管 Lustre 文件系统配置根 squash 设置

Root squash 是一项安全功能,可阻止对客户端具有根权限的用户访问远程托管 Lustre 文件系统上的文件。 此功能是使用 Lustre 节点映射功能实现的,是保护用户数据和系统设置免受不受信任或遭到入侵的客户端操纵的重要部分。

本文介绍如何为 Azure 托管 Lustre 文件系统配置根 squash 设置。 可以在群集创建期间通过 REST API 请求或现有群集配置根 squash 设置。

先决条件

根壁球设置

下表详细介绍了 属性的 rootSquashSettings 可用参数,该参数可用于 REST API 版本 2024-03-01 及更高版本:

参数 类型 说明
mode RootOnly, All, None 字符串 RootOnly:仅影响不受信任的系统上的 用户。 文件上的 UID 和 GID 分别
All压缩为提供的 squashUIDsquashGID。:影响不受信任的系统上所有用户。 文件的 UID 和 GID 分别压缩为提供的 squashUIDsquashGID
None (默认) :禁用根 squash 功能,以便不对任何系统上的任何用户执行 UID 和 GID 压缩。
noSquashNidLists String 添加到受信任系统的网络 ID (NID) IP 地址列表。
squashUID 1 - 4294967295 Integer 用户 ID (UID) 被压缩到的数值。
squashGID 1 - 4294967295 Integer 组 ID (GID) 被压缩到的数值。
status String 文件系统压缩状态。

如果需要将不连续的 IP 地址添加为受信任的系统,可以在 参数中 noSquashNidLists 提供以分号分隔的 IP 地址列表,如以下示例所示:

"noSquashNidLists": "10.0.2.4@tcp;10.0.2.[6-8]@tcp;10.0.2.10@tcp",

在群集创建期间启用根 squash

创建 Azure 托管 Lustre 文件系统时,可以在创建群集期间启用根 squash。

若要在群集创建期间启用根 squash,请执行以下步骤:

  1. 确定要用于群集的根 squash 设置。 有关详细信息,请参阅 根 squash 设置
  2. PUT使用请求创建群集,并在请求正文的 节中包含properties所需的rootSquashSettings值。

以下示例演示如何创建启用了 root squash 的群集:

请求语法

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StorageCache/amlFilesystems/{filesystemName}?api-version={apiVersion}

请求正文

"properties": {
    "rootSquashSettings": {
        "mode": "RootOnly",
        "noSquashNidLists": "10.0.2.4@tcp",
        "squashUID": 1000,
        "squashGID": 1000
    },
}

查看现有群集的根 squash 设置

可以查看现有 Azure 托管 Lustre 文件系统的根 squash 设置。 若要查看现有群集的根 squash 设置,请执行以下步骤:

  1. GET使用请求返回现有群集的配置详细信息。

以下示例演示如何返回现有群集:

请求语法

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StorageCache/amlFilesystems/{filesystemName}?api-version={apiVersion}

在响应正文中,找到 rootSquashSettings 属性以查看群集的当前根 squash 设置。

更改现有群集的根 squash 设置

可以更改现有 Azure 托管 Lustre 文件系统的根 squash 设置。 若要更改现有群集的根 squash 设置,请执行以下步骤:

  1. 确定要为现有群集更改或启用的根 squash 设置。 有关详细信息,请参阅 根 squash 设置
  2. PATCH使用请求修改现有群集,并在请求正文的 节中包含properties所需的rootSquashSettings值。 此操作将覆盖任何现有的根 squash 设置,因此请确保请求中提供了 PATCH 所有设置。

假设需要向 参数添加新的 IP 地址范围 noSquashNidLists 。 以下示例演示如何更新现有群集以将新的 IP 地址范围添加到 noSquashNidLists 参数:

请求语法

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StorageCache/amlFilesystems/{filesystemName}?api-version={apiVersion}

请求正文

"properties": {
    "rootSquashSettings": {
        "mode": "RootOnly",
        "noSquashNidLists": "10.0.2.4@tcp;10.0.2.[6-8]@tcp",
        "squashUID": 1000,
        "squashGID": 1000
    },
}

在此示例中,即使 modesquashUIDsquashGID 参数没有更改,也必须将它们包含在请求正文中 PATCH ,以避免覆盖值。

为现有群集禁用根 squash

可以为现有的 Azure 托管 Lustre 文件系统禁用根 squash。 若要为现有群集禁用根 squash,请执行以下步骤:

  1. PATCH使用请求修改现有群集,并在请求正文的 部分中将 参数Noneproperties设置为 mode 。 无需其他任何参数。

以下示例演示如何为现有群集禁用根 squash:

请求语法

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StorageCache/amlFilesystems/{filesystemName}?api-version={apiVersion}

请求正文

"properties": {
    "rootSquashSettings": {
        "mode": "None"
    },
}

后续步骤

若要详细了解 Azure 托管 Lustre,请参阅以下文章: