À propos du protocole NFSv4.1

Le guide suivant décrit le protocole NFSv4.1.

Filestore est compatible avec le protocole NFSv4.1 pour les instances créées dans les niveaux de service suivants :

  • Zonal
  • Régional
  • Entreprise

Cette fonctionnalité peut être intégrée au service géré pour Microsoft Active Directory (Managed Microsoft AD) afin de prendre en charge les charges de travail qui nécessitent l'authentification du client et du serveur, les vérifications de l'intégrité des données des messages et le chiffrement des données en transit, des fonctionnalités qui n'étaient pas disponibles auparavant dans Filestore.

L'authentification est compatible avec LDAP et Kerberos, et inclut les paramètres de sécurité suivants :

  • Authentification du client et du serveur (krb5).
  • Contrôles d'intégrité des messages (krb5i). Inclut les fonctionnalités du paramètre précédent.
  • Chiffrement des données en transit (krb5p). Inclut les fonctionnalités du paramètre précédent.

Microsoft AD géré est la seule solution Google Cloud entièrement gérée qui soit compatible avec LDAP et Kerberos, qui sont des exigences pour le protocole NFSv4.1 et ses avantages en termes de sécurité et de confidentialité. Bien que l'intégration à Managed Microsoft AD ne soit pas obligatoire, elle est fortement recommandée pour une expérience utilisateur optimale Google Cloud afin de gérer les comptes utilisateur, les groupes et les autorisations fluctuants.

Devez-vous utiliser NFSv4.1 ?

De nombreuses entreprises s'appuient sur des systèmes existants pour leurs opérations critiques. Nombre de ces systèmes nécessitent une authentification et un chiffrement en transit pour leur stockage de fichiers réseau. NFSv3 n'a pas été conçu pour l'authentification. L'intégration du protocole NFSv4.1 de Filestore avec Microsoft AD géré répond désormais à cette exigence utilisateur essentielle.

Pour en savoir plus sur les avantages de NFSv4.1, consultez À propos des protocoles compatibles.

Comprendre les listes de contrôle des accès (LCA) basées sur le réseau dans NFSv4.1.

Dans NFSv3, seule la saveur de sécurité sys est acceptée. Ce paramètre fait confiance à l'utilisateur uid et à gid fournis par le client lors du montage.

Dans le protocole Filestore NFSv4.1, plusieurs saveurs ou paramètres de sécurité des LCA réseau sont disponibles :

  • krb5

    Authentifie le client à l'aide d'un ticket Kerberos, qui est validé par rapport au serveur Kerberos Managed Microsoft AD.

  • krb5i

    Inclut l'authentification fournie par krb5 et utilise également Kerberos pour exécuter des vérifications de l'intégrité des messages sur tout le trafic réseau vers et depuis l'instance.

  • krb5p

    Inclut l'authentification fournie par krb5 et les vérifications de l'intégrité des messages de krb5i. Utilise également Kerberos pour le chiffrement des données en transit.

Si vous souhaitez profiter de ces options, l'intégration du service géré pour Microsoft Active Directory est requise. Pour en savoir plus, consultez Créer une instance Filestore avec Managed Microsoft AD.

Si aucun domaine de service géré pour Microsoft Active Directory n'est spécifié, seule la saveur de sécurité sys est acceptée.

Pour en savoir plus, consultez Limites de NFSv4.1.

Installer des instances Filestore NFSv4.1 sur des clients Linux

Les étapes suivantes vous montrent comment monter des instances sur des clients Linux.

  • Installez avec sec=sys pour les autorisations NFS standards :

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Effectuez le montage avec sec=krb5 pour l'authentification basée sur Kerberos :

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Effectuez le montage avec sec=krb5i pour l'authentification basée sur Kerberos et les vérifications de l'intégrité des messages :

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Effectuez le montage avec sec=krb5p pour l'authentification, les vérifications d'intégrité et le chiffrement en transit basés sur Kerberos :

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

    Remplacez les éléments suivants :

    • FILESTORE-INSTANCE-FQDN est le nom de domaine complet où se trouve l'instance Filestore.
    • INSTANCE_SHARE_POINT est le nom du partage de fichiers de l'instance Filestore à laquelle vous souhaitez vous connecter.
    • MOUNT_POINT correspond au nom du point d'installation ou du répertoire dans lequel vous souhaitez effectuer l'installation.

Configuration du client Linux

Une instance Filestore NFSv4.1 permet aux clients d'effectuer des opérations NFS à l'aide de différents niveaux de sécurité. Ces saveurs sont configurées par l'administrateur de l'instance via les LCA réseau sur l'instance Filestore NFSv4.1, lors de la création ou si elles sont mises à jour après la création.

