Fehler beim Einbinden einer Azure-Dateifreigabe
Dieser Artikel enthält mögliche Ursachen und Lösungen für Fehler, die dazu führen, dass die Bereitstellung einer Azure-Dateifreigabe fehlschlägt.
Symptome
Sie stellen eine Kubernetes-Ressource wie z. B. eine Bereitstellung oder ein StatefulSet in einer AKS-Umgebung (Azure Kubernetes Service) bereit. Über die Bereitstellung wird ein Pod erstellt, der einen PersistentVolumeClaim (PVC) einbindet, der auf eine Azure-Dateifreigabe verweist.
Der Pod bleibt jedoch im Status ContainerCreating. Wenn Sie den kubectl describe pods
Befehl ausführen, wird möglicherweise eine der folgenden Fehler in der Befehlsausgabe angezeigt, wodurch der Montagevorgang fehlschlägt:
- Bereitstellungsfehler (2): Datei oder Verzeichnis nicht vorhanden
- Bereitstellungsfehler (13): Zugriff verweigert
In der folgenden Ausgabe finden Sie ein Beispiel.
MountVolume.MountDevice failed for volume "\<pv-fileshare-name>"
rpc error: code = Internal desc =
volume(\<storage-account's-resource-group>#\<storage-account-name>#\<pv/fileshare-name>#) > mount "//\<storage-account-name>.file.core.windows.net/\<pv-fileshare-name>" on "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/\<pv-fileshare-name>/globalmount" failed with
mount failed: exit status 32
Mounting command: mount
Mounting arguments: -t cifs -o dir_mode=0777,file_mode=0777,uid=0,gid=0,mfsymlinks,cache=strict,actimeo=30,\<masked> //\<storage-account-name>.file.core.windows.net/\<pv-name> /var/lib/kubelet/plugins/kubernetes.io/csi/pv/\<pv-name>/globalmount
Output: mount error(\<error-id>): \<error-description>
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
Notiz
- Wenn das Speicherkonto öffentlich zugänglich ist, lautet der in der Ausgabe angezeigte Hostname "<storage-account-name.file.core.windows.net>".
- Wenn das Speicherkonto privat mit einer privaten Verknüpfung, einem Endpunkt oder einer DNS-Zone konfiguriert ist, lautet <der Hostname "storage-account-name.privatelink.file.core.windows.net>".
Vor der Problembehandlung
Identifizieren Sie das Speicherkonto und die Dateifreigabe anhand der Meldung in der Ausgabe, wie im folgenden Beispiel gezeigt. Die Werte werden bei späteren Schritten zur Problembehandlung verwendet.
mount "//<storage-account-name.file.core.windows.net/>< pv-fileshare-name>"
In den folgenden Abschnitten finden Sie Informationen zu möglichen Ursachen und Lösungen.
Bereitstellungsfehler (2): Datei oder Verzeichnis nicht vorhanden
Dieser Fehler weist darauf hin, dass keine Verbindung zwischen AKS-Cluster und Speicherkonto besteht.
Erste Schritte bei der Problembehandlung
Azure Files benötigt das Protokoll SMB (Port 445). Stellen Sie sicher, dass Port 445 und/oder die IP-Adresse des Speicherkontos nicht blockiert werden.
Um die IP-Adresse des Speicherkontos zu überprüfen, führen Sie einen DNS-Befehl (Domain Name System) wie nslookup
, dig
oder host
aus. Zum Beispiel:
nslookup <storage-account-name>.file.core.windows.net
Um zu überprüfen, ob Konnektivität zwischen AKS-Cluster und Speicherkonto besteht, wechseln Sie in den Knoten oder Pod, und führen Sie den folgenden Befehl nc
oder telnet
aus:
nc -v -w 2 <storage-account-name>.file.core.windows.net 445
telnet <storage-account-name>.file.core.windows.net 445
Mögliche Ursachen für Einbindungsfehler(2)
- Ursache 1: Dateifreigabe nicht vorhanden
- Ursache 2: NSG blockiert Datenverkehr zwischen AKS und Speicherkonto
- Ursache 3: Virtuelles Gerät blockiert Datenverkehr zwischen AKS und Speicherkonto
- Ursache 4: Für FIPS aktivierter Knotenpool wird verwendet
Notiz
- Ursache 1, 2 und 4 gelten für Szenarien mit öffentlichen und privaten Speicherkonten.
- Ursache 3 gilt nur für das öffentliche Szenario.
Ursache 1: Dateifreigabe nicht vorhanden
Führen Sie die folgenden Schritte aus, um zu prüfen, ob die Dateifreigabe vorhanden ist:
Durchsuchen Sie Speicherkonten im Azure-Portal, und greifen Sie auf Ihr Speicherkonto zu.
Wählen Sie "Dateifreigaben" unter "Datenspeicher" im Speicherkonto aus, und überprüfen Sie, ob der zugehörige PersistentVolumeClaim in der Yaml-Datei des Pods, der Bereitstellung oder des Zustandssets in Dateifreigaben vorhanden ist.
Lösung: Sicherstellen, dass die Dateifreigabe vorhanden ist
Um dieses Problem zu beheben, stellen Sie sicher, dass die Dateifreigabe vorhanden ist, die dem PV/PVC zugeordnet ist.
Ursache 2: Netzwerksicherheitsgruppe blockiert Datenverkehr zwischen AKS und Speicherkonto
Überprüfen Sie die Ausgabe des nc
im Abschnitt "Erste Problembehandlung" erwähnten Befehlstelnet
. Wenn ein Timeout angezeigt wird, überprüfen Sie die Netzwerksicherheitsgruppe (NSG), und stellen Sie sicher, dass die IP-Adresse des Speicherkontos nicht blockiert wird.
Führen Sie die folgenden Schritte aus, um zu überprüfen, ob die NSG die IP-Adresse des Speicherkontos blockiert:
Wechseln Sie im Azure-Portal zur Netzwerküberwachung, und wählen Sie die NSG-Diagnose aus.
Füllen Sie die Felder mit den folgenden Werten aus:
- Protokoll: Beliebig
- Richtung: Ausgehend
- Quelltyp: IPv4-Adresse/CIDR
- IPv4-Adresse/CIDR: Die IP-Adresse einer Instanz, die dem AKS-Knoten zugeordnet ist
- Ziel-IP-Adresse: Die IP-Adresse des Speicherkontos
- Zielport: 445
Aktivieren Sie die Schaltfläche "Überprüfen ", und überprüfen Sie den Datenverkehrsstatus .
Der Datenverkehrsstatus kann zulässig oder verweigert werden. Der Status "Verweigert" bedeutet, dass der NSG den Datenverkehr zwischen dem AKS-Cluster und dem Speicherkonto blockiert. Wenn der Status verweigert wird, wird der NSG-Name angezeigt.
Lösung: Zulassen von Konnektivität zwischen AKS und Speicherkonto
Um dieses Problem zu beheben, nehmen Sie entsprechende Änderungen auf NSG-Ebene vor, um Konnektivität zwischen AKS-Cluster und Speicherkonto an Port 445 zuzulassen.
Ursache 3: Virtuelles Gerät blockiert Datenverkehr zwischen AKS und Speicherkonto
Wenn Sie ein virtuelles Gerät (in der Regel eine Firewall) verwenden, um aus dem AKS-Cluster ausgehenden Datenverkehr zu steuern (z. B. verfügt das virtuelle Gerät über eine Routingtabelle, die für das Subnetz des AKS-Clusters gilt, und die Routingtabelle enthält Routen, die Datenverkehr in Richtung des virtuellen Geräts senden), kann das virtuelle Gerät den Datenverkehr zwischen AKS-Cluster und Speicherkonto blockieren.
Um das Problem zu isolieren, fügen Sie in der Routingtabelle eine Route für die IP-Adresse des Speicherkontos hinzu, um den Datenverkehr in Richtung Internet zu senden.
Führen Sie die folgenden Schritte aus, um zu überprüfen, welche Routingtabelle den Datenverkehr des AKS-Clusters steuert:
- Wechseln Sie im Azure-Portal zum AKS-Cluster, und wählen Sie die Ressourcengruppe "Eigenschafteninfrastruktur>" aus.
- Greifen Sie auf die VM-Skalierungsgruppe oder eine VM in einer Verfügbarkeitsgruppe zu, wenn Sie einen solchen VM-Gruppentyp verwenden.
- Wählen Sie virtuelle Netzwerke/Subnetze> aus, und identifizieren Sie das Subnetz des AKS-Clusters. Auf der rechten Seite sehen Sie die Routingtabelle.
Führen Sie zum Hinzufügen der Route zur Routingtabelle die Schritte unter Erstellen einer Route aus, und füllen Sie die folgenden Felder aus:
- Adresspräfix: <storage-account's-public-IP>/32
- Nächster Hoptyp:Internet
Diese Route sendet den gesamten Datenverkehr zwischen AKS-Cluster und Speicherkonto durch das öffentliche Internet.
Nachdem Sie die Route hinzugefügt haben, testen Sie die Konnektivität mithilfe des Befehls nc
oder telnet
, und führen Sie den Einbindungsvorgang erneut aus.
Lösung: Sicherstellen, dass das virtuelle Gerät Datenverkehr zwischen AKS und Speicherkonto zulässt
Wenn der Einbindungsvorgang erfolgreich war, empfehlen wir Ihnen, sich an Ihr Netzwerkteam zu wenden, um sicherzustellen, dass das virtuelle Gerät Datenverkehr zwischen AKS-Cluster und Speicherkonto an Port 445 zulassen kann.
Ursache 4: Für FIPS aktivierter Knotenpool wird verwendet
Wenn Sie einen für FIPS (Federal Information Processing Standard) aktivierten Knotenpool verwenden, schlägt der Einbindungsvorgang fehl, weil FIPS einige Authentifizierungsmodule deaktiviert, wodurch die Einbindung einer CIFS-Freigabe verhindert wird. Dieses Verhalten wird erwartet und ist nicht spezifisch für AKS.
Beheben Sie dieses Problem mithilfe einer der folgenden Lösungen:
Lösung 1: Planen von Pods auf Knoten in einem Knotenpool ohne FIPS
FIPS ist in AKS-Knotenpools standardmäßig deaktiviert und kann nur bei der Erstellung des Knotenpools mithilfe des Parameters --enable-fips-image
aktiviert werden.
Um den Fehler zu beheben, können Sie die Pods auf Knoten in einem Knotenpool ohne FIPS planen.
Lösung 2: Erstellen eines Pods, der auf einem für FIPS aktivierten Knoten geplant werden kann
Führen Sie die folgenden Schritte aus, um einen Pod zu erstellen, der auf einem für FIPS aktivierten Knoten geplant werden kann:
Erstellen Sie mit dem CSI-Treiber für Azure Files eine benutzerdefinierte StorageClass, die das Protokoll NFS verwendet.
Sehen Sie sich die folgende YAML-Datei als Beispiel an:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: azurefile-sc-fips provisioner: file.csi.azure.com reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true parameters: skuName: Premium_LRS protocol: nfs
Die SKU ist in der YAML-Datei auf Premium_LRS festgelegt, da für NFS die Premium-SKU erforderlich ist. Weitere Informationen finden Sie unter Dynamische Bereitstellung.
Aufgrund der Premium-SKU beträgt die Mindestgröße der Dateifreigabe 100 GB. Weitere Informationen finden Sie unter Erstellen einer Speicherklasse.
Erstellen Sie ein PVC, das auf die benutzerdefinierten StorageClass azurefile-sc-fips verweist.
Sehen Sie sich die folgende YAML-Datei als Beispiel an:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azurefile-pvc-fips spec: accessModes: - ReadWriteMany storageClassName: azurefile-sc-fips resources: requests: storage: 100Gi
Erstellen Sie einen Pod, der die PVC azurefile-pvc-fips montiert.
Sehen Sie sich die folgende YAML-Datei als Beispiel an:
kind: Pod apiVersion: v1 metadata: name: azurefile-pod-fips spec: containers: - name: azurefile-pod-fips image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - mountPath: "/mnt/azure" name: volume volumes: - name: volume persistentVolumeClaim: claimName: azurefile-pvc-fips
Bereitstellungsfehler (13): Zugriff verweigert
Mögliche Ursachen für diesen Fehler:
- Ursache 1: Kubernetes-Geheimnis verweist nicht auf den richtigen Speicherkontonamen oder -schlüssel
- Ursache 2: Das VNet und Subnetz von AKS sind für das Speicherkonto nicht zulässig
- Ursache 3: Konnektivität erfolgt über einen privaten Link, aber Knoten und der private Endpunkt befinden sich in verschiedenen VNETs.
- Ursache 4: Das Speicherkonto ist so festgelegt, dass eine Verschlüsselung erforderlich ist, die vom Client nicht unterstützt wird
- Ursache 5: Die Mindestverschlüsselungsanforderung für ein Speicherkonto ist nicht erfüllt.
- Ursache 6: Sicherheitsprofil wird verwendet, ohne dass die NTLM v2-Authentifizierung aktiviert ist
Notiz
- Ursache 1 gilt für öffentliche und private Szenarien.
- Ursache 2 gilt nur für das öffentliche Szenario.
- Ursache 3 gilt nur für das private Szenario.
- Ursache 4 gilt für öffentliche und private Szenarien.
- Ursache 5 gilt für öffentliche und private Szenarien.
- Ursache 6 gilt für öffentliche und private Szenarien.
Ursache 1: Kubernetes-Geheimnis verweist nicht auf den richtigen Speicherkontonamen oder -schlüssel
Wenn die Dateifreigabe dynamisch erstellt wird, wird automatisch eine geheime Kubernetes-Ressource mit dem Namen "azure-storage-account-storage-account-name-secret<>" erstellt.
Wenn die Dateifreigabe manuell erstellt wird, muss die Kubernetes-Geheimnisressource manuell erstellt werden.
Unabhängig von der Erstellungsmethode schlägt der Einbindungsvorgang mit der Fehlermeldung „Berechtigung verweigert“ fehl, wenn der Name des Speicherkontos oder der Schlüssel, auf den im Kubernetes-Geheimnis verwiesen wird, nicht mit dem tatsächlichen Wert übereinstimmt.
Mögliche Ursachen für Nichtübereinstimmung
Wenn das Kubernetes-Geheimnis manuell erstellt wird, kann während der Erstellung ein Tippfehler auftreten.
Wenn der Vorgang „Schlüssel rotieren“ auf Speicherkontoebene ausgeführt wird, werden die Änderungen nicht auf Kubernetes-Geheimnisebene widergespiegelt. Dies führt zu einer Nichtübereinstimmung zwischen dem Schlüsselwert auf Speicherkontoebene und dem Wert auf Kubernetes-Geheimnisebene.
Wenn der Vorgang „Schlüssel rotieren“ erfolgt, wird im Aktivitätsprotokoll des Speicherkontos der Vorgang „Speicherkontoschlüssel neu generieren“ angezeigt. Beachten Sie den Aufbewahrungszeitraum von 90 Tagen für das Aktivitätsprotokoll.
Überprüfen der Nichtübereinstimmung
Führen Sie die folgenden Schritte aus, um die Nichtübereinstimmung zu überprüfen:
Wechseln Sie im Azure-Portal zum Speicherkonto, und greifen Sie darauf zu. Wählen Sie "Zugriffstasten> anzeigen" im Speicherkonto aus. Der Name des Speicherkontos und die zugeordneten Schlüssel werden angezeigt.
Wechseln Sie zum AKS-Cluster, wählen Sie "Konfigurationsgeheimnisse>" aus, suchen und greifen Sie dann auf den zugeordneten geheimen Schlüssel zu.
Wählen Sie "Anzeigen" (das Augensymbol) aus, und vergleichen Sie die Werte des Speicherkontonamens und des zugehörigen Schlüssels mit den Werten in Schritt 1.
Bevor Sie "Anzeigen" auswählen, werden die Werte des Speicherkontonamens und des zugehörigen Schlüssels in base64-Zeichenfolgen codiert. Nachdem Sie "Anzeigen" ausgewählt haben, werden die Werte decodiert.
Wenn Sie im Azure-Portal keinen Zugriff auf den AKS-Cluster haben, führen Sie Schritt 2 auf kubectl-Ebene aus:
Rufen Sie die YAML-Datei des Geheimen Kubernetes ab, und führen Sie dann den folgenden Befehl aus, um die Werte des Speicherkontonamens und des Schlüssels aus der Ausgabe abzurufen:
kubectl get secret <secret-name> -n <secret-namespace> -o <yaml-file-name>
Decodieren Sie mit dem Befehl
echo
die Werte des Speicherkontonamens und Schlüssels, und vergleichen Sie sie mit den Werten auf Speicherkontoebene.Hier ist ein Beispiel zum Decodieren des Speicherkontonamens:
echo -n '<storage account name>' | base64 --decode ;echo
Lösung: Anpassen des Kubernetes-Geheimnisses und erneutes Erstellen der Pods
Wenn der Wert des Speicherkontonamens oder des Schlüssels im Kubernetes-Schlüssel nicht mit dem Wert in Access-Schlüsseln im Speicherkonto übereinstimmt, passen Sie den Geheimen Kubernetes-Schlüssel auf kubernetes-Ebene an, indem Sie den folgenden Befehl ausführen:
kubectl edit secret <secret-name> -n <secret-namespace>
Der Wert des Speicherkontonamens oder -Schlüssels, der der Kubernetes-Geheimniskonfiguration hinzugefügt wurde, muss ein base64-codierter Wert sein. Rufen Sie den codierten Wert mit dem Befehl echo
ab.
Hier sehen Sie ein Beispiel zum Codieren des Speicherkontonamens:
echo -n '<storage account name>'| base64 | tr -d '\n' ; echo
Weitere Informationen finden Sie unter Verwalten von Geheimnissen mit kubectl.
Sobald das Kubernetes-Geheimnis azure-storage-account-<storage-account-name>-secret
über die richtigen Werte verfügt, erstellen Sie die Pods neu. Andernfalls werden von diesen Pods weiterhin die alten, nicht mehr gültigen Werte verwendet.
Ursache 2: Das VNet und Subnetz von AKS sind für das Speicherkonto nicht zulässig
Wenn das Netzwerk des Speicherkontos auf ausgewählte Netzwerke beschränkt ist, das VNet und Subnetz des AKS-Clusters aber nicht den ausgewählten Netzwerken hinzugefügt wurden, schlägt der Einbindungsvorgang mit dem Fehler „Berechtigung verweigert“ fehl.
Lösung: Zulassen des VNet und Subnetzes von AKS für das Speicherkonto
Identifizieren Sie den Knoten, der den fehlerhaften Pod hostet, indem Sie den folgenden Befehl ausführen:
kubectl get pod <pod-name> -n <namespace> -o wide
Überprüfen Sie den Knoten in der Befehlsausgabe:
Wechseln Sie im Azure-Portal zum AKS-Cluster, wählen Sie die Ressourcengruppe "Eigenschafteninfrastruktur>" aus, greifen Sie auf den dem Knoten zugeordneten VMSS zu, und überprüfen Sie dann das virtuelle Netzwerk/Subnetz, um das VNET und das Subnetz zu identifizieren.
Greifen Sie im Azure-Portal auf das Speicherkonto zu. Wählen Sie Netzwerk aus. Wenn "Zugriff zulassen" auf ausgewählte Netzwerke festgelegt ist, überprüfen Sie, ob das VNET und das Subnetz des AKS-Clusters hinzugefügt werden.
Wenn das VNET und das Subnetz des AKS-Clusters nicht hinzugefügt werden, wählen Sie "Vorhandenes virtuelles Netzwerk hinzufügen" aus. Geben Sie auf der Seite "Netzwerke hinzufügen" das VNET und das Subnetz des AKS-Clusters ein, und wählen Sie dann "Speichern hinzufügen">aus.
Es kann einen Moment dauern, bis die Änderungen wirksam werden. Nachdem das VNET und das Subnetz hinzugefügt wurden, überprüfen Sie, ob sich der Podstatus von "ContainerCreating " in "Running" ändert.
Ursache 3: Konnektivität erfolgt über eine private Verbindung, aber die Knoten und der private Endpunkt befinden sich in unterschiedlichen VNets
Wenn der AKS-Cluster und das Speicherkonto über eine private Verbindung verbunden sind, wird eine genehmigte private Endpunktverbindung verwendet.
Wenn sich der private Endpunkt und der AKS-Knoten in diesem Szenario im selben VNet befinden, können Sie eine Azure-Dateifreigabe einbinden.
Wenn sich der private Endpunkt und Ihr AKS-Cluster in unterschiedlichen VNets befinden, schlägt der Einbindungsvorgang mit dem Fehler „Berechtigung verweigert“ fehl.
Lösung: Erstellen einer virtuellen Netzwerkverbindung für das VNet des AKS-Clusters in einer privaten DNS-Zone
Wechseln Sie in den Knoten, und überprüfen Sie, ob der vollqualifizierte Domänenname (FQDN) über eine öffentliche oder private IP-Adresse aufgelöst wird. Führen Sie zu diesem Zweck den folgenden Befehl aus:
nslookup <storage-account-name>.privatelink.file.core.windows.net
Wenn der FQDN über eine öffentliche IP-Adresse aufgelöst wird (siehe den folgenden Screenshot), erstellen Sie eine virtuelle Netzwerkverbindung für das VNet des AKS-Clusters auf der Ebene der privaten DNS-Zone (privatelink.file.core.windows.net). Beachten Sie, dass bereits automatisch eine virtuelle Netzwerkverbindung für das VNet des privaten Endpunkts des Speicherkontos erstellt wurde.
Führen Sie die folgenden Schritte aus, um eine virtuelle Netzwerkverbindung zu erstellen:
Greifen Sie auf die zone Privates DNS zu, und wählen Sie "Virtuelle Netzwerkverbindungen>hinzufügen" aus.
Füllen Sie die Felder aus, und wählen Sie das VNET des AKS-Clusters für virtuelle Netzwerke aus. Informationen zum Bestimmen des VNet des AKS-Clusters finden Sie im Abschnitt Lösung: Zulassen des VNet und Subnetzes von AKS für das Speicherkonto.
Wählen Sie OK aus.
Nachdem die virtuelle Netzwerkverbindung hinzugefügt wurde, sollte der FQDN über eine private IP-Adresse aufgelöst werden und der Einbindungsvorgang erfolgreich sein. Ein Beispiel finden Sie im folgenden Screenshot:
Ursache 4: Das Speicherkonto ist so festgelegt, dass eine Verschlüsselung erforderlich ist, die vom Client nicht unterstützt wird
Die Azure Files-Sicherheitseinstellungen enthalten eine Reihe von Optionen zum Steuern der Sicherheits- und Verschlüsselungseinstellungen für Speicherkonten. Das Einschränken zulässiger Methoden und Algorithmen kann verhindern, dass Clients eine Verbindung herstellen.
AKS-Versionen vor 1.25 basieren auf Ubuntu 18.04 LTS, das den Linux 5.4-Kernel verwendet und nur die Verschlüsselungsalgorithmen AES-128-CCM und AES-128-GCM unterstützt. Das Profil Maximale Sicherheit oder ein benutzerdefiniertes Profil, das AES-128-GCM deaktiviert, verursachen Freigabezuordnungsfehler.
AKS-Versionen ab 1.25 basieren auf Ubuntu 22.04, das den Linux 5.15-Kernel verwendet und AES-256-GCM unterstützt.
Lösung: Zulassen der Verwendung des Verschlüsselungsalgorithmus AES-128-GCM
Aktivieren Sie den Algorithmus AES-128-GCM, indem Sie das Profil Maximale Kompatibilität oder ein benutzerdefiniertes Profil verwenden, das AES-128-GCM aktiviert. Weitere Informationen finden Sie unter Azure Files-Sicherheitseinstellungen.
Ursache 5: Die Mindestverschlüsselungsanforderung für ein Speicherkonto ist nicht erfüllt.
Lösung: Aktivieren des AES-128-GCM-Verschlüsselungsalgorithmus für alle Speicherkonten
Zum erfolgreichen Bereitstellen oder Zugreifen auf eine Dateifreigabe sollte der AES-128-GCM-Verschlüsselungsalgorithmus für alle Speicherkonten aktiviert werden.
Wenn Sie nur die AES-256-GCM-Verschlüsselung verwenden möchten, gehen Sie wie folgt vor:
Linux
Verwenden Sie das folgende Skript, um zu überprüfen, ob der Client AES-256-GCM unterstützt, und erzwingen Sie es nur, wenn dies der Fall ist:
cifsConfPath="/etc/modprobe.d/cifs.conf"
echo "$(date) before change ${cifsConfPath}:"
cat ${cifsConfPath}
# Check if 'require_gcm_256' is already present in the configuration file
if ! grep -q "require_gcm_256" "${cifsConfPath}"; then
# Load the CIFS module
modprobe cifs
# Set the parameter at runtime
echo 1 > /sys/module/cifs/parameters/require_gcm_256
# Persist the configuration
echo "options cifs require_gcm_256=1" >> "${cifsConfPath}"
echo "$(date) after changing ${cifsConfPath}:"
cat "${cifsConfPath}"
else
echo "require_gcm_256 is already set in ${cifsConfPath}"
fi
Sie können auch ein Kubernetes DaemonSet verwenden, um AES-256 auf jedem Knoten zu erzwingen. Siehe folgendes Beispiel:
Windows
Verwenden Sie den PowerShell-Befehl "Set-SmbClientConfiguration ", um die vom SMB-Client verwendeten Verschlüsselungschiffre und den bevorzugten Verschlüsselungstyp ohne Benutzerbestätigung anzugeben:
Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false
Notiz
Der EncryptionCiphers
Parameter ist ab dem kumulativen Update 2022-06 für Windows Server Version 21H2 für x64-basierte Systeme (KB5014665) und das kumulative Update für Windows 11, Version 22H2 (KB5014668) verfügbar.
Ursache 6: Sicherheitsprofil wird verwendet, ohne dass die NTLM v2-Authentifizierung aktiviert ist
Wenn Sie das maximale Sicherheitsprofil oder ein benutzerdefiniertes Sicherheitsprofil ohne aktivierten NTLM v2-Authentifizierungsmechanismus verwenden, schlägt der Montagevorgang mit dem Fehler "Mount error(13): Permission denied" fehl.
Lösung: Aktivieren der NTLM v2-Authentifizierung oder Verwenden des Profils "Maximale Kompatibilität"
Um es in AKS ordnungsgemäß bereitzustellen, müssen Sie den NTLM v2-Authentifizierungsmechanismus für das benutzerdefinierte Sicherheitsprofil aktivieren oder das Sicherheitsprofil für maximale Kompatibilität verwenden.
Weitere Informationen
Wenn andere Bereitstellungsfehler auftreten, lesen Sie die Problembehandlung von Azure Files in Linux.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.