Lustre 根挤压 - FSx 为了光泽

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Lustre 根挤压

根挤压是一项管理功能,它在当前基于网络的访问控制和 POSIX 文件权限的基础上又增加了一层文件访问控制。使用 Lustre 根挤压功能,可以限制那些尝试以根用户身份访问 FSx for Lustre 文件系统的客户端进行根级别的访问。

需要根用户权限才能执行管理操作,例如管理 FSx for Lustre 文件系统的权限。但是,根访问权限为用户提供了不受限制的访问权限,他们可以绕过权限检查来访问、修改或删除文件系统对象。使用根挤压功能,可以通过为文件系统指定非根用户 ID(UID)和组 ID(GID),防止对数据进行未经授权的访问或删除。访问文件系统的根用户将自动转换为权限较低的指定用户/组,仅具有存储管理员设置的有限权限。

使用根挤压功能,还可以选择提供不受根挤压设置影响的客户端列表。这些客户端能够以根用户身份访问文件系统,且权限不受限制。

根挤压的工作原理

根挤压功能的工作原理是将根用户的用户 ID (UID) 和组 ID (GID) 重新映射到 Lustre 系统管理员指定的 UID 和 GID。使用根挤压功能,还可以选择指定一组 UID/GID 重新映射不适用的客户端。

创建 FSx for Lustre 新文件系统时,根挤压默认处于禁用状态。可以通过为 FSx for Lustre 文件系统配置 UID 和 GID 根挤压设置,启用根挤压。UID 和 GID 值是范围从 04294967294 的整数:

  • UID 和 GID 为非零值时启用根挤压。UID 和 GID 值可以不同,但每个值都必须是非零值。

  • UID 和 GID 的值为 0(零)时表示根,因此禁用根挤压。

在创建文件系统期间,可以使用 Amazon FSx 控制台在根挤压属性中提供根挤压 UID 和 GID 值,如 创建文件系统时启用根挤压(控制台) 中所示。您也可以将 RootSquash 参数与 AWS CLI 或 API 配合使用来提供 UID 和 GID 值,如 创建文件系统时启用根挤压(CLI) 所示。

或者,也可以指定根挤压不适用的客户端 NID 列表。客户端 NID 是 Lustre 网络标识符,用于唯一标识客户端。可以将 NID 指定为单个地址,也可以指定为地址范围:

  • 描述单个地址时采用标准 Lustre NID 格式,即指定客户端的 IP 地址,再指定 Lustre 网络 ID(例如 10.0.1.6@tcp)。

  • 描述地址范围时用短划线分隔范围(例如 10.0.[2-10].[1-255]@tcp)。

  • 如果您没有指定任何客户端 NID,那么根挤压将不会有例外情况。

创建或更新文件系统时,可以使用 Amazon FSx 控制台中的根挤压例外属性来提供客户端 NID 列表。在 AWS CLI 或 API 中,使用 NoSquashNids 参数。有关更多信息,请参阅 管理根挤压 中的过程。

管理根挤压

在创建文件系统期间,默认禁用根挤压。在从 Amazon FSx 控制台、AWS CLI 或 API 创建 Amazon FSx for Lustre 新文件系统时,可以启用根挤压。

  1. 通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/

  2. 按照入门部分的步骤 1:创建 FSx for Lustre 文件系统中所述的步骤创建新文件系统。

  3. 打开根挤压-可选部分。

  4. 对于根挤压,请提供根用户可以用来访问文件系统的用户和群组 ID。可以指定 14294967294 范围内的任意整数:

    1. 对于用户 ID,请指定根用户要使用的用户 ID。

    2. 对于群组 ID,请指定根用户要使用的群组 ID。

  5. (可选)对于根挤压例外,请执行以下操作:

    1. 选择添加客户端地址

    2. 客户端地址字段中,指定不适用根挤压的客户端的 IP 地址。有关 IP 地址格式的信息,请参阅 根挤压的工作原理

    3. 根据需要重复此操作,以添加更多客户端 IP 地址。

  6. 按照创建新文件系统时的操作完成向导。

  7. 选择审核和创建

  8. 查看您为 Amazon FSx for Lustre 文件系统选择的设置,然后选择创建文件系统

