Schützen einer Azure Machine Learning-Trainingsumgebung mit virtuellen Netzwerken

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

Tipp

Microsoft empfiehlt die Verwendung von verwalteten virtuellen Netzwerken für Azure Machine Learning anstelle der Schritte in diesem Artikel. Mit einem verwalteten virtuellen Netzwerk übernimmt Azure Machine Learning die Aufgabe der Netzwerkisolation für Ihren Arbeitsbereich und Ihre verwalteten Computeressourcen. Sie können auch private Endpunkte für Ressourcen hinzufügen, die vom Arbeitsbereich benötigt werden, z. B. Azure Storage-Konto. Weitere Informationen finden Sie unter Verwaltete Netzwerkisolation auf Arbeitsbereichsebene (Vorschau).

Azure Machine Learning-Compute-Instanz, serverloses Computing und Computecluster können zum sicheren Trainieren von Modellen in einem virtuellen Azure-Netzwerk verwendet werden. Beim Planen Ihrer Umgebung können Sie die Compute-Instanz/den Cluster oder serverloses Computing mit oder ohne öffentliche IP-Adresse konfigurieren. Die allgemeinen Unterschiede zwischen den beiden sind:

  • Keine öffentliche IP-Adresse: Reduziert die Kosten, da nicht die gleichen Anforderungen an die Netzwerkressourcen gestellt werden. Verbessert die Sicherheit, indem die Anforderung für eingehenden Datenverkehr aus dem Internet beseitigt wird. Es sind jedoch zusätzliche Konfigurationsänderungen erforderlich, um den ausgehenden Zugriff auf erforderliche Ressourcen (Microsoft Entra ID, Azure Resource Manager usw.) zu ermöglichen.
  • Öffentliche IP-Adresse: Funktioniert standardmäßig, kostet aber aufgrund zusätzlicher Azure-Netzwerkressourcen mehr. Erfordert eingehende Kommunikation vom Azure Machine Learning Service über das öffentliche Internet.

Die folgende Tabelle enthält die Unterschiede zwischen diesen Konfigurationen:

Konfiguration Mit öffentlicher IP-Adresse Ohne öffentliche IP-Adresse
Eingehender Datenverkehr Diensttag AzureMachineLearning. Keine
Ausgehender Datenverkehr Kann standardmäßig ohne Einschränkungen auf das öffentliche Internet zugreifen.
Sie können den Zugriff mithilfe einer Netzwerksicherheitsgruppe oder Firewall einschränken.
Standardmäßig kann mit dem von Azure bereitgestellten ausgehenden Standardzugriff auf das öffentliche Netzwerk zugegriffen werden.
Wir empfehlen stattdessen ein Virtual Network NAT-Gateway oder eine Firewall zu verwenden, wenn Sie ausgehenden Datenverkehr an erforderliche Ressourcen im Internet weiterleiten müssen.
Azure-Netzwerkressourcen Öffentliche IP-Adresse, Lastenausgleich, Netzwerkschnittstelle Keine

Sie können auch Azure Databricks oder HDInsight verwenden, um Modelle in einem virtuellen Netzwerk zu trainieren.

Wichtig

Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Die Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Dieser Artikel ist Teil einer Reihe zum Schützen eines Azure Machine Learning-Workflows. Sehen Sie sich auch die anderen Artikel in dieser Reihe an:

Ein Tutorial zum Erstellen eines sicheren Arbeitsbereichs finden Sie unter Tutorial: Erstellen eines sicheren Arbeitsbereichs oder Tutorial: Erstellen eines sicheren Arbeitsbereichs mithilfe einer Vorlage.

In diesem Artikel erfahren Sie, wie Sie die folgenden Trainingscomputeressourcen in einem virtuellen Netzwerk schützen:

  • Azure Machine Learning-Computecluster
  • Azure Machine Learning-Computeinstanz
  • Azure Machine Learning: Serverloses Computing
  • Azure Databricks
  • Virtual Machine
  • HDInsight-Cluster