Le niveau de sécurité sys utilise l'authentification Unix standard, tandis que les niveaux krb5, krb5i et krb5p utilisent l'authentification basée sur Kerberos.

Les versions krb5, krb5i et krb5p exigent que les clients soient connectés au même domaine Managed Microsoft AD que l'instance Filestore. Suivez les étapes ci-dessous qui correspondent à votre environnement.

Image Ubuntu

  1. Connectez-vous en SSH à l'instance Compute Engine.
  2. Exécutez les commandes suivantes pour rejoindre le domaine Managed Microsoft AD.

    1. Exécutez la commande de configuration suivante :

      sudo apt-get update \
      sudo apt-get -y -qq install adcli realmd sssd sssd-tools packagekit krb5-user \ nfs-common expect retry
      
    2. Lorsque vous êtes invité à indiquer le domaine, remplacez l'entrée existante par le domaine Microsoft AD géré utilisé sur l'instance Filestore. Saisissez la valeur en majuscules, puis appuyez sur la flèche pour sélectionner OK, puis sur Entrée.

    3. Lorsque vous êtes invité à saisir des hôtes, laissez le champ vide et continuez.

    4. Effectuez l'une des actions suivantes :

      • Pour les VM dont le nom d'hôte comporte 15 caractères ou moins, exécutez la commande suivante :

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

        Remplacez les éléments suivants :

        • JOIN_DOMAIN_USER correspond au nom du compte utilisateur utilisé pour rejoindre le domaine.
        • MANAGED_AD_DOMAIN_NAME correspond au nom de domaine du service Microsoft AD géré que vous souhaitez utiliser.
      • Pour les VM dont le nom d'hôte comporte plus de 15 caractères, exécutez la commande suivante :

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

        Remplacez les éléments suivants :

        • JOIN_DOMAIN_USER correspond au nom du compte utilisateur utilisé pour rejoindre le domaine.
        • MANAGED_AD_REALM_NAME correspond au nom du domaine du service Microsoft AD géré que vous souhaitez utiliser.
        • MANAGED_AD_DOMAIN_NAME correspond au nom de domaine du service Microsoft AD géré que vous souhaitez utiliser.
  3. Mettez à jour la configuration Kerberos. Mettez à jour /etc/krb5.conf avec la définition du domaine et le mappage domaine-royaume requis :

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

    Remplacez les éléments suivants :

    • DOMAIN_NAME correspond au nom de domaine que vous souhaitez utiliser, saisi en majuscules.
    • domain_name_lowercase correspond au nom de domaine que vous souhaitez utiliser, saisi en minuscules.

    Voici un exemple :

    [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. Exécutez le service rpc-gssd. Ajoutez la valeur d'attribut No-Strip suivante à la section [General] dans /etc/idmapd.conf :

     [General]
     No-Strip = both
    
  5. Exécutez la commande suivante :

    sudo systemctl restart rpc-gssd
    

Image CentOS

  1. Connectez-vous en SSH à l'instance Compute Engine.
  2. Associez-la au domaine Microsoft AD géré :

    sudo yum update \
    sudo yum install -y adcli realmd sssd samba-common-tools krb5-workstation nfs-utils \ bind-utils openldap-clients
    
  3. Effectuez l'une des actions suivantes :

    • Pour les VM dont le nom d'hôte comporte 15 caractères ou moins, exécutez la commande suivante :

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

      Remplacez les éléments suivants :

      • JOIN_DOMAIN_USER correspond au nom du compte utilisateur utilisé pour rejoindre le domaine.
      • MANAGED_AD_DOMAIN_NAME correspond au nom de domaine du service Microsoft AD géré que vous souhaitez utiliser.
    • Pour les VM dont le nom d'hôte comporte plus de 15 caractères, exécutez la commande suivante :

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

      Remplacez les éléments suivants :

      • JOIN_DOMAIN_USER correspond au nom du compte utilisateur utilisé pour rejoindre le domaine.
      • MANAGED_AD_REALM_NAME correspond au nom du domaine du service Microsoft AD géré que vous souhaitez utiliser.
      • MANAGED_AD_DOMAIN_NAME correspond au nom de domaine du service Microsoft AD géré que vous souhaitez utiliser.
  4. Assurez-vous que le service sssd est en cours d'exécution :

    sudo systemctl status sssd
    
  5. Exécutez le service rpc-gssd. Ajoutez ce qui suit sous la valeur de l'attribut No-Strip à la section [General] dans /etc/idmapd.conf :

    [General]
    No-Strip = both
    
  6. Exécutez la commande ci-dessous. Cette commande permet de s'assurer que le client NFS ne supprime pas le nom de domaine du nom d'hôte du serveur NFS. Pour en savoir plus, consultez les archives de la liste NFS Ganesha et les archives Arch Linux :

    sudo systemctl start rpc-gssd
    

Étapes suivantes