当文件系统可用时,将启用根挤压。

  • 要创建启用根挤压的 FSx for Lustre 文件系统,请使用带有 RootSquashConfiguration 参数的 Amazon FSx CLI 命令 create-file-system。相应的 API 操作为 createFileSystem

    对于 RootSquashConfiguration 参数,请设置以下选项:

    • RootSquash – 以冒号分隔的 UID:GID 值,用于指定根用户要使用的用户 ID 和组 ID。可以为每个 ID 指定 04294967294(0 表示根)范围内的任意整数(例如,65534:65534)。

    • NoSquashNids – 指定根挤压不适用的客户端的 Lustre 网络标识符 (NID)。有关客户端 NID 格式的信息,请参阅根挤压的工作原理

    以下示例创建了一个启用根挤压的 FSx for Lustre 文件系统:

    $ aws fsx create-file-system \ --client-request-token CRT1234 \ --file-system-type LUSTRE \ --file-system-type-version 2.15 \ --lustre-configuration "DeploymentType=PERSISTENT_2,PerUnitStorageThroughput=250,DataCompressionType=LZ4,\ RootSquashConfiguration={RootSquash="65534:65534",\ NoSquashNids=["10.216.123.47@tcp", "10.216.12.176@tcp"]}" \ --storage-capacity 2400 \ --subnet-ids subnet-123456 \ --tags Key=Name,Value=Lustre-TEST-1 \ --region us-east-2

在成功创建文件系统后,Amazon FSx 以 JSON 形式返回文件系统描述,如以下示例所示。

{ "FileSystems": [ { "OwnerId": "111122223333", "CreationTime": 1549310341.483, "FileSystemId": "fs-0123456789abcdef0", "FileSystemType": "LUSTRE", "FileSystemTypeVersion": "2.15", "Lifecycle": "CREATING", "StorageCapacity": 2400, "VpcId": "vpc-123456", "SubnetIds": [ "subnet-123456" ], "NetworkInterfaceIds": [ "eni-039fcf55123456789" ], "DNSName": "fs-0123456789abcdef0.fsx.us-east-2.amazonaws.com", "ResourceARN": "arn:aws:fsx:us-east-2:123456:file-system/fs-0123456789abcdef0", "Tags": [ { "Key": "Name", "Value": "Lustre-TEST-1" } ], "LustreConfiguration": { "DeploymentType": "PERSISTENT_2", "DataCompressionType": "LZ4", "PerUnitStorageThroughput": 250, "RootSquashConfiguration": { "RootSquash": "65534:65534", "NoSquashNids": "10.216.123.47@tcp 10.216.29.176@tcp" } } ] }

此外,也可以使用 Amazon FSx 控制台、AWS CLI 或 API 更新现有文件系统的根挤压设置。例如,可以更改根挤压 UID 和 GID 值,添加或删除客户端 NID,或者禁用根挤压。

  1. 通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/

  2. 导航到文件系统,然后选择要管理根挤压的 Lustre 文件系统。

  3. 操作中,选择更新根挤压。或者,在摘要面板中,选择文件系统的根挤压字段旁边的更新,以显示更新根挤压设置对话框。

  4. 对于根挤压,请更新根用户可以用来访问文件系统的用户和群组 ID。可以指定 04294967294 范围内的任意整数。要禁用根挤压,请将两个 ID 均指定为 0(零)。

    1. 对于用户 ID,请指定根用户要使用的用户 ID。

    2. 对于群组 ID,请指定根用户要使用的群组 ID。

  5. 对于根挤压例外,请执行以下操作:

    1. 选择添加客户端地址

    2. 客户端地址字段中,指定不适用根挤压的客户端的 IP 地址,

    3. 根据需要重复此操作,以添加更多客户端 IP 地址。

  6. 选择更新

    注意

    如果启用了根挤压但想将其禁用,请选择禁用,而不是执行步骤 4-6。

可以在文件系统详细信息页面的更新选项卡上监控更新进度。

要更新现有 FSx for Lustre 文件系统的根挤压设置,请使用 AWS CLI 命令 update-file-system。相应的 API 操作为 UpdateFileSystem

设置以下参数:

  • --file-system-id 设置为要更新的文件系统的 ID。

  • 设置 --lustre-configuration RootSquashConfiguration 选项,如下所示:

    • RootSquash – 设置以冒号分隔的 UID:GID 值,用于指定根用户要使用的用户 ID 和组 ID。可以为每个 ID 指定 04294967294(0 表示根)范围内的任意整数。要禁用根挤压,请将 UID:GID 值指定为 0:0

    • NoSquashNids – 指定根挤压不适用的客户端的 Lustre 网络标识符 (NID)。使用 [] 会删除所有客户端 NID,这意味着根挤压不会有任何例外情况。

以下命令指定启用根挤压并使用 65534 作为根用户的用户 ID 和组 ID 的值。

$ aws fsx update-file-system \ --file-system-id fs-0123456789abcdef0 \ --lustre-configuration RootSquashConfiguration={RootSquash="65534:65534", \ NoSquashNids=["10.216.123.47@tcp", "10.216.12.176@tcp"]}

如果该命令成功,Amazon FSx for Lustre 将以 JSON 格式返回响应。

您可以在 Amazon FSx 控制台上文件系统详情页面的摘要面板中查看文件系统的根压缩设置,或在 describe-file-systems CLI 命令(等效 API 操作为 DescribeFileSystems)的响应中查看。