Lustre Lustre 根壁球 - FSx for Lustre
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Lustre Lustre 根壁球

根壁球是一项管理功能,它在当前基于网络的访问控制和 POSIX 文件权限之外添加了另一层文件访问控制。使用 root 壁球功能,您可以限制尝试以 root 用户身份访问 FSx for Lustre 文件系统的客户端的根级访问权限。

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

根壁球功能还可以选择性地允许您提供不受根壁球设置影响的客户名单。这些客户端可以以 root 身份访问文件系统,并具有不受限制的权限。

注意

您无法使用 Amazon FSx 控制台启用或管理 Lustre 根壁球。您必须使用Amazon CLI或者 API。有关更多信息,请参阅 管理根壁球

根壁球的工作原理

根壁球功能的工作原理是将根用户的用户 ID (UID) 和组 ID (GID) 重新映射到 Lustre 系统管理员指定的 UID 和 GID。根壁球功能还允许您选择指定一组不适用 UID/GID 重新映射的客户端。

在为 Lustre 文件系统创建新的 FSx 时,默认情况下,根壁球处于禁用状态。您可以通过为你的 fSx for Lustre 文件系统配置 UID 和 GID 根壁球设置来启用根壁球。UID 和 GID 值是整数,范围范围为04294967294

  • UID 和 GID 的非零值启用根壁球。UID 值和 GID 值可以不同,但每个值必须为非零值。

  • 值为0(零)表示 UID,GID 表示根,因此禁用根壁球。

在创建文件系统期间,您可以使用RootSquash的参数Amazon 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,根壁球不会有例外。

创建文件系统时,可以在NoSquashNids的参数Amazon CLI或者 API。有关更多信息,请参阅 在创建文件系统时启用根管理 (CLI)

注意

备份和还原不支持根壁球。要使用备份和还原,必须通过设置RootSquash参数0:0NoSquashNids参数[]使用Amazon CLI或者 API。

管理根壁球

在为 Lustre 文件系统创建新的 Amazon FSx 时,您可以启用根壁球Amazon CLI或者 API。

  • 要在启用根壁球的情况下为 Lustre 文件系统创建 FSx,请使用 Amazon FSx CLI 命令create-file-system使用RootSquashConfiguration参数。相应的 API 操作是CreateFileSystem.

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

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

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

    以下示例为启用了根壁球的 Lustre 文件系统创建 FSx:

    $ aws fsx create-file-system \ --client-request-token CRT1234 \ --file-system-type LUSTRE \ --file-system-type-version 2.12 \ --lustre-configuration DeploymentType=PERSISTENT_2,PerUnitStorageThroughput=200,DataCompressionType=LZ4 \ RootSquashConfiguration={RootSquash="65534:65534", \ NoSquashNids=["10.216.123.47@tcp", "10.216.12.176@tcp"]} \ --storage-capacity 3600 \ --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.12", "Lifecycle": "CREATING", "StorageCapacity": 3600, "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": 200, "RootSquashConfiguration": { "RootSquash": "65534:65534", "NoSquashNids": "10.216.123.47@tcp 10.216.29.176@tcp" } } ] }

您还可以使用Amazon CLI或者 API。例如,您可以更改根壁球 UID 和 GID 值、添加或删除客户端 NID 或禁用根壁球。

要更新 Lustre 文件系统的现有 FSx 的根壁球设置,请使用Amazon CLI命令更新文件系统. 相应的 API 操作是更新文件系统.

设置以下参数:

  • Set--file-system-id转换为您正在更新的文件系统的 ID。

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

    • RootSquash— 设置冒号分隔的 UID: GID 值,用于指定 root 用户使用的用户 ID 和组 ID。你可以指定范围内的任意整数04294967294每个 ID(0 是 root)。要禁用根壁球,请指定0:0对于 UID: GID 值。

    • NoSquashNids— 指定不适用根壁球的客户端的 Lustre 网络标识符 (NID)。使用[]删除所有客户端 NID,这意味着根壁球不会有例外。

此命令指定使用以下方式启用 root 壁球65534作为 root 用户的用户 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 格式返回响应。

您可以在响应中查看文件系统的根壁球设置describe-file-systemsCLI 命令(等效的 API 操作是DescribeFileSystems)。