Voraussetzungen

  • Im Artikel Übersicht über die Netzwerksicherheit finden Sie Informationen zu gängigen Szenarien im Zusammenhang mit virtuellen Netzwerken sowie zur Gesamtarchitektur virtueller Netzwerke.

  • Ein vorhandenes virtuelles Netzwerk und Subnetz, die mit Ihren Computeressourcen verwendet werden können Dieses VNet muss sich im selben Abonnement befinden wie Ihr Azure Machine Learning-Arbeitsbereich.

    • Es wird empfohlen, die Speicherkonten, die von Ihrem Arbeitsbereich und Trainingsaufträgen verwendet werden, in derselben Azure-Region zu platzieren, die Sie für Compute-Instanzen, serverloses Computing und Cluster verwenden möchten. Wenn sie sich nicht in derselben Azure-Region befinden, fallen möglicherweise Kosten für die Datenübertragung und eine erhöhte Netzwerklatenz an.
    • Stellen Sie sicher, dass die WebSocket-Kommunikation für *.instances.azureml.net und *.instances.azureml.ms in Ihrem VNet zulässig ist. WebSockets werden von Jupyter auf Compute-Instanzen verwendet.
  • Ein vorhandenes Subnetz im virtuellen Netzwerk. Dieses Subnetz wird beim Erstellen von Compute-Instanzen, Clustern und Knoten für serverloses Computing verwendet.

    • Stellen Sie sicher, dass das Subnetz nicht an andere Azure-Dienste delegiert wird.
    • Stellen Sie sicher, dass das Subnetz genügend freie IP-Adressen enthält. Jede Compute-Instanz erfordert eine IP-Adresse. Jeder Knoten innerhalb eines Computeclusters und jeder Knoten für serverloses Computing erfordert eine IP-Adresse.
  • Wenn Sie über einen eigenen DNS-Server verfügen, wird empfohlen, die DNS-Weiterleitung zu verwenden, um die vollqualifizierten Domänennamen (FQDN) von Compute-Instanzen und Clustern aufzulösen. Weitere Informationen finden Sie unter Verwenden eines benutzerdefinierten DNS mit Azure Machine Learning.

  • Ihr Benutzerkonto muss über die rollenbasierte Zugriffssteuerung von Azure (Azure RBAC) zu den folgenden Aktionen berechtigt werden, um Ressourcen in einem virtuellen Netzwerk oder Subnetz bereitstellen zu können:

    • „Microsoft.Network/*/read“ auf der virtuellen Netzwerkressource. Diese Berechtigung ist für ARM-Vorlagenbereitstellungen (Azure Resource Manager) nicht erforderlich.
    • „Microsoft.Network/virtualNetworks/join/action“ auf der virtuellen Netzwerkressource
    • „Microsoft.Network/virtualNetworks/subnets/join/action“ in der Subnetzressource

    Weitere Informationen zur rollenbasierten Zugriffssteuerung von Azure in Netzwerken finden Sie unter Integrierte Netzwerkrollen.

Begrenzungen

  • Die Bereitstellung von Computeclustern/-Instanzen und serverlosem Computing im virtuellen Netzwerk wird mit Azure Lighthouse nicht unterstützt.

  • Port 445 muss für die private Netzwerkkommunikation während des Trainings zwischen Ihren Compute-Instanzen und dem Standardspeicherkonto geöffnet sein. Wenn sich Ihre Computes beispielsweise in einem VNet befinden und sich das Speicherkonto in einem anderen befindet, blockieren Sie Port 445 nicht für das VNet des Speicherkontos.

Computecluster in einem anderen VNET/einer anderen Region als dem/der des Arbeitsbereichs

Wichtig

Sie können keine Compute-Instanz in einer anderen Region/einem anderen VNET erstellen, nur einen Computecluster.

Zum Erstellen eines Computeclusters in einem Azure Virtual Network in einer anderen Region als der Ihres Arbeitsbereichs-VNets haben Sie mehrere Optionen, um die Kommunikation zwischen den beiden VNets zu ermöglichen.

  • Verwenden Sie VNet-Peering.
  • Fügen Sie einen privaten Endpunkt für Ihren Arbeitsbereich im virtuellen Netzwerk hinzu, das den Computecluster enthält.

Wichtig

Unabhängig von der ausgewählten Methode müssen Sie auch das VNet für den Computecluster erstellen. Azure Machine Learning erstellt es nicht für Sie.

Außerdem müssen Sie dem Standardspeicherkonto, Azure Container Registry und Azure Key Vault den Zugriff auf das VNet für den Computecluster erlauben. Hierfür gibt es mehrere Vorgehensweisen. Sie können beispielsweise einen privaten Endpunkt für jede Ressource im VNet für den Computecluster erstellen, oder Sie können VNet-Peering verwenden, um dem Arbeitsbereichs-VNet den Zugriff auf das Computecluster-VNet zu ermöglichen.

Szenario: VNet-Peering

  1. Konfigurieren Sie Ihren Arbeitsbereich für die Verwendung eines Azure Virtual Network. Weitere Informationen finden Sie unter Schützen von Arbeitsbereichsressourcen.

  2. Erstellen Sie ein zweites Azure Virtual Network, das für Ihre Computecluster verwendet wird. Es kann sich in einer anderen Azure-Region als in der Region befinden, die für Ihren Arbeitsbereich verwendet wird.

  3. Konfigurieren Sie das VNet-Peering zwischen den beiden VNets.

    Tipp

    Warten Sie, bis der VNet-Peering-Status Verbunden lautet, bevor Sie fortfahren.

  4. Ändern Sie die privatelink.api.azureml.ms-DNS-Zone, sodass diese einen Link zum VNet für den Computecluster hinzufügt. Diese Zone wird von Ihrem Azure Machine Learning-Arbeitsbereich erstellt, wenn ein privater Endpunkt für die Teilnahme an einem VNet verwendet wird.

    1. Fügen Sie der DNS-Zone eine neue VNet-Verbindung hinzu. Hierfür gibt es mehrere Möglichkeiten:

      • Navigieren Sie vom Azure-Portal zur DNS-Zone, und wählen Sie VNet-Verbindungen aus. Wählen Sie dann + Hinzufügen aus, und wählen Sie das VNet aus, das Sie für Ihre Computecluster erstellt haben.
      • Verwenden Sie über die Azure CLI den Befehl az network private-dns link vnet create. Weitere Informationen finden Sie unter az network private-dns link vnet create.
      • Verwenden Sie über Azure PowerShell den Befehl New-AzPrivateDnsVirtualNetworkLink. Weitere Informationen finden Sie unter New-AzPrivateDnsVirtualNetworkLink.
  5. Wiederholen Sie den vorherigen Schritt und die Unterschritte für die privatelink.notebooks.azure.net-DNS-Zone.

  6. Konfigurieren Sie die folgenden Azure-Ressourcen, um den Zugriff von beiden VNets aus zuzulassen.

    • Das Standardspeicherkonto für den Arbeitsbereich.
    • Die Azure Container Registry-Instanz für den Arbeitsbereich.
    • Den Azure Key Vault für den Arbeitsbereich.

    Tipp

    Es gibt mehrere Möglichkeiten, diese Dienste zu konfigurieren, um den Zugriff auf die VNets zuzulassen. Sie können beispielsweise in beiden VNets einen privaten Endpunkt für jede Ressource erstellen. Oder Sie konfigurieren die Ressourcen so, dass der Zugriff von beiden VNets aus zuzulassen wird.

  7. Erstellen Sie einen Computecluster wie gewohnt, wenn Sie ein VNet verwenden, aber wählen Sie das VNET aus, das Sie für den Computecluster erstellt haben. Wenn sich das VNET in einer anderen Region befindet, wählen Sie diese Region aus, wenn Sie den Computecluster erstellen.

    Warnung

    Wenn Sie bei der Festlegung der Region eine andere Region als Ihren Arbeitsbereich oder Ihre Datenspeicher wählen, können erhöhte Netzwerklatenz und Datenübertragungskosten die Folge sein. Latenz und Kosten können beim Erstellen des Clusters und beim Anwenden von Aufträgen auf den Cluster anfallen.

Szenario: Privater Endpunkt

  1. Konfigurieren Sie Ihren Arbeitsbereich für die Verwendung eines Azure Virtual Network. Weitere Informationen finden Sie unter Schützen von Arbeitsbereichsressourcen.

  2. Erstellen Sie ein zweites Azure Virtual Network, das für Ihre Computecluster verwendet wird. Es kann sich in einer anderen Azure-Region als in der Region befinden, die für Ihren Arbeitsbereich verwendet wird.

  3. Fügen Sie einen neuen privaten Endpunkt für Ihren Arbeitsbereich im VNet hinzu, das den Computecluster enthalten wird.

    • Um mithilfe des Azure-Portals einen neuen privaten Endpunkt hinzuzufügen, wählen Sie Ihren Arbeitsbereich und dann Netzwerk aus. Wählen Sie Private Endpunktverbindungen, + Privater Endpunkt aus, und erstellen Sie mithilfe der Felder einen neuen privaten Endpunkt.

      • Wählen Sie beim Festlegen von Region die gleiche Region wie für Ihr virtuelles Netzwerk aus.
      • Verwenden Sie beim Auswählen von Ressourcentyp die Option Microsoft.MachineLearningServices/workspaces.
      • Legen Sie Ressource auf den Namen des Arbeitsbereichs fest.
      • Legen Sie Virtuelles Netzwerk und Subnetz auf das VNet und Subnetz fest, das Sie für Ihre Computecluster erstellt haben.

      Wählen Sie abschließend Erstellen aus, um den privaten Endpunkt zu erstellen.

    • Um einen neuen privaten Endpunkt mithilfe der Azure CLI hinzuzufügen, verwenden Sie den Befehl az network private-endpoint create. Ein Beispiel für die Verwendung dieses Befehls finden Sie unter Konfigurieren eines privaten Endpunkts für den Azure Machine Learning-Arbeitsbereich.

  4. Erstellen Sie einen Computecluster wie gewohnt, wenn Sie ein VNet verwenden, aber wählen Sie das VNET aus, das Sie für den Computecluster erstellt haben. Wenn sich das VNET in einer anderen Region befindet, wählen Sie diese Region aus, wenn Sie den Computecluster erstellen.

    Warnung

    Wenn Sie bei der Festlegung der Region eine andere Region als Ihren Arbeitsbereich oder Ihre Datenspeicher wählen, können erhöhte Netzwerklatenz und Datenübertragungskosten die Folge sein. Latenz und Kosten können beim Erstellen des Clusters und beim Anwenden von Aufträgen auf den Cluster anfallen.

Compute-Instanz/Cluster oder serverloses Computing ohne öffentliche IP-Adresse

Warnung

Diese Informationen sind nur gültig, wenn Sie ein Azure Virtual Network verwenden. Wenn Sie ein verwaltetes virtuelles Netzwerk verwenden, finden Sie weitere Informationen unter Verwaltetes Compute mit einem verwalteten Netzwerk.

Wichtig

Wenn Sie Compute-Instanzen oder Computecluster verwendet haben, die für keine öffentliche IP-Adresse konfiguriert sind, ohne sich für die Vorschau zu entscheiden, müssen Sie sie nach dem 20. Januar 2023 löschen und neu erstellen (wenn das Feature allgemein verfügbar ist).

Wenn Sie zuvor die Vorschauversion für keine öffentliche IP-Adresse verwendet haben, müssen Sie möglicherweise auch den eingehenden und ausgehenden Datenverkehr ändern, da sich die Anforderungen für die allgemeine Verfügbarkeit geändert haben:

  • Ausgehende Anforderungen – Zwei zusätzliche ausgehende Anforderungen, die nur für die Verwaltung von Compute-Instanzen und Clustern verwendet werden. Das Ziel dieser Diensttags gehört Microsoft:
    • AzureMachineLearning-Diensttag am UDP-Port 5831.
    • BatchNodeManagement-Diensttag am TCP-Port 443.

Die folgenden Konfigurationen gelten zusätzlich zu den im Abschnitt Voraussetzungen aufgeführten und sind spezifisch für das Erstellen von Compute-Instanzen/Clustern, die für keine öffentliche IP-Adresse konfiguriert sind. Sie gelten auch für serverloses Computing:

  • Sie müssen einen privaten Arbeitsbereichsendpunkt verwenden, damit die Computeressource über das VNET mit Azure Machine Learning-Diensten kommunizieren kann. Weitere Informationen finden Sie unter „Konfigurieren eines privaten Endpunkts für Azure Machine Learning Workspace“.

  • Lassen Sie in Ihrem VNet ausgehenden Datenverkehr zu den folgenden Service-Tags oder vollqualifizierten Domänennamen (FQDN) zu:

    Diensttag Protocol Port Notizen
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Kommunikation mit dem Azure Machine Learning Service.
    BatchNodeManagement.<region> ANY 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Kommunikation mit Azure Batch. Compute-Instanz und Computecluster werden mithilfe des Azure Batch-Diensts implementiert.
    Storage.<region> TCP 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Dieses Diensttag wird verwendet, um mit dem von Azure Batch verwendeten Azure Storage-Konto zu kommunizieren.

    Wichtig

    Der ausgehende Zugriff auf Storage.<region> könnte potenziell dazu verwendet werden, Daten aus Ihrem Arbeitsbereich zu exfiltrieren. Mithilfe einer Richtlinie für Dienstendpunkte können Sie dieses Sicherheitsrisiko entschärfen. Weitere Informationen finden Sie im Artikel Verhinderung der Azure Machine Learning-Datenexfiltration.

    FQDN Protocol Port Notizen
    <region>.tundra.azureml.ms UDP 5831 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält.
    graph.windows.net TCP 443 Kommunikation mit der Microsoft Graph-API.
    *.instances.azureml.ms TCP 443/8787/18881 Kommunikation mit Azure Machine Learning.
    *.<region>.batch.azure.com ANY 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Kommunikation mit Azure Batch.
    *.<region>.service.batch.azure.com ANY 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Kommunikation mit Azure Batch.
    *.blob.core.windows.net TCP 443 Kommunikation mit Azure Blob Storage.
    *.queue.core.windows.net TCP 443 Kommunikation mit Azure Queue Storage.
    *.table.core.windows.net TCP 443 Kommunikation mit Azure Table Storage.
  • Standardmäßig verfügt eine Computeinstanz/ein Cluster, der für keine öffentliche IP-Adresse konfiguriert ist, über keinen ausgehenden Zugriff auf das Internet. Wenn Sie von dort aus auf das Internet zugreifen können, liegt dies am ausgehenden Standardzugriff von Azure, und Sie verfügen über eine NSG, die ausgehenden Datenverkehr in das Internet zulässt. Es wird jedoch nicht empfohlen, den ausgehenden Standardzugriff zu verwenden. Wenn Sie ausgehenden Zugriff auf das Internet benötigen, empfiehlt es sich, entweder eine Firewall und Ausgangsregeln oder ein NAT-Gateway und Netzwerkdienstgruppen zu verwenden, um ausgehenden Datenverkehr zuzulassen.

    Weitere Informationen zum ausgehenden Datenverkehr, der von Azure Machine Learning verwendet wird, finden Sie in den folgenden Artikeln:

    Weitere Informationen zu Diensttags, die mit Azure Firewall verwendet werden können, finden Sie im Artikel Diensttags für virtuelle Netzwerke.

Verwenden Sie die folgenden Informationen, um eine Compute-Instanz oder einen Cluster ohne öffentliche IP-Adresse zu erstellen:

Ersetzen Sie im Befehl az ml compute create die folgenden Werte:

  • rg: Die Ressourcengruppe, in der die Compute erstellt wird.
  • ws: Der Name des Azure Machine Learning-Arbeitsbereichs.
  • yourvnet: Das Azure Virtual Network.
  • yoursubnet: Das für die Compute zu verwendende Subnetz.
  • AmlCompute oder ComputeInstance: Durch die Angabe von AmlCompute wird ein Computecluster erstellt. ComputeInstance erstellt eine Compute-Instanz.
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False

# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False

Verwenden Sie die folgenden Informationen, um Knoten für serverloses Computing ohne öffentliche IP-Adresse in einem virtuellen Netzwerk (VNet) für einen bestimmten Arbeitsbereich zu konfigurieren:

Erstellen Sie einen Arbeitsbereich:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Aktualisieren Sie den Arbeitsbereich:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Compute-Instanz/Cluster oder serverloses Computing mit öffentlicher IP-Adresse

Wichtig

Diese Informationen sind nur gültig, wenn Sie ein Azure Virtual Network verwenden. Wenn Sie ein verwaltetes virtuelles Netzwerk verwenden, finden Sie weitere Informationen unter Verwaltetes Compute mit einem verwalteten Netzwerk.

Die folgenden Konfigurationen gelten zusätzlich zu den im Abschnitt Voraussetzungen aufgeführten und sind spezifisch für das Erstellen von Compute-Instanzen/Clustern mit öffentlicher IP-Adresse. Sie gelten auch für serverloses Computing:

  • Wenn Sie mehrere Compute-Instanzen/Cluster in einem einzelnen virtuellen Netzwerk platzieren möchten, müssen Sie möglicherweise eine Kontingenterhöhung für eine oder mehrere Ihrer Ressourcen anfordern. Die Machine Learning-Compute-Instanz bzw. der Cluster ordnet in der Ressourcengruppe mit dem virtuellen Netzwerk automatisch Netzwerkressourcen zu. Für alle Compute-Instanzen und -cluster ordnet der Dienst folgende Ressourcen zu:

    • Eine Netzwerksicherheitsgruppe (NSG) wird automatisch erstellt. Diese NSG lässt eingehenden TCP-Datenverkehr auf Port 44224 vom Diensttag AzureMachineLearning zu.

      Wichtig

      Compute-Instanz und Compute-Cluster erstellen automatisch eine NSG mit den erforderlichen Regeln.

      Wenn Sie eine andere NSG auf Subnetzebene haben, dürfen die Regeln in der NSG auf Subnetzebene nicht mit den Regeln in der automatisch erstellten NSG in Konflikt stehen.

      Informationen dazu, wie die NSGs Ihren Netzwerkverkehr filtern, finden Sie unter So filtern Netzwerksicherheitsgruppen den Netzwerkverkehr.

    • Ein Lastenausgleichsmodul

    Bei Computeclustern werden diese Ressourcen bei jedem Herunterskalieren des Clusters auf 0 Knoten gelöscht und beim Hochskalieren erstellt.

    Bei einer Compute-Instanz werden diese Ressourcen beibehalten, bis die Instanz gelöscht wird. Durch das Beenden der Instanz werden die Ressourcen nicht entfernt.

    Wichtig

    Diese Ressourcen werden durch die Ressourcenkontingente des Abonnements beschränkt. Ist die Ressourcengruppe des virtuellen Netzwerks gesperrt, kann der Computecluster/die Compute-Instanz nicht erfolgreich gelöscht werden. Der Lastenausgleich kann erst nach dem Löschen des Computeclusters/der Compute-Instanz gelöscht werden. Stellen Sie außerdem sicher, dass keine Azure-Richtlinienzuweisungen vorhanden sind, die die Erstellung von Netzwerksicherheitsgruppen verhindern.

  • Lassen Sie in Ihrem VNet eingehenden TCP-Datenverkehr an Port 44224 vom Diensttag AzureMachineLearning zu.

    Wichtig

    Der Compute-Instanz/dem Cluster wird beim Erstellen dynamisch eine IP-Adresse zugewiesen. Da die Adresse vor der Erstellung nicht bekannt ist und eingehender Zugriff im Rahmen des Erstellungsprozesses erforderlich ist, können Sie sie Ihrer Firewall nicht statisch zuweisen. Wenn Sie stattdessen eine Firewall mit dem VNet verwenden, müssen Sie eine benutzerdefinierte Route erstellen, um diesen eingehenden Datenverkehr zuzulassen.

  • Lassen Sie in Ihrem VNet ausgehenden Datenverkehr für die folgenden Diensttags zu:

    Diensttag Protocol Port Notizen
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Kommunikation mit dem Azure Machine Learning Service.
    BatchNodeManagement.<region> ANY 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Kommunikation mit Azure Batch. Compute-Instanz und Computecluster werden mithilfe des Azure Batch-Diensts implementiert.
    Storage.<region> TCP 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Dieses Diensttag wird verwendet, um mit dem von Azure Batch verwendeten Azure Storage-Konto zu kommunizieren.

    Wichtig

    Der ausgehende Zugriff auf Storage.<region> könnte potenziell dazu verwendet werden, Daten aus Ihrem Arbeitsbereich zu exfiltrieren. Mithilfe einer Richtlinie für Dienstendpunkte können Sie dieses Sicherheitsrisiko entschärfen. Weitere Informationen finden Sie im Artikel Verhinderung der Azure Machine Learning-Datenexfiltration.

    FQDN Protocol Port Notizen
    <region>.tundra.azureml.ms UDP 5831 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält.
    graph.windows.net TCP 443 Kommunikation mit der Microsoft Graph-API.
    *.instances.azureml.ms TCP 443/8787/18881 Kommunikation mit Azure Machine Learning.
    *.<region>.batch.azure.com ANY 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Kommunikation mit Azure Batch.
    *.<region>.service.batch.azure.com ANY 443 Ersetzen Sie <region> durch die Azure-Region, die Ihren Azure Machine Learning-Arbeitsbereich enthält. Kommunikation mit Azure Batch.
    *.blob.core.windows.net TCP 443 Kommunikation mit Azure Blob Storage.
    *.queue.core.windows.net TCP 443 Kommunikation mit Azure Queue Storage.
    *.table.core.windows.net TCP 443 Kommunikation mit Azure Table Storage.

Verwenden Sie die folgenden Informationen, um eine Compute-Instanz oder einen Cluster mit einer öffentlichen IP-Adresse zu erstellen:

Ersetzen Sie im Befehl az ml compute create die folgenden Werte:

  • rg: Die Ressourcengruppe, in der die Compute erstellt wird.
  • ws: Der Name des Azure Machine Learning-Arbeitsbereichs.
  • yourvnet: Das Azure Virtual Network.
  • yoursubnet: Das für die Compute zu verwendende Subnetz.
  • AmlCompute oder ComputeInstance: Durch die Angabe von AmlCompute wird ein Computecluster erstellt. ComputeInstance erstellt eine Compute-Instanz.
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute

# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance

Verwenden Sie die folgenden Informationen, um Knoten für serverloses Computing mit öffentlicher IP-Adresse in einem virtuellen Netzwerk (VNet) für einen bestimmten Arbeitsbereich zu konfigurieren:

Erstellen Sie einen Arbeitsbereich:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Aktualisieren Sie den Arbeitsbereich:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Azure Databricks

  • Das virtuelle Netzwerk muss sich im selben Abonnement und in derselben Region befinden wie der Azure Machine Learning-Arbeitsbereich.
  • Wenn die Azure Storage-Konten für den Arbeitsbereich ebenfalls in einem virtuellen Netzwerk geschützt sind, müssen sie sich im selben virtuellen Netzwerk befinden wie der Azure Databricks-Cluster.
  • Zusätzlich zu den von Azure Databricks verwendeten Subnetzen databricks-private und databricks-public ist auch das für das virtuelle Netzwerk erstellte standardmäßige Subnetz erforderlich.
  • Azure Databricks verwendet keinen privaten Endpunkt für die Kommunikation mit dem virtuellen Netzwerk.

Weitere Informationen zur Verwendung von Azure Databricks mit einem virtuellen Netzwerk finden Sie unter Bereitstellen von Azure Databricks in Ihrem Azure Virtual Network.

Virtueller Computer oder HDInsight-Cluster

In diesem Abschnitt erfahren Sie, wie Sie einen virtuellen Computer oder einen Azure HDInsight-Cluster in einem virtuellen Netzwerk mit Ihrem Arbeitsbereich verwenden.

Erstellen der VM oder des HDInsight-Clusters

Wichtig

Azure Machine Learning unterstützt nur virtuelle Computer, auf denen Ubuntu ausgeführt wird.

Erstellen Sie einen virtuellen Computer oder einen HDInsight-Cluster mithilfe des Azure-Portals oder der Azure-Befehlszeilenschnittstelle, und platzieren Sie den Cluster in einem virtuellen Azure-Netzwerk. Weitere Informationen finden Sie in den folgenden Artikeln:

Konfigurieren der Netzwerkports

Damit Azure Machine Learning mit dem SSH-Port des virtuellen Computers oder des Clusters kommunizieren kann, konfigurieren Sie einen Quelleintrag für die Netzwerksicherheitsgruppe. Der SSH-Port ist in der Regel der Port 22. Gehen Sie wie folgt vor, um Datenverkehr aus dieser Quelle zuzulassen:

  1. Wählen Sie in der Dropdownliste Quelle den Eintrag Diensttag aus.

  2. Wählen Sie in der Dropdownliste Quelldiensttag den Eintrag AzureMachineLearning aus.

    Screenshot von Eingangsregeln für Experimente auf einem virtuellen Computer oder in einem HDInsight-Cluster innerhalb eines virtuellen Netzwerks.

  3. Wählen Sie in der Dropdownliste Quellportbereiche den Eintrag * aus.

  4. Wählen in der Dropdownliste Ziel die Option Alle aus.

  5. Wählen Sie in der Dropdownliste Quellportbereiche den Eintrag 22 aus.

  6. Wählen Sie unter Protokoll die Option Alle aus.

  7. Wählen Sie für Aktion die Option Zulassen aus.

Behalten Sie die Standardausgangsregeln für die Netzwerksicherheitsgruppe bei. Weitere Informationen finden Sie unter Sicherheitsgruppen bei den Standardsicherheitsregeln.

Wenn Sie die Standardausgangsregeln nicht verwenden und den ausgehenden Zugriff auf Ihr virtuelles Netzwerk beschränken möchten, lesen Sie den Abschnitt Erforderlicher öffentlicher Internetzugriff.

Anfügen der VM oder des HDInsight-Clusters

Fügen Sie den virtuellen Computer oder den HDInsight-Cluster an Ihren Azure Machine Learning-Arbeitsbereich an. Weitere Informationen finden Sie unter Verwalten von Computeressourcen für das Modelltraining und die Bereitstellung in Studio.

Erforderlicher öffentlicher Internetzugriff zum Trainieren von Modellen

Wichtig

Während in den vorherigen Abschnitten dieses Artikels Konfigurationen beschrieben werden, die zum Erstellen von Computeressourcen erforderlich sind, sind die Konfigurationsinformationen in diesem Abschnitt erforderlich, um diese Ressourcen zum Trainieren von Modellen zu verwenden.

Azure Machine Learning erfordert sowohl eingehenden als auch ausgehenden Zugriff auf das öffentliche Internet. Die folgenden Tabellen bieten eine Übersicht darüber, welcher Zugriff erforderlich ist und welchem Zweck der Zugriff dient. Ersetzen Sie bei Diensttags, die auf .region enden, region durch die Azure-Region, die Ihren Arbeitsbereich enthält. Zum Beispiel Storage.westus:

Tipp

Auf der erforderlichen Registerkarte werden die erforderlichen ein- und ausgehenden Konfigurationen aufgeführt. Die situative Registerkarte listet optionale eingehende und ausgehende Konfigurationen auf, die für bestimmte Konfigurationen erforderlich sind, die Sie möglicherweise aktivieren möchten.

Direction Protokoll und
ports
Diensttag Zweck
Ausgehend TCP: 80, 443 AzureActiveDirectory Authentifizierung mit Microsoft Entra ID.
Ausgehend TCP: 443, 18881
UDP: 5831
AzureMachineLearning Verwenden von Azure Machine Learning Service.
Python IntelliSense in Notebooks verwendet Port 18881.
Zum Erstellen, Aktualisieren und Löschen einer Azure Machine Learning-Compute-Instanz wird Port 5831 verwendet.
Ausgehend ANY: 443 BatchNodeManagement.region Kommunikation mit Azure Batch-Back-End für Azure Machine Learning-Compute-Instanzen/-Cluster.
Ausgehend TCP: 443 AzureResourceManager Erstellen von Azure-Ressourcen mit Azure Machine Learning, der Azure CLI und dem Azure Machine Learning SDK.
Ausgehend TCP: 443 Storage.region Zugreifen auf Daten, die im Azure Storage-Konto für Compute-Cluster und Compute-Instanzen gespeichert sind. Informationen zum Verhindern der Datenexfiltration über diesen ausgehenden Datenverkehr finden Sie unter Schutz vor Datenexfiltration.
Ausgehend TCP: 443 AzureFrontDoor.FrontEnd
* Nicht erforderlich in Microsoft Azure operated by 21Vianet.
Globaler Einstiegspunkt für Azure Machine Learning Studio. Speichern von Images und Umgebungen für AutoML. Informationen zum Verhindern der Datenexfiltration über diesen ausgehenden Datenverkehr finden Sie unter Schutz vor Datenexfiltration.
Ausgehend TCP: 443 MicrosoftContainerRegistry.region
Hinweis: Dieses Tag ist vom Tag AzureFrontDoor.FirstParty abhängig.
Auf Docker-Images zugreifen, die von Microsoft bereitgestellt werden. Einrichten des Azure Machine Learning Routers für Azure Kubernetes Service.

Tipp

Falls Sie anstelle von Diensttags die IP-Adressen benötigen, verwenden Sie eine der folgenden Optionen:

Die IP-Adressen können sich von Zeit zu Zeit ändern.

Unter Umständen muss auch ausgehender Datenverkehr für Visual Studio Code und Microsoft-fremde Websites zugelassen werden, um die Installation von Paketen zu ermöglichen, die für Ihr Machine Learning-Projekt erforderlich sind. Die folgende Tabelle enthält gängige Repositorys für maschinelles Lernen:

Hostname Zweck
anaconda.com
*.anaconda.com
Wird verwendet, um Standardpakete zu installieren
*.anaconda.org Wird verwendet, um Repositorydaten abzurufen
pypi.org Wird zum Auflisten von Abhängigkeiten vom Standardindex verwendet, sofern vorhanden, und der Index wird nicht durch Benutzereinstellungen überschrieben. Wenn der Index überschrieben wird, müssen Sie auch *.pythonhosted.org zulassen.
cloud.r-project.org Wird beim Installieren von CRAN-Paketen für die R-Entwicklung verwendet.
*.pytorch.org Wird von einigen Beispielen verwendet, die auf PyTorch basieren.
*.tensorflow.org Wird von einigen Beispielen verwendet, die auf Tensorflow basieren.
code.visualstudio.com Zum Herunterladen und Installieren von Visual Studio Code als Desktopversion erforderlich. Dies ist für Visual Studio Code Web nicht erforderlich.
update.code.visualstudio.com
*.vo.msecnd.net
Wird zum Abrufen von Visual Studio Code-Serverbits verwendet, die über ein Setupskript auf der Compute-Instanz installiert werden.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
Zum Herunterladen und Installieren von Visual Studio Code-Erweiterungen erforderlich. Diese Hosts ermöglichen die Remoteverbindung mit den Compute-Instanzen, die von der Azure ML-Erweiterung für Visual Studio Code bereitgestellt werden. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einer Azure Machine Learning-Compute-Instanz in Visual Studio Code (Vorschau).
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* Dient zum Abrufen von Websocket-Server-Bits, die auf der Compute-Instanz installiert sind. Der Websocket-Server wird verwendet, um Anforderungen des Visual Studio Code-Clients (Desktopanwendung) an den Visual Studio Code-Server zu übertragen, der in der Compute-Instanz ausgeführt wird.

Hinweis

Bei Verwendung der Erweiterung Azure Machine Learning für Visual Studio Code benötigt die Remotecompute-Instanz Zugriff auf öffentliche Repositorys, um die für die Erweiterung erforderlichen Pakete zu installieren. Wenn die Compute-Instanz einen Proxy für den Zugriff auf diese öffentlichen Repositorys oder das Internet erfordert, müssen Sie die Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY in der Datei ~/.bashrc der Compute-Instanz festlegen und exportieren. Dieser Prozess kann zum Zeitpunkt der Bereitstellung mithilfe eines benutzerdefinierten Skripts automatisiert werden.

Wenn Sie Azure Kubernetes Service (AKS) mit Azure Machine Learning verwenden, lassen Sie den folgenden Datenverkehr an das AKS-VNET zu:

Informationen zur Verwendung einer Firewalllösung finden Sie unter Verwenden einer Firewall mit Azure Machine Learning.

Nächste Schritte

Dieser Artikel ist Teil einer Reihe zum Schützen eines Azure Machine Learning-Workflows. Sehen Sie sich auch die anderen Artikel in dieser Reihe an: