配置 NFSv4.1 协议

以下指南介绍了如何使用全新的 Filestore 实例。

NFSv4.1 简介

Filestore 提供 NFSv4.1 协议支持(预览版) 对于在以下服务层级中创建的实例:

  • 可用区级
  • 区域
  • 企业

该功能可以与 Managed Service for Microsoft Active Directory (Managed Microsoft AD) 支持需要客户端和服务器身份验证、消息数据 完整性检查和传输中的数据加密, 在 Filestore 中不可用。

  • 支持使用 LDAP 进行身份验证 和 Kerberos,并包含 以下安全变种(设置):

    • 客户端和服务器身份验证 (krb5)。
    • 消息完整性检查 (krb5i)。包括 之前的设置
    • 传输中的数据加密 (krb5p)。包括 之前的设置

Managed Microsoft AD 是唯一一款支持 支持 LDAPKerberos, NFSv4.1 协议及其在安全和隐私保护方面的优势。集成 则使用代管式 Microsoft AD 不是必需的,因此强烈建议 优化 Google Cloud 用户体验,以管理用户账号和流量波动 群组和权限。

是否应使用 NFSv4.1?

许多企业组织依赖旧系统来处理关键业务 operations.其中许多系统在传输过程中都需要进行身份验证 对网络文件存储空间进行加密NFSv3 不支持 需要考虑身份验证。Filestore 的 NFSv4.1 协议 Managed Microsoft AD 现在满足这项关键用户要求。

目标

在本指南中,您将了解如何完成以下任务:

创建使用 NFSv4.1 的 Filestore 实例

为了将托管式 Microsoft AD 与 Filestore 实例搭配使用, 必须先创建托管式 Microsoft AD 网域,然后再创建 Filestore 实例。

准备工作

  1. Managed Microsoft AD 网域和 Filestore 实例必须使用同一个 VPC 使用同一个项目

    如果您的 Managed Microsoft AD 服务托管在独立于 找到要使用的 Filestore 实例 VPC 网络需要与 Managed Microsoft AD 网域对等互连。

    如需了解详情,请参阅 使用网域对等互连部署具有跨项目访问权限的托管式 Microsoft AD

  2. 完成创建 Filestore 实例的所有设置步骤

  3. 确保受管理的 Microsoft AD 用户具有 POSIX RFC 2307RFC 2307bis 字段,类似于以下内容。

    如需详细了解如何在 Managed Microsoft AD 中配置对象, 请参阅受管理的 Active Directory 对象

    Active Directory 用户和计算机

    以下步骤描述了您需要为 LDAP 设置的属性 用户和群组。您可以使用活跃 目录用户和计算机 MMC 管理单元。

    您可以按如下方式打开属性编辑器

    1. 点击开始
    2. 点击 Windows 管理工具,然后选择 Active Directory 用户和计算机

      系统随即会打开 Active Directory 用户和计算机窗口。

    3. 选择要查看的域名。如需展开其内容, 点击展开箭头。

    4. 在“Active Directory 用户和计算机”的查看菜单中,选择 高级功能

    5. 在左侧窗格中,双击用户

    6. 在“用户”列表中,双击用户以查看其属性编辑器 标签页。

      LDAP 用户必须设置以下属性:

      • uid
      • uidNumber
      • cn
      • gidNumber
      • objectClass

      每个用户的 uidNumber 都必须是唯一的。请注意, uid 属性区分大小写。对于 objectClass 属性, user 是大多数 Active Directory (AD) 部署的默认设置。 下面给出了一个示例:

      uid: Alice
      uidNumber: 139
      gidNumber: 555
      objectClass: user
      

      LDAP 组必须设置以下属性:

      • cn
      • gidNumber
      • objectClass

      每个组必须具有唯一的 gidNumber。请注意, cn 属性区分大小写。对于 objectClass 属性, group 是大多数 AD 部署的默认设置。以下是 示例:

      cn: AliceGroup
      gidNumber: 555
      objectClass: group
      
  4. 授予 Filestore 在其中创建和管理对象的权限 使用 gcloud projects add-iam-policy-binding 命令:

    gcloud projects add-iam-policy-binding MANAGED_MICROSOFT_AD_PROJECT_ID \
    --member=serviceAccount:service-$(gcloud projects describe PROJECT_ID \
    --format='value(PROJECT_ID)')@cloud-filer.iam.gserviceaccount.com \
    --role=roles/managedidentities.filestoreintegrator
    

    替换以下内容:

    • MANAGED_MICROSOFT_AD_PROJECT_ID 是 Managed Microsoft AD 网域所在的项目。
    • PROJECT_ID 是指定项目所在项目的 ID Filestore 实例所在的位置。

    您可能会看到以下错误:

    INVALID_ARGUMENT: Service account service-PROJECT_ID@cloud-filer.iam.gserviceaccount.com does not exist.
    

    如果出现这种情况,请使用以下命令进行解决:

    gcloud beta services identity create --service=file.googleapis.com -project \ MANAGED_MICROSOFT_AD_PROJECT_ID
    

创建 Filestore 实例(无论是否使用 Managed Microsoft AD)

在本部分中,您将创建一个 Filestore 实例以供使用 NFSv4.1 协议包含可选步骤,供用户选择不 使用代管式 Microsoft AD。

  • 确保您有足够的配额。

    实例配额范围按您要使用的区域位置和服务层级。 如需增加可用配额,您必须提交增加配额申请

Google Cloud 控制台

设置实例参数

  1. 在 Google Cloud 控制台中,前往 Filestore 实例 页面。

    转到“Filestore 实例”页面

  2. 点击创建实例

  3. 指定实例的基本参数,包括名称、实例 类型和容量:

    1. 实例 ID 字段中,输入要用于 Filestore 实例。
    2. 实例类型中,选择区域级可用区级

      如需创建企业实例,您必须运行 直接通过 Filestore API 访问。

    3. 分配的容量中,输入要使用的容量。您必须 请输入一个介于 1 TB 到 10 TB 之间的值,以 256 GiB (0.25 TiB)。

    4. 区域中,选择要使用的区域。

    5. VPC 网络中,选择要用于 Filestore 实例和 NFS 客户端。

      • 如果 Managed Microsoft AD 与 Filestore 位于同一项目中 则需要在 VPC 网络 托管式 Microsoft AD 网域。
      • 如果托管式 Microsoft AD 在单独的项目中,则 VPC 应配置已启用 Active Directory 网络对等互连功能的网络 代管式 Microsoft AD 配置。
    6. 分配的 IP 范围中,选择 使用自动分配的 IP 范围(推荐)

    7. 协议中,选择 NFSv4.1

配置实例的身份验证设置

  1. 配置实例的身份验证设置。
    1. 点击身份验证
    2. 选择托管 Managed Microsoft AD 的项目。为了 我们假设当前项目是我们想要 。
    3. 加入 Active Directory 网域列表中,选择 您要使用的代管式 Microsoft AD 网域。
    4. 计算机账号名称字段中,输入计算机账号名称 您要用来标识该存储分区中的 Filestore 实例 托管式 Microsoft AD 网域。名称不得超过 15 个 字母数字字符
    5. 文件共享名称字段中,输入共享的名称 将由 NFSv4.1 客户端使用
  2. 访问权限控制窗格中,完成以下任一步骤:

    • 如果使用 Managed Microsoft AD,请选择 按 IP 地址或范围限制访问权限

      1. 按要定义的 IP 或子网设置访问规则。对于 ,请使用以下设置:
      2. IP 地址或范围 1 字段中,输入 IP 地址 或范围。
      3. 点击访问权限 1 下拉列表,然后选择管理员
      4. 点击 Mountsec= 1 下拉列表,然后选择 sys 复选框。

      Filestore 的默认 / 所有者为 root。接收者 允许其他用户和组访问实例 您必须创建一条访问规则来启用管理虚拟机 使用 Admin 角色进行访问和 sec=sys 安全设置 设置。

    • 如果您没有使用 Managed Microsoft AD,请选择 向 VPC 网络上的所有客户端授予访问权限

      如果未使用托管式 Microsoft AD,则仅支持 安全设置为 sec=sys

  3. 点击创建以创建实例。

