访问控制

在本主题中,您将了解如何控制对 Cloud Filestore 实例的访问。

Cloud Filestore 不支持 Kerberos,以保护对 Cloud Filestore 实例的访问。请改用下面描述的 Linux 和 Cloud Identity and Access Management (IAM) 选项。

文件共享导出设置

Cloud Filestore 文件共享具有固定 /etc/exports 设置,如下所示:

  • 客户端列表用于标识允许连接到文件共享的客户端,其中包含了您为 Cloud Filestore 实例选择的 VPC 网络中的所有内部 IP 地址。内部 IP 地址是指 RFC 1918 定义的 10.0.0.0/8172.16.0.0/12192.168.0.0/16 范围内的地址。
  • 使用了 rw 选项,因此文件共享是可读写的。
  • 使用了用户 ID 映射选项 no_root_squash,因此包括 root 用户在内的所有用户和群组在 Cloud Filestore 实例和客户端上都应该是相同的。
  • 其他所有选项都使用 /etc/exports 默认设置。

您无法更改文件共享导出设置。

文件共享权限

创建 Cloud Filestore 实例时,该实例的文件共享具有 rwxr-xr-x 的默认 Unix 权限,八进制表示法为 755。这些权限意味着在 Cloud Filestore 实例上,只有连接的客户端上的 root 用户才具有对文件共享的读/写访问权限。其他用户默认只具有读取访问权限,但客户端 root 用户可以更改权限和所有者。

配置对文件共享的访问权限

在客户端上装载 Cloud Filestore 文件共享时,您可以使用 mount 命令的选项和 /etc/fstab 文件中的设置来确定装载的文件共享是否可写入数据以及是否可在该文件共享中执行文件。装载文件共享后,您可以使用 chmodsetfacl 等标准 Linux 命令来设置文件和文件共享权限。

设置一致的权限

强烈建议为连接到相同 Cloud Filestore 实例的所有客户端上的每个用户都设置一致的权限,因为遇到以下情况时会出现问题:

  • 文件共享装载在多个客户端上,并且
  • 用户在一个客户端上具有 root 权限,但在其他客户端上没有

用户可以从他们具有 root 访问权限的客户端上传设置了 setuid 位的文件,然后可以在他们至少具有读取权限的任何其他客户端上以 root 身份执行该文件。这是因为 setuid 位允许用户使用文件所有者的权限(在本例中为 root 权限)来执行文件。

IAM 角色和权限

要授予对 Cloud Filestore 操作的访问权限,您可以向用户授予 Cloud Identity and Access Management (IAM) 角色

IAM 权限只能控制对 Cloud Filestore 操作(例如创建 Cloud Filestore 实例)的访问权限。Linux 权限则决定对 Cloud Filestore 文件共享上的操作(如读取或执行)的访问权限。

使用 Cloud Filestore 角色

可以使用 Cloud Filestore 编辑者和 Cloud Filestore 查看者角色向用户授予 Cloud Filestore 权限。如果需要,还可以使用初始角色来实现此目的。

使用下表查看与 Cloud Filestore 角色关联的 Cloud Filestore 权限。

权限 操作 Cloud Filestore 编辑者角色 Cloud Filestore 查看者角色
file.locations.get 获取该服务支持的特定位置的相关信息。
file.locations.list 列出该服务的支持位置的相关信息。
file.instances.create 创建 Cloud Filestore 实例。
file.instances.update 更新 Cloud Filestore 实例。
file.instances.delete 删除 Cloud Filestore 实例。
file.instances.get 获取特定 Cloud Filestore 实例的详细信息。
file.instances.list 列出项目中的 Cloud Filestore 实例。
file.operations.get 获取 Cloud Filestore 实例操作的状态。
file.operations.list 列出 Cloud Filestore 实例操作。
file.operations.cancel 取消 Cloud Filestore 实例操作。
file.operations.delete 删除 Cloud Filestore 实例操作。

使用初始角色

Cloud Filestore 权限还与所有者、编辑者和查看者的 IAM 初始角色相关联。除 Cloud Filestore 角色外,您还可以使用这些角色向用户授予 Cloud Filestore 权限。

使用下表查看与初始角色关联的 Cloud Filestore 权限。

权限 操作 项目所有者角色 项目编辑者角色 项目查看者角色
file.locations.get 获取该服务支持的特定位置的相关信息。
file.locations.list 列出该服务的支持位置的相关信息。
file.instances.create 创建 Cloud Filestore 实例。
file.instances.update 更新 Cloud Filestore 实例。
file.instances.delete 删除 Cloud Filestore 实例。
file.instances.get 获取特定 Cloud Filestore 实例的详细信息。
file.instances.list 列出项目中的 Cloud Filestore 实例。
file.operations.get 获取 Cloud Filestore 实例操作的状态。
file.operations.list 列出 Cloud Filestore 实例操作。
file.operations.cancel 取消 Cloud Filestore 实例操作。
file.operations.delete 删除 Cloud Filestore 实例操作。

自定义角色

如果预定义的 IAM 角色不符合您的需求,您可以使用指定的权限定义自定义角色。为此,IAM 提供了自定义角色。为 Cloud Filestore 创建自定义角色时,请确保同时包含 resourcemanager.projects.getresourcemanager.projects.list,以便该角色具有查询项目资源的权限。否则,GCP Console 将无法正确处理 Cloud Filestore。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Filestore 文档