NFSv4.1-Protokoll

In diesem Leitfaden wird das NFSv4.1-Protokoll beschrieben.

Filestore bietet Unterstützung für das NFSv4.1-Protokoll für Instanzen, die in den folgenden Dienststufen erstellt wurden:

  • Zonal
  • Regional
  • Unternehmen

Diese Funktion kann in Managed Service for Microsoft Active Directory (Managed Microsoft AD) eingebunden werden, um Arbeitslasten zu unterstützen, die Client- und Serverauthentifizierung, Überprüfungen der Nachrichtendaten integrität und Datenverschlüsselung bei der Übertragung erfordern. Diese Funktionen waren in Filestore bisher nicht verfügbar.

Die Authentifizierung wird über LDAP und Kerberos unterstützt und umfasst die folgenden Sicherheitsvarianten (Einstellungen):

  • Client- und Serverauthentifizierung (krb5).
  • Überprüfungen der Nachrichtenintegrität (krb5i). Umfasst die Funktionen der vorherigen Einstellung.
  • Datenverschlüsselung bei der Übertragung (krb5p). Umfasst die Funktionen der vorherigen Einstellung.

Managed Microsoft AD ist die einzige vollständig verwaltete Google Cloud Lösung, die sowohl LDAP als auch Kerberos unterstützt. Dies sind Anforderungen für das NFSv4.1-Protokoll und seine Sicherheits- und Datenschutzvorteile. Die Einbindung in Managed Microsoft AD ist zwar nicht erforderlich, wird aber dringend empfohlen, um eine optimale Google Cloud Nutzererfahrung bei der Verwaltung von Nutzerkonten und wechselnden Gruppen und Berechtigungen zu gewährleisten.

Sollte ich NFSv4.1 verwenden?

Viele Unternehmen verwenden für geschäftskritische Vorgänge ältere Systeme. Viele dieser Systeme erfordern Authentifizierung und Verschlüsselung bei der Übertragung für ihren Netzwerkspeicher. NFSv3 wurde nicht mit Blick auf die Authentifizierung entwickelt. Die NFSv4.1-Protokolleinbindung von Filestore in Managed Microsoft AD erfüllt jetzt diese wichtige Nutzeranforderung.

Weitere Informationen zu den Vorteilen von NFSv4.1 finden Sie unter Unterstützte Protokolle.

Netzwerkbasierte Access Control Lists (ACLs) in NFSv4.1

In NFSv3 wird nur die Sicherheitsvariante sys unterstützt. Bei dieser Einstellung wird der Nutzer uid und gid vertraut, die vom Client während der Bereitstellung bereitgestellt werden.

Im Filestore NFSv4.1-Protokoll sind mehrere Sicherheitsvarianten oder Einstellungen für Netzwerk-ACLs verfügbar:

  • krb5

    Authentifiziert den Client mit einem Kerberos-Ticket, das auf dem Managed Microsoft AD-Kerberos-Server validiert wird.

  • krb5i

    Umfasst die von krb5 bereitgestellte Authentifizierung und verwendet Kerberos auch, um die Nachrichtenintegrität für den gesamten Netzwerkverkehr zur und von der Instanz zu prüfen.

  • krb5p

    Umfasst die von krb5 bereitgestellte Authentifizierung und die Überprüfungen der Nachrichtenintegrität von krb5i und verwendet Kerberos auch für die Datenverschlüsselung bei der Übertragung.

Wenn Sie diese Optionen nutzen möchten, ist die Einbindung von Managed Service for Microsoft Active Directory erforderlich. Weitere Informationen finden Sie unter Filestore-Instanz mit Managed Microsoft AD erstellen.

Wenn keine Managed Service for Microsoft Active Directory-Domain angegeben ist, wird nur die Sicherheitsvariante sys unterstützt.

Weitere Informationen finden Sie unter Einschränkungen von NFSv4.1.

Filestore NFSv4.1-Instanzen auf Linux-Clients bereitstellen

In den folgenden Schritten wird beschrieben, wie Sie Instanzen auf Linux-Clients bereitstellen.

  • Mit sec=sys für Standard-NFS-Berechtigungen bereitstellen:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Mit sec=krb5 für die Kerberos-basierte Authentifizierung bereitstellen:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Mit sec=krb5i für die Kerberos-basierte Authentifizierung und Überprüfungen der Nachrichtenintegrität bereitstellen:

    sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
    
  • Mit sec=krb5p für die Kerberos-basierte Authentifizierung, Überprüfungen der Nachrichtenintegrität und Verschlüsselung bei der Übertragung bereitstellen:

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

    Ersetzen Sie Folgendes:

    • FILESTORE-INSTANCE-FQDN ist der vollständig qualifizierte Domainname, unter dem sich die Filestore-Instanz befindet.
    • INSTANCE_SHARE_POINT ist der Name der Dateifreigabe der Filestore Instanz, mit der Sie eine Verbindung herstellen möchten.
    • MOUNT_POINT ist der Bereitstellungspunkt oder Verzeichnisname, unter dem Sie die Bereitstellung ausführen möchten.

Linux-Clientkonfiguration

