NFSv4.1 プロトコルについて

次のガイドでは、NFSv4.1 プロトコルについて説明します。

Filestore は、次のサービス階層で作成されたインスタンスに対して NFSv4.1 プロトコルをサポートしています。

  • ゾーン
  • リージョン
  • Enterprise

この機能は、Managed Service for Microsoft Active Directory(Managed Microsoft AD)と統合して、クライアントとサーバーの認証、メッセージ データの完全性チェック、および転送中のデータの暗号化(Filestore では以前に利用できなかった機能)を必要とするワークロードをサポートします。

認証は LDAPKerberos を使用してサポートされており、次のセキュリティ フレーバー(設定)が含まれています。

  • クライアントとサーバーの認証(krb5)。
  • メッセージ完全性チェック(krb5i)。前の設定の機能が含まれています。
  • 転送中のデータの暗号化(krb5p)。前の設定の機能が含まれています。

Managed Microsoft AD は、LDAPKerberos の両方および NFSv4.1 プロトコルとそのセキュリティとプライバシーの便益の要件をサポートする唯一のフルマネージド Google Cloud ソリューションです。Managed Microsoft AD との統合は必須ではありませんが、ユーザー アカウントを管理し、変動するグループと権限を管理する最適なユーザー エクスペリエンスを強くおすすめします。 Google Cloud

NFSv4.1 を使用するべきか

多くの企業組織は、ビジネス クリティカルな運用で以前のシステムに依存しています。これらのシステムの多くでは、ネットワーク ファイル ストレージに認証と転送中の暗号化が必要です。NFSv3 は認証を想定して設計されていません。Filestore の NFSv4.1 プロトコルと Managed Microsoft AD の統合により、この重要なユーザー要件が満たされるようになりました。

NFSv4.1 のメリットの詳細については、サポートされているプロトコルについてをご覧ください。

NFSv4.1 のネットワーク ベースのアクセス制御リスト(ACL)について。

NFSv3 では、sys セキュリティ フレーバーのみがサポートされています。この設定では、マウント中にクライアントによって提供されたユーザー uidgid が信頼されます。

Filestore NFSv4.1 プロトコルでは、いくつかのネットワーク ACL セキュリティ フレーバーまたは設定を使用できます。

  • krb5

    Kerberos チケットを使用してクライアントを認証します。これは、Managed Microsoft AD Kerberos サーバーに対して検証されます。

  • krb5i

    krb5 によって提供される認証を含み、インスタンスとの間のすべてのネットワーク トラフィックに対してメッセージの完全性チェックを実行するために Kerberos も使用します。

  • krb5p

    krb5 によって提供される認証と krb5i のメッセージ完全性チェックを含み、転送中のデータの暗号化に Kerberos を使用します。

これらのオプションを利用するには、Managed Service for Microsoft Active Directory との統合が必要です。詳細については、Managed Microsoft AD を使用して Filestore インスタンスを作成するをご覧ください。

Managed Service for Microsoft Active Directory ドメインが指定されていない場合は、sys セキュリティ フレーバーのみがサポートされます。

詳細については、NFSv4.1 の制限事項をご覧ください。

Linux クライアントへの Filestore NFSv4.1 インスタンスのマウント

以下の手順では、Linux クライアントにインスタンスをマウントする方法を説明します。

  • 標準の NFS 権限の場合は sec=sys でマウントします。

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Kerberos ベースの認証の場合は sec=krb5 でマウントします。

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Kerberos ベースの認証とメッセージ完全性チェックの場合は sec=krb5i でマウントします。

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Kerberos ベースの認証、完全性チェック、転送中の暗号化の場合は sec=krb5p でマウントします。

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5p,rw \ FILESTORE-INSTANCE-FQ
    DN:/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 インスタンスと同じ Managed Microsoft AD ドメインに接続する必要があります。環境に応じて、次の手順を完了します。

Ubuntu イメージ

  1. Compute Engine インスタンスに SSH 接続します。
  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 インスタンスで使用されている Managed Microsoft AD ドメインに置き換えます。値を大文字で入力してから、矢印キーを押して [OK] を選択し、[Enter] キーを押します。

    3. ホストの入力を求められたら、空白のまま続行します。

    4. 次のいずれかの手順を実行します。

      • ホスト名の長さが 15 文字以下の VM の場合は、次のコマンドを実行します。

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

        以下を置き換えます。

        • JOIN_DOMAIN_USER は、ドメインに参加するために使用されるユーザー アカウントの名前です。
        • MANAGED_AD_DOMAIN_NAME は、使用する Managed Microsoft AD サービスのドメイン名です。
      • ホスト名の長さが 15 文字を超える VM の場合は、次のコマンドを実行します。

        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 は、使用する Managed Microsoft AD サービスのレルム名です。
        • MANAGED_AD_DOMAIN_NAME は、使用する Managed 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 サービスを実行します。/etc/idmapd.conf 内の [General] セクションに次の No-Strip 属性値を追加します。

     [General]
     No-Strip = both
    
  5. 次のコマンドを実行します。

    sudo systemctl restart rpc-gssd
    

CentOS のイメージ

  1. Compute Engine インスタンスに SSH 接続します。
  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 文字以下の VM の場合は、次のコマンドを実行します。

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

      以下を置き換えます。

      • JOIN_DOMAIN_USER は、ドメインへの参加に使用されるユーザー アカウントの名前です。
      • MANAGED_AD_DOMAIN_NAME は、使用する Managed Microsoft AD サービスのドメイン名です。
    • ホスト名の長さが 15 文字を超える VM の場合は、次のコマンドを実行します。

      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 は、使用する Managed Microsoft AD サービスのレルム名です。
      • MANAGED_AD_DOMAIN_NAME は、使用する Managed Microsoft AD サービスのドメイン名です。
  4. sssd サービスが実行されていることを確認します。

    sudo systemctl status sssd
    
  5. rpc-gssd サービスを実行します。/etc/idmapd.conf 内の [General] セクションの No-Strip 属性値の下に、次の内容を追加します。

    [General]
    No-Strip = both
    
  6. 以下のコマンドを実行します。このコマンドは、NFS クライアントが NFS サーバーのホスト名からドメイン名を削除しないようにするために役立ちます。詳細については、NFS Ganesha のアーカイブ一覧Arch Linux のアーカイブをご覧ください。

    sudo systemctl start rpc-gssd
    

次のステップ