Zugriff verweigert beim Ausführen von Azure Batch Aufträgen
Das Azure Storage-Konto ist eine erforderliche abhängige Komponente für das Azure Batch-Konto zum Speichern von Ressourcendateien, Anwendungspaketen und Ausgabedateien. In vielen Fällen verwenden Sie das Azure Storage-Konto mit einer Firewall, um die Sicherheit zu erhöhen. Das Azure Storage-Konto mit einer Firewall kann jedoch Fehler verursachen, wenn Sie Azure Batch Aufträge ausführen. Dieser Artikel enthält Lösungen für solche Probleme.
Symptome
Beim Ausführen Azure Batch Aufträgen treten möglicherweise Fehler im Zusammenhang mit dem zugeordneten Azure-Speicherkonto auf.
Hier ist ein Fehlerbeispiel:
Kategorie: UserError
Code: ResourceContainerAccessDenied
Meldung: Der Zugriff auf einen der angegebenen Azure-Blogcontainer wird verweigert.
Ursache
Wenn Sie einen Azure Batch Pool erstellen, werden neue virtuelle Computer (Batch-Knoten) bereitgestellt. Wenn Sie dem Batch-Pool keine statische öffentliche IP-Adresse zuweisen, wird eine zufällige öffentliche IP-Adresse zugewiesen. Wenn Sie die Größe der Knoten in 0 ändern und die Größe erneut ändern, ändert sich die öffentliche IP-Adresse dieser neuen Batch-Knoten. Wenn für das zugeordnete Speicherkonto eine Firewall konfiguriert ist, ist es daher schwierig, die Positivliste der Firewall zu verwalten.
Wenn sich das Speicherkonto und der Batch-Pool in derselben Region befinden, unabhängig davon, ob der Batch-Pool über eine statische öffentliche IP-Adresse verfügt oder nicht, wird der ausgehende Datenverkehr von Batch-Knoten immer über das Azure-Backbone-Internet (private IP-Adressen) geleitet. Die Speicherfirewall darf keine private IP-Adresse in der Positivliste hinzufügen, was dazu führt, dass der Datenverkehr zum Speicherkonto verweigert wird.
Lösung
Um das Problem zu beheben, verwalten Sie den Batch-Pool und die Speicherkontokonfigurationen basierend auf Ihren Szenarien.
Hinweis
Wenn Sie Anwendungspakete hochladen müssen, funktioniert keine der folgenden Lösungen. Das Speicherkonto darf keine Firewall konfigurieren. Weitere Informationen finden Sie unter Verknüpfen eines Speicherkontos.
Szenario 1: Der Batch-Pool und das Speicherkonto befinden sich in derselben Region, und der Batch-Pool verfügt über ein virtuelles Netzwerk.
Überprüfen Sie die Subnetzinformationen unter Netzwerkkonfiguration aus dem Azure-Portal >Eigenschaften des Batch-Kontopools>>. Notieren Sie sich die Informationen, und notieren Sie sich die Informationen.
Navigieren Sie zum Speicherkonto, und wählen Sie Netzwerk aus. Wählen Sie in der Einstellung Firewalls und virtuelle Netzwerke die Option Aktivieren aus ausgewählten virtuellen Netzwerken und IP-Adressen für den Öffentlichen Netzwerkzugriff aus. Fügen Sie das Subnetz des Batch-Pools in der Positivliste der Firewall hinzu.
Wenn das Subnetz den Dienstendpunkt nicht aktiviert, wird beim Auswählen eine Benachrichtigung wie folgt angezeigt:
In den folgenden Netzwerken sind keine Dienstendpunkte für "Microsoft.Storage" aktiviert. Die Aktivierung des Zugriffs dauert bis zu 15 Minuten. Nach dem Starten dieses Vorgangs ist es sicher, den Vorgang zu verlassen und später zurückzukehren, wenn Sie nicht warten möchten.
Überprüfen Sie daher vor dem Hinzufügen des Subnetzes im virtuellen Batch-Netzwerk, ob der Dienstendpunkt für das Speicherkonto aktiviert ist.
Nachdem Sie die oben genannten Konfigurationen abgeschlossen haben, können die Batch-Knoten im Pool erfolgreich auf das Speicherkonto zugreifen.
Szenario 2: Batchpool und Speicherkonto befinden sich in verschiedenen Regionen
Erstellen Sie einen neuen Batch-Pool in einem virtuellen Netzwerk mit einer statischen öffentlichen IP-Adresse. Weitere Informationen finden Sie unter Erstellen eines Batch-Pools mit angegebenen öffentlichen IP-Adressen.
Da sich der Batch-Pool und das Speicherkonto in verschiedenen Regionen befinden, wird der ausgehende Datenverkehr über die öffentliche IP-Adresse über das öffentliche Internet geleitet.
Notieren Sie sich die öffentliche IP-Adresse.
Weisen Sie die öffentliche IP-Adresse der IP-Adresse des öffentlichen Batch-Pools Load Balancer zu.
Überprüfen Sie anschließend die Eigenschaften Ihres Batch-Pools. Sie entsprechen denen im folgenden Screenshot:
Fügen Sie die öffentliche IP-Adresse zur Positivliste der Speicherfirewall hinzu.
Führen Sie die Batch-Aufträge mit dem neu erstellten Batch-Pool aus.
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.