gcloud

  1. 安装并初始化 gcloud CLI

    如果您已安装 gcloud CLI,请运行以下命令: 命令进行更新:

    gcloud components update
    
  2. 请完成以下任一步骤:

    1. 如果使用 Managed Microsoft AD,请运行以下命令 gcloud beta filestore instances create 创建 Filestore 可用区级资源, 区域级或企业实例:

      gcloud beta filestore instances create INSTANCE-ID \
      --description="DESCRIPTION" \
      --region=LOCATION \
      --tier=TIER \
      --protocol=PROTOCOL \
      --file-share=name="FILE_SHARE_NAME",capacity=CAPACITYTB \
      --network=name="VPC_NETWORK",connect-mode=CONNECT_MODE,reserved-ip-range="RESERVED_IP_RANGE" \
      --managed-ad=domain=projects/MANAGED_AD_PROJECT_ID/locations/global/domains/MANAGED_AD_DOMAIN_NAME,computer=DOMAIN_COMPUTER_ACCOUNT \
      --project=CONSUMER_PROJECT_ID
      

      替换以下内容:

      • INSTANCE_ID 是 Filestore 的实例 ID 实例。请参阅 为实例命名
      • DESCRIPTION 是对所需实例的说明 使用。
      • LOCATION 是您希望 驻留的 Filestore 实例。
      • TIER服务层级 资源。
      • PROTOCOLNFS_v4_1
      • FILE_SHARE_NAME 是您为 NFS 指定的名称 通过实例提供的文件共享。
      • CAPACITY 是文件共享所需的大小, 介于 1 TiB 到 10 TiB 之间。
      • VPC_NETWORK 是 VPC 的名称 网络请参阅 选择 VPC 网络。 如果您想通过某项服务指定共享 VPC 项目时,必须指定完全限定网络名称, 的格式为 projects/HOST_PROJECT_ID/global/networks/SHARED_VPC_NAME 并指定 connect-mode=PRIVATE_SERVICE_ACCESS,类似于 更改为以下代码:

        --network=name=projects/host/global/networks/shared-vpc-1,connect-mode=PRIVATE_SERVICE_ACCESS

        您无法指定旧版网络vpc_network 值。如有必要,请创建一个 新 VPC 网络 相关说明 创建自动模式 VPC 网络

      • MANAGED_AD_PROJECT_ID 是项目 ID, 托管 Microsoft AD 服务位于此处。

      • MANAGED_AD_DOMAIN_NAME 是 您要使用的托管式 Microsoft AD 服务。这是域名 您在创建托管式 Microsoft AD 时选择的名称 网域。

      • DOMAIN_COMPUTER_ACCOUNT 是您希望在 在网域中调用的集群。

      • CONSUMER_PROJECT_ID 是执行身份验证的项目的 ID 包含 Filestore 实例。

      • CONNECT_MODEDIRECT_PEERINGPRIVATE_SERVICE_ACCESS。 如果您要指定共享 VPC 作为网络,则必须 还将 PRIVATE_SERVICE_ACCESS 指定为连接模式。此标志 是 VPC 网络对等互连的必要条件, 使用代管式 Microsoft AD。

      • RESERVED_IP_RANGE 是 Filestore 实例的 IP 地址范围。如果您要指定 connect-mode=PRIVATE_SERVICE_ACCESS,并且希望使用预留的 IP 地址范围,您必须指定 分配的地址范围 而不是一个 CIDR 范围请参阅 配置预留的 IP 地址。 我们建议您跳过此标志,以允许 Filestore 自动查找可用的 IP 地址范围 实例。

    2. 如果使用的不是 Managed Microsoft AD,请运行与 创建 Filestore 实例, 省略 --managed-ad 标志以及 VPC 网络对等互连的标志, 即 connect-modereserved-ip-range。请使用以下 命令作为示例:

      gcloud beta filestore instances create INSTANCE-ID \
      --description="DESCRIPTION" \
      --region=LOCATION \
      --tier=TIER \
      --protocol=PROTOCOL \
      --file-share=name="FILE_SHARE_NAME",capacity=CAPACITYTB \
      --network=name="VPC_NETWORK" \
      --project=CONSUMER_PROJECT_ID
      

了解 NFSv4.1 中基于网络的访问权限控制列表 (ACL)。

在 NFSv3 中,仅支持 sys 安全变种。此设置信任 客户端在装载期间提供的用户 uidgid

在 Filestore NFSv4.1 协议中,多个网络 ACL 安全变种 或设置:

  • krb5

    使用经过验证的 Kerberos 票据对客户端进行身份验证 针对代管式 Microsoft AD Kerberos 服务器。

  • krb5i

    包含 krb5 提供的身份验证,还使用 Kerberos 来运行 消息完整性检查进出实例的所有网络流量。

  • krb5p

    包括 krb5 提供的身份验证和消息完整性检查 krb5i,并使用 Kerberos 对传输中的数据进行加密。

如果您想利用这些选项,Managed Service for Microsoft Active Directory 集成 为必填字段。