Mit einer NFSv4.1-Filestore-Instanz können Clients NFS-Vorgänge mit verschiedenen Sicherheitsvarianten ausführen. Diese Varianten werden vom Instanzadministrator über Netzwerk-ACLs in der Filestore NFSv4.1-Instanz konfiguriert, entweder bei der Erstellung oder wenn sie nach der Erstellung aktualisiert werden.

Die Sicherheitsvariante sys verwendet die Standard-Unix-Authentifizierung, während die Varianten krb5, krb5i und krb5p die Kerberos-basierte Authentifizierung verwenden.

Für die Varianten krb5, krb5i und krb5p müssen die Clients mit derselben Managed Microsoft AD-Domain verbunden sein wie die Filestore-Instanz. Führen Sie die für Ihre Umgebung geeigneten Schritte aus.

Ubuntu-Image

  1. Stellen Sie eine SSH-Verbindung zur Compute Engine-Instanz her.
  2. Führen Sie die folgenden Befehle aus, um der Managed Microsoft AD-Domain beizutreten.

    1. Führen Sie den folgenden Einrichtungsbefehl aus:

      sudo apt-get update \
      sudo apt-get -y -qq install adcli realmd sssd sssd-tools packagekit krb5-user \ nfs-common expect retry
      
    2. Wenn Sie nach dem Realm gefragt werden, ersetzen Sie den vorhandenen Eintrag durch die Managed Microsoft AD-Domain, die in der Filestore-Instanz verwendet wird. Geben Sie den Wert in Großbuchstaben ein, drücken Sie dann die Pfeil taste, um OK auszuwählen, und drücken Sie dann die Eingabetaste.

    3. Wenn Sie nach Hosts gefragt werden, lassen Sie das Feld leer und fahren Sie fort.

    4. Führen Sie einen der folgenden Schritte aus:

      • Führen Sie für VMs mit einem Hostnamen, der maximal 15 Zeichen lang ist, den folgenden Befehl aus:

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

        Ersetzen Sie Folgendes:

        • JOIN_DOMAIN_USER ist der Name des Nutzerkontos , das zum Beitreten der Domain verwendet wird.
        • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
      • Führen Sie für VMs mit einem Hostnamen, der länger als 15 Zeichen ist, den folgenden Befehl aus:

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

        Ersetzen Sie Folgendes:

        • JOIN_DOMAIN_USER ist der Name des Nutzerkontos , das zum Beitreten der Domain verwendet wird.
        • MANAGED_AD_REALM_NAME ist der Realm-Name des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
        • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
  3. Aktualisieren Sie die Kerberos-Konfiguration. Aktualisieren Sie /etc/krb5.conf mit der erforderlichen Realm-Definition und Realm-Domain-Zuordnung:

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

    Ersetzen Sie Folgendes:

    • DOMAIN_NAME ist der Domainname, den Sie verwenden möchten, eingegeben in Großbuchstaben.
    • domain_name_lowercase ist der Domainname, den Sie verwenden möchten, in Kleinbuchstaben.

    Ein Beispiel finden Sie hier:

    [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. Führen Sie den rpc-gssd-Dienst aus. Fügen Sie den folgenden Attributwert No-Strip zum Abschnitt [General] in /etc/idmapd.conf hinzu:

     [General]
     No-Strip = both
    
  5. Führen Sie dazu diesen Befehl aus:

    sudo systemctl restart rpc-gssd
    

CentOS-Image

  1. Stellen Sie eine SSH-Verbindung zur Compute Engine-Instanz her.
  2. Treten Sie der Managed Microsoft AD-Domain bei:

    sudo yum update \
    sudo yum install -y adcli realmd sssd samba-common-tools krb5-workstation nfs-utils \ bind-utils openldap-clients
    
  3. Führen Sie einen der folgenden Schritte aus:

    • Führen Sie für VMs mit einem Hostnamen, der maximal 15 Zeichen lang ist, den folgenden Befehl aus:

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

      Ersetzen Sie Folgendes:

      • JOIN_DOMAIN_USER ist der Name des Nutzerkontos das zum Beitreten der Domain verwendet wird.
      • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
    • Führen Sie für VMs mit einem Hostnamen, der länger als 15 Zeichen ist, den folgenden Befehl aus:

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

      Ersetzen Sie Folgendes:

      • JOIN_DOMAIN_USER ist der Name des Nutzerkontos das zum Beitreten der Domain verwendet wird.
      • MANAGED_AD_REALM_NAME ist der Realm-Name des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
      • MANAGED_AD_DOMAIN_NAME ist der Domainname des Managed Microsoft AD-Dienstes, den Sie verwenden möchten.
  4. Prüfen Sie, ob der sssd-Dienst ausgeführt wird:

    sudo systemctl status sssd
    
  5. Führen Sie den rpc-gssd-Dienst aus. Fügen Sie Folgendes unter dem Attributwert No-Strip zum Abschnitt [General] in /etc/idmapd.conf hinzu:

    [General]
    No-Strip = both
    
  6. Führen Sie dazu diesen Befehl aus. Dieser Befehl sorgt dafür, dass der Domainname nicht aus dem Hostnamen des NFS-Servers entfernt wird. Weitere Informationen finden Sie unter NFS Ganesha List Archives und Arch Linux Archive:

    sudo systemctl start rpc-gssd
    

Nächste Schritte