Im folgenden 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 eine Client- und Serverauthentifizierung, Integritätsprüfungen von Nachrichtendaten und die Verschlüsselung von Daten während der Übertragung erfordern. Diese Funktionen waren zuvor in Filestore nicht verfügbar.
Die Authentifizierung wird über LDAP und Kerberos unterstützt und umfasst die folgenden Sicherheitsvarianten (Einstellungen):
- Client- und Serverauthentifizierung (
krb5
). - Prüfung der Nachrichtenintegrität (
krb5i
). Umfasst die Funktionen der vorherigen Einstellung. - Verschlüsselung von Daten während 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. Das sind Anforderungen für das NFSv4.1-Protokoll und seine Sicherheits- und Datenschutzvorteile. Die Integration in Managed Microsoft AD ist zwar nicht erforderlich, wird aber für eine optimale Google Cloud Nutzererfahrung dringend empfohlen, um Nutzerkonten und schwankende Gruppen und Berechtigungen zu verwalten.
Sollten Sie NFSv4.1 verwenden?
Viele Unternehmen verlassen sich bei geschäftskritischen Vorgängen auf Legacy-Systeme. Viele dieser Systeme erfordern eine Authentifizierung und eine In-Transit-Verschlüsselung für den Netzwerkspeicher. NFSv3 wurde nicht für die Authentifizierung entwickelt. Die NFSv4.1-Protokollintegration von Filestore mit 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 der Sicherheits-Flavor sys
unterstützt. Bei dieser Einstellung wird dem Nutzer uid
und gid
vertraut, die vom Client beim Mounten 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 vom Managed Microsoft AD-Kerberos-Server validiert wird.
krb5i
Beinhaltet die von
krb5
bereitgestellte Authentifizierung und verwendet außerdem Kerberos, um die Nachrichtenintegrität des gesamten Netzwerkverkehrs zur und von der Instanz zu prüfen.krb5p
Umfasst die Authentifizierung durch
krb5
und die Prüfungen der Nachrichtenintegrität vonkrb5i
und verwendet außerdem Kerberos für die Verschlüsselung von Daten bei der Übertragung.
Wenn Sie diese Optionen nutzen möchten, ist eine Einbindung in 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 NFSv4.1-Einschränkungen.
Filestore-NFSv4.1-Instanzen auf Linux-Clients bereitstellen
In den folgenden Schritten wird beschrieben, wie Sie Instanzen auf Linux-Clients einbinden.
Bereitstellung mit
sec=sys
für standardmäßige NFS-Berechtigungen:sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
Einbinden mit
sec=krb5
für die Kerberos-basierte Authentifizierung:sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
Einbinden mit
sec=krb5i
für Kerberos-basierte Authentifizierung und Prüfungen der Nachrichtenintegrität:sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
Einbinden mit
sec=krb5p
für Kerberos-basierte Authentifizierung, Integritätsprüfungen und Verschlüsselung während der Übertragung: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, die Sie verbinden möchten.
- MOUNT_POINT ist der Bereitstellungspunkt oder der Verzeichnisname, in dem Sie die Bereitstellung vornehmen 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 für die Filestore NFSv4.1-Instanz konfiguriert, entweder bei der Erstellung oder durch Aktualisierung nach der Erstellung.
Für die Sicherheitsvariante sys
wird die standardmäßige Unix-Authentifizierung verwendet, während für die Varianten krb5
, krb5i
und krb5p
die Kerberos-basierte Authentifizierung verwendet wird.
Für die Varianten krb5
, krb5i
und krb5p
müssen die Clients mit derselben Managed Microsoft AD-Domain wie die Filestore-Instanz verbunden sein.
Führen Sie die folgenden Schritte aus, die für Ihre Umgebung geeignet sind.
Ubuntu-Image
- Stellen Sie eine SSH-Verbindung zur Compute Engine-Instanz her.
Führen Sie die folgenden Befehle aus, um der Managed Microsoft AD-Domain beizutreten.
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
Wenn Sie zur Eingabe des Bereichs aufgefordert werden, ersetzen Sie den vorhandenen Eintrag durch die verwaltete Microsoft AD-Domain, die in der Filestore-Instanz verwendet wird. Geben Sie den Wert in Großbuchstaben ein, drücken Sie die Pfeiltaste, um OK auszuwählen, und drücken Sie dann die Eingabetaste.
Lassen Sie das Feld für Hosts leer und fahren Sie fort.
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 Einbinden 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 einer Hostnamenlänge von mehr als 15 Zeichen 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 Einbinden 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.
Kerberos-Konfiguration aktualisieren 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, in Großbuchstaben.
- domain_name_lowercase ist der Domainname, den Sie verwenden möchten, in Kleinbuchstaben.
Hier ein Beispiel:
[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
Führen Sie den Dienst „rpc-gssd“ aus. Fügen Sie den folgenden Attributwert
No-Strip
in den Abschnitt[General]
in/etc/idmapd.conf
ein:[General] No-Strip = both
Führen Sie dazu diesen Befehl aus:
sudo systemctl restart rpc-gssd
CentOS-Image
- Stellen Sie eine SSH-Verbindung zur Compute Engine-Instanz her.
Verbinden Sie die Managed Microsoft AD-Domain:
sudo yum update \ sudo yum install -y adcli realmd sssd samba-common-tools krb5-workstation nfs-utils \ bind-utils openldap-clients
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 Einbinden in die 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 Einbinden in die 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.
Prüfen Sie, ob der sssd-Dienst ausgeführt wird:
sudo systemctl status sssd
Führen Sie den rpc-gssd-Dienst aus. Fügen Sie Folgendes unter dem Attributwert
No-Strip
in den Abschnitt[General]
in/etc/idmapd.conf
ein:[General] No-Strip = both
Führen Sie den folgenden Befehl aus: Dieser Befehl sorgt dafür, dass der NFS-Client den Domainnamen nicht aus dem Hostnamen des NFS-Servers entfernt. Weitere Informationen finden Sie unter NFS Ganesha List Archives und Arch Linux Archive:
sudo systemctl start rpc-gssd
Nächste Schritte
- Filestore-Instanz bearbeiten
- Instanz in einem freigegebene VPC-Netzwerk in Dienstprojekten erstellen