如果未指定 Managed Service for Microsoft Active Directory 网域,则仅指定 sys 安全变种 。

如需了解详情,请参阅 NFSv4.1 限制

在 Linux 客户端上装载 Filestore NFSv4.1 实例

以下步骤说明了如何在 Linux 客户端上装载实例。

  • 使用 sec=sys 进行装载,以获取标准 NFS 权限:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • 使用 sec=krb5 进行装载,以进行基于 Kerberos 的身份验证:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • 使用 sec=krb5i 进行装载,以实现基于 Kerberos 的身份验证和消息完整性 检查:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • 使用 sec=krb5p 进行装载,以进行基于 Kerberos 的身份验证、进行完整性检查 和传输加密:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5p,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    

    替换以下内容:

    • FILESTORE-INSTANCE-FQDN 是完全限定域名,其中 Filestore 实例所在的位置。
    • INSTANCE_SHARE_POINT 是 Filestore 的文件共享名称 实例。
    • MOUNT_POINT 是您要装载的装载点或目录名称 要装载。

Linux 客户端配置

NFSv4.1 Filestore 实例允许客户端执行 NFS 操作 各种安全变种这些变种由实例配置 通过 Filestore NFSv4.1 上的网络 ACL 来管理 还是在创建实例后进行更新。

sys 安全变种使用标准 Unix 身份验证,而 krb5krb5ikrb5p 变种使用基于 Kerberos 的身份验证。

krb5krb5ikrb5p 变种要求将客户端连接到 与 Filestore 实例相同的托管式 Microsoft AD 网域。 完成适合您环境的步骤。

Ubuntu 映像

  1. 通过 SSH 连接到 Compute Engine 实例。
  2. 运行以下命令以加入 Managed Microsoft AD 网域。

    1. 运行以下设置命令:

      sudo apt-get update \
      sudo apt-get -y -qq install adcli realmd sssd sssd-tools packagekit krb5-user \ nfs-common expect retry
      
    2. 当系统提示您输入领域时,请将现有条目替换为 Filestore 上的代管式 Microsoft AD 网域 实例。请以大写形式输入值,然后按箭头 键选择确定,然后按 Enter 键。

    3. 当系统提示您输入主机时,请将其留空并继续。

    4. 请完成以下任一步骤:

      • 对于主机名长度小于或等于 15 的虚拟机 字符,请运行以下命令:

        sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no MANAGED_AD_DOMAIN_NAME
        

        替换以下内容:

        • JOIN_DOMAIN_USER 是用户账号的名称 加入网域时所用的电子邮件地址。
        • MANAGED_AD_DOMAIN_NAME 是 您要使用的托管式 Microsoft AD 服务。
      • 对于主机名长度超过 15 个字符的虚拟机, 运行以下命令:

        sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no \ --user-principal=host/`hostname -f`@MANAGED_AD_REALM_NAME MANAGED_AD_DOMAIN_NAME
        

        替换以下内容:

        • JOIN_DOMAIN_USER 是用户账号的名称 加入网域时所用的电子邮件地址。
        • MANAGED_AD_REALM_NAME 是 您要使用的托管式 Microsoft AD 服务。
        • MANAGED_AD_DOMAIN_NAME 是 您要使用的托管式 Microsoft AD 服务。
  3. 更新 Kerberos 配置。使用必需的命令更新 /etc/krb5.conf 领域定义和领域-域映射:

     [realms]
              DOMAIN_NAME = {
                       kdc = DOMAIN_NAME
                       default_domain = DOMAIN_NAME
              }
     [domain_realm]
              .domain_name_lowercase = DOMAIN_NAME
              domain_name_lowercase = DOMAIN_NAME
    

    替换以下内容:

    • DOMAIN_NAME 是您要使用的域名,已输入 全部大写。
    • domain_name_lowercase 是您要使用的域名。 以小写形式输入。

    请参阅以下示例:

    [realms]
           FILE.DEMO.LOCAL = {
                    kdc = FILE.DEMO.LOCAL
                    default_domain = FILE.DEMO.LOCAL
           }
    
    [domain_realm]
           .file.demo.local = FILE.DEMO.LOCAL
           file.demo.local = FILE.DEMO.LOCAL
    
  4. 运行 rpc-gssd 服务。添加以下 No-Strip 属性值 至 /etc/idmapd.conf 内的 [General] 部分:

     [General]
     No-Strip = both
    
  5. 运行以下命令:

    sudo systemctl restart rpc-gssd
    

Centos 图片

  1. 通过 SSH 连接到 Compute Engine 实例。
  2. 加入 Managed Microsoft AD 网域:

    sudo yum update \
    sudo yum install -y adcli realmd sssd samba-common-tools krb5-workstation nfs-utils \ bind-utils openldap-clients
    
  3. 请完成以下任一步骤:

    • 对于主机名长度不超过 15 个字符的虚拟机,请运行以下命令: 以下命令:

      sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no MANAGED_AD_DOMAIN_NAME
      

      替换以下内容:

      • JOIN_DOMAIN_USER 是用户账号的名称 加入网域时所用的电子邮件地址。
      • MANAGED_AD_DOMAIN_NAME 是 您要使用的托管式 Microsoft AD 服务。
    • 对于主机名长度超过 15 个字符的虚拟机,请运行 以下命令:

      sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no \ --user-principal=host/`hostname -f`@MANAGED_AD_REALM_NAME MANAGED_AD_DOMAIN_NAME
      

      替换以下内容:

      • JOIN_DOMAIN_USER 是用户账号的名称 加入网域时所用的电子邮件地址。
      • MANAGED_AD_REALM_NAME 是 您要使用的托管式 Microsoft AD 服务。
      • MANAGED_AD_DOMAIN_NAME 是 您要使用的托管式 Microsoft AD 服务。
  4. 确保 sssd 服务正在运行:

    sudo systemctl status sssd
    
  5. 运行 rpc-gssd 服务。在 No-Strip 属性下方添加以下代码 值添加到 /etc/idmapd.conf 内的 [General] 部分中:

    [General]
    No-Strip = both
    
  6. 运行以下命令。此命令有助于确保 NFS 客户端 从 NFS 服务器主机名中删除域名。如需更多信息 请参阅 NFS Ganesha 列表归档Arch Linux Archive

    sudo systemctl start rpc-gssd
    

从 Filestore 实例断开并重新连接到 Managed Microsoft AD

Google Cloud 控制台

断开托管式 Microsoft AD 与 Filestore 实例之间的连接

  1. 断开连接到 Managed Microsoft AD 的 Filestore 实例连接。

    在 Google Cloud 控制台中,前往“Filestore 实例”页面。

    转到“Filestore 实例”页面

  2. 点击要修改的实例的 ID。

  3. NFS 装载点窗格中的协议下, Directory service name(目录服务名称),点击 断开与 AD 域的连接

  4. 未能断开与网域的连接窗口中,阅读提醒内容,然后执行以下操作: 点击修改实例

    必须至少将访问权限控制中的一条规则映射到 具有 sys 装载安全设置的管理员角色,例如 Access=Admin Mountsec=sys

  5. 修改共享窗格中,找到 访问权限设置为管理员。点击 Mount sec= ...,然后选择 sys 可将相应选项添加到现有设置中。

  6. 点击 OK(确定)。

  7. 点击保存

  8. Directory service name 旁边,点击 断开与 AD 域的连接

  9. 要断开与域名的连接吗?窗口中的字段中,输入名称 您想取消关联的网域的名称。

  10. 点击取消关联

修改访问权限规则

  1. 刷新页面。 请注意,Directory service name 现已设为

  2. 点击修改

  3. 修改共享窗格中,找到为角色设置访问权限的所有规则 而不是管理员,例如编辑者。在规则中,点击 装载 sec= ...,然后选择 sys 以将其添加到现有 设置。点击确定

  4. 点击保存

  5. 刷新页面。

    规则设置会更新。

将托管式 Microsoft AD 重新连接到 Filestore 实例

  1. 将 Filestore 实例重新连接到 Managed Microsoft AD。

    NFS 装载点窗格中的协议下, Directory service name(目录服务名称),点击 加入 AD 网域

  2. 将此实例加入 Active Directory 网域窗口中, 选择使用当前项目中的网域,在 加入 Active Directory 网域菜单中,选择要加入的网域。 。

  3. 计算机账号名称菜单中,输入一个名称。

  4. 点击加入网域

  5. 刷新页面。 请注意,Directory service name(目录服务名称)已更新 。

  6. 点击修改

  7. 修改共享窗格中,点击 在所有适用的规则中装载 sec= ...,并移除 sys 选择。点击确定

  8. 点击保存

  9. 刷新页面。

    规则设置会更新。

后续步骤