使用接入点强制执行根目录 - Amazon Elastic File System

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

使用接入点强制执行根目录

您可以使用访问点覆盖文件系统的根目录。强制使用根目录时,使用接入点的NFS客户端使用在接入点上配置的根目录,而不是文件系统的根目录。

您可以通过在创建访问点时设置访问点 Path 属性来启用此功能。Path 属性是通过此访问点发出的所有文件系统请求的文件系统根目录的完整路径。完整路径的长度不能超过 100 个字符。它最多可包含四个子目录。

当您在接入点上指定根目录时,它会成为安装接入点的NFS客户端的文件系统的根目录。例如,假设访问点的根目录为 /data。在此情况下,使用访问点挂载 fs-12345678:/ 与不使用访问点挂载 fs-12345678:/data 具有相同的效果。

在您的访问点中指定根目录时,请确保配置目录权限,使得接入点用户能够成功装载文件系统。具体而言,请确保为接入点用户或组或者为所有人设置了执行位。例如,目录权限值 755 允许目录用户拥有者列出文件、创建文件和装载目录,并允许所有其他用户列出文件和装载目录。

为接入点创建根目录

如果文件系统上不存在接入点的根目录路径,Amazon EFS 会自动创建具有指定所有权和权限的根目录。如果您在创建时未指定目录所有权和权限,Amazon EFS 将不会创建根目录。利用此方法,可以为特定用户或应用程序预置文件系统访问权限,而无需从 Linux 主机挂载文件系统。要创建根目录,在创建接入点时,必须使用以下属性配置根目录所有权和权限:

  • OwnerUid— 用作根目录所有者的数字POSIX用户 ID。

  • OwnerGiD— 用作根目录所有者POSIX组的数字组 ID。

  • 权限 – 目录的 Unix 模式。一个常见配置是 755。确保为接入点用户设置了执行位,使得他们能够执行装载操作。此配置向目录拥有者授予在目录中输入、列出和写入新文件的权限。它向所有其他用户授予输入和列出文件的权限。有关使用 Unix 文件和目录模式的更多信息,请参阅网络文件系统 (NFS) 级别的用户、组和权限

只有在为接入点根目录指定了 “ OwnUid所有者” 和 “权限” GID 时,Amazon 才会EFS创建该目录。如果您不提供这些信息,Amazon 就EFS不会创建根目录。如果根目录不存在,则使用接入点进行挂载的尝试将失败。

在装载带有接入点的文件系统时,如果该目录尚不存在,则会创建该接入点的根目录,前提是根目录 OwnerUid 和权限是在创建接入点时指定的。如果接入点的根目录在挂载时间之前已存在,则接入点不会覆盖现有权限。如果删除根目录,则下次使用接入点挂载文件系统时EFS会重新创建根目录。

注意

如果您未指定接入点根目录的所有权和权限,Amazon EFS 将不会创建根目录。所有挂载接入点的尝试都将失败。

接入点根目录的安全模型

当根目录覆盖生效时,Amazon 的EFS行为就像启用了该no_subtree_check选项的 Linux NFS 服务器。

在该NFS协议中,服务器生成文件句柄,供客户端在访问文件时用作唯一引用。EFS安全地生成不可预测且特定于EFS文件系统的文件句柄。当根目录覆盖到位时,EFS不会泄露指定根目录之外文件的文件句柄。但是,在某些情况下,用户可能会使用某种 out-of-band 机制来获取访问点之外的文件的文件句柄。例如,如果他们有权访问第二个访问点,则他们可能会这样做。如果他们这样做,则可对文件执行读取和写入操作。

对于访问用户的访问点根目录内外的文件,始终强制执行文件所有权和访问权限。