为 Azure 托管 Lustre 文件系统配置根 squash 设置
Root squash 是一项安全功能,可阻止对客户端具有根权限的用户访问远程托管 Lustre 文件系统上的文件。 此功能是使用 Lustre 节点映射功能实现的,是保护用户数据和系统设置免受不受信任或遭到入侵的客户端操纵的重要部分。
本文介绍如何为 Azure 托管 Lustre 文件系统配置根 squash 设置。 可以在群集创建期间通过 REST API 请求或现有群集配置根 squash 设置。
先决条件
- Azure 订阅。 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户。
根壁球设置
下表详细介绍了 属性的 rootSquashSettings
可用参数,该参数可用于 REST API 版本 2024-03-01 及更高版本:
参数 | 值 | 类型 | 说明 |
---|---|---|---|
mode |
RootOnly , All , None |
字符串 |
RootOnly :仅影响不受信任的系统上的 根 用户。 文件上的 UID 和 GID 分别All 压缩为提供的 squashUID 和 squashGID 。:影响不受信任的系统上的所有用户。 文件的 UID 和 GID 分别压缩为提供的 squashUID 和 squashGID 。
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,请执行以下步骤:
- 确定要用于群集的根 squash 设置。 有关详细信息,请参阅 根 squash 设置。
-
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 设置,请执行以下步骤:
-
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 设置,请执行以下步骤:
- 确定要为现有群集更改或启用的根 squash 设置。 有关详细信息,请参阅 根 squash 设置。
-
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
},
}
在此示例中,即使 mode
、 squashUID
和 squashGID
参数没有更改,也必须将它们包含在请求正文中 PATCH
,以避免覆盖值。
为现有群集禁用根 squash
可以为现有的 Azure 托管 Lustre 文件系统禁用根 squash。 若要为现有群集禁用根 squash,请执行以下步骤:
-
PATCH
使用请求修改现有群集,并在请求正文的 部分中将 参数None
properties
设置为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,请参阅以下文章: