Konfigurieren eines privaten Endpunkts für einen Azure Machine Learning-Arbeitsbereich

GILT FÜRAzure CLI-ML-Erweiterung v2 (aktuell)

Hier erfahren Sie, wie Sie einen privaten Endpunkt für Ihren Azure Machine Learning-Arbeitsbereich konfigurieren. Informationen zur Erstellung eines virtuellen Netzwerks für Azure Machine Learning finden Sie unter Übersicht über die Isolierung und den Datenschutz für virtuelle Netzwerke.

Azure Private Link ermöglicht Ihnen das Herstellen einer Verbindung mit Ihrem Arbeitsbereich über einen privaten Endpunkt. Bei einem privaten Endpunkt handelt es sich um eine Gruppe privater IP-Adressen in Ihrem virtuellen Netzwerk. Sie können dann den Zugriff auf Ihren Arbeitsbereich so einschränken, dass er nur über die privaten IP-Adressen erfolgt. Private Endpunkte helfen dabei, das Risiko einer Datenexfiltration zu verringern. Weitere Informationen zu privaten Endpunkten finden Sie im Artikel zu Azure Private Link.

Warnung

Wenn Sie einen Arbeitsbereich mit privaten Endpunkten sichern, wird die End-to-End-Sicherheit allein nicht sichergestellt. Sie müssen alle verschiedenen Komponenten Ihrer Lösung sichern. Wenn Sie z. B. einen privaten Endpunkt für den Arbeitsbereich verwenden, ihr Azure Storage-Konto sich jedoch nicht hinter dem VNet befindet, wird der Datenverkehr zwischen dem Arbeitsbereich und dem Speicher nicht vom VNet geschützt.

Weitere Informationen zum Sichern von Ressourcen, die von Azure Machine Learning verwendet werden, finden Sie in den folgenden Artikeln:

Voraussetzungen

  • Sie benötigen ein vorhandenes virtuelles Netzwerk, in dem der private Endpunkt erstellt werden soll.

    Wichtig

    Es wird nicht empfohlen, den IP-Adressbereich 172.17.0.0/16 für Ihr VNet zu verwenden. Dies ist der Standardsubnetzbereich, der vom Docker-Bridgenetzwerk verwendet wird. Andere Bereiche können ebenfalls Konflikte verursachen, je nachdem, was Sie mit dem virtuellen Netzwerk verbinden möchten. Beispiel: Sie möchten Ihr lokales Netzwerk mit dem VNet verbinden und Ihr lokales Netzwerk nutzt auch den Bereich 172.16.0.0/16. Letztendlich liegt es an Ihnen, Ihre Netzwerkinfrastruktur zu planen.

  • Sie müssen die privaten Endpunkt-Netzwerkrichtlinien deaktivieren bevor sie private Endpunkte hinzufügen.

Einschränkungen

  • Wenn öffentlicher Zugriff für einen Arbeitsbereich aktiviert wird, der mit einem privaten Endpunkt abgesichert ist, und Sie Azure Machine Learning Studio über das öffentliche Internet verwenden, können einige Features wie der Designer beim Zugriff auf Ihre Daten fehlschlagen. Dieses Problem tritt auf, wenn die Daten in einem Dienst gespeichert werden, der hinter dem VNet geschützt ist. Dies gilt z. B. für ein Azure Storage-Konto.

  • Wenn Sie Mozilla Firefox verwenden, treten möglicherweise Probleme beim Zugriff auf den privaten Endpunkt für Ihren Arbeitsbereich auf. Dieses Problem kann im Zusammenhang mit DNS über HTTPS in Mozilla Firefox auftreten. Es wird empfohlen, Microsoft Edge oder Google Chrome zu verwenden.

  • Einen privaten Endpunkt zu verwenden hat keine Auswirkungen auf die Azure-Steuerungsebene, d. h. auf Verwaltungsvorgänge wie das Löschen des Arbeitsbereichs oder das Verwalten von Computeressourcen. Beispiele: Erstellen, Aktualisieren oder Löschen eines Computeziels. Diese Vorgänge werden ganz normal über das öffentliche Internet ausgeführt. Bei Vorgängen auf Datenebene, etwa bei der Verwendung von Azure Machine Learning Studio, APIs (einschließlich veröffentlichter Pipelines) oder des SDK, wird der private Endpunkt verwendet.

  • Wenn Sie eine Compute-Instanz oder einen Computecluster in einem Arbeitsbereich mit einem privaten Endpunkt erstellen, müssen sich die Compute-Instanz und der Computecluster in derselben Azure-Region wie der Arbeitsbereich befinden.

  • Beim Anfügen eines Azure Kubernetes Service-Clusters an einen Arbeitsbereich mit einem privaten Endpunkt muss sich der Cluster in derselben Region wie der Arbeitsbereich befinden.

  • Wenn Sie einen Arbeitsbereich mit mehreren privaten Endpunkten verwenden, muss sich einer der privaten Endpunkte im selben VNet wie die folgenden Abhängigkeitsdienste befinden:

    • Azure Storage Konto, das den Standardspeicher für den Arbeitsbereich bietet
    • Azure Key Vault für den Arbeitsbereich
    • Azure Container Registry für den Arbeitsbereich

    Beispielsweise würde ein VNET (Dienst-VNET) einen privaten Endpunkt für die Abhängigkeitsdienste und den Arbeitsbereich enthalten. Diese Konfiguration ermöglicht dem Arbeitsbereich die Kommunikation mit den Diensten. Ein anderes VNET („Clients“) kann nur einen privaten Endpunkt für den Arbeitsbereich enthalten und nur für die Kommunikation zwischen Cliententwicklungscomputern und dem Arbeitsbereich verwendet werden.

Erstellen eines Arbeitsbereichs, der einen privaten Endpunkt verwendet

Verwenden Sie eine der folgenden Methoden, um einen Arbeitsbereich mit einem privaten Endpunkt zu erstellen. Jede dieser Methoden erfordert ein vorhandenes virtuelles Netzwerk:

Tipp

Wenn Sie einen Arbeitsbereich, einen privaten Endpunkt und ein virtuelles Netzwerk gleichzeitig erstellen möchten, lesen Sie die Informationen unter Verwenden einer Azure Resource Manager-Vorlage zum Erstellen eines Arbeitsbereichs für Azure Machine Learning.

GILT FÜR:Azure CLI-ML-Erweiterungv2 (aktuell)

Bei Verwendung der Erweiterung 2.0 CLI für maschinelles Lernen der Azure CLI wird ein YAML-Dokument zur Konfiguration des Arbeitsbereichs verwendet. Im folgenden Beispiel wird die Erstellung eines neuen Arbeitsbereichs mithilfe einer YAML-Konfiguration veranschaulicht:

Tipp

Wenn Sie einen privaten Link verwenden, kann Ihr Arbeitsbereich keine Azure Container Registry-Aufgaben für die Image-Erstellung verwenden. Die image_build_compute-Eigenschaft in dieser Konfiguration gibt einen CPU-Computeclusternamen an, der für die Erstellung einer Docker-Imageumgebung verwendet werden soll. Mit der Eigenschaft public_network_access können Sie außerdem festlegen, ob der private Link-Arbeitsbereich über das Internet zugänglich sein soll.

In diesem Beispiel muss der Compute, auf den image_build_compute verweist, erstellt werden, bevor Images erstellt werden können.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
  purpose: demonstration
az ml workspace create \
    -g <resource-group-name> \
    --file privatelink.yml

Nachdem Sie den Arbeitsbereich erstellt haben, verwenden Sie die Azure Networking CLI-Befehle, um einen privaten Link-Endpunkt für den Arbeitsbereich zu erstellen.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Um die privaten DNS-Zoneneinträge für den Arbeitsbereich zu erstellen, verwenden Sie die folgenden Befehle:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.api.azureml.ms

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.api.azureml.ms \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.api.azureml.ms \
    --zone-name privatelink.api.azureml.ms

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.notebooks.azure.net

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.notebooks.azure.net \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.notebooks.azure.net \
    --zone-name privatelink.notebooks.azure.net

Hinzufügen eines privaten Endpunkts zu einem Arbeitsbereich

Verwenden Sie eine der folgenden Methoden, um einem vorhandenen Arbeitsbereich einen privaten Endpunkt hinzuzufügen:

Warnung

Wenn Sie über vorhandene Computeziele verfügen, die diesem Arbeitsbereich zugeordnet sind und sich nicht hinter dem gleichen virtuellen Netzwerk befinden, in dem der private Endpunkt erstellt wird, funktionieren sie nicht.

GILT FÜR:Azure CLI-ML-Erweiterungv2 (aktuell)

Wenn Sie die Erweiterung 2.0 CLI für maschinelles Lernen der Azure CLI verwenden, verwenden Sie die Azure-Netzwerk-CLI-Befehle, um einen Private Link-Endpunkt für den Arbeitsbereich zu erstellen.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Um die privaten DNS-Zoneneinträge für den Arbeitsbereich zu erstellen, verwenden Sie die folgenden Befehle:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

Entfernen eines privaten Endpunkts

Sie können einen oder alle privaten Endpunkte für einen Arbeitsbereich entfernen. Wenn Sie einen privaten Endpunkt entfernen, wird der Arbeitsbereich aus dem VNet entfernt, dem der Endpunkt zugeordnet war. Das Entfernen des privaten Endpunkts kann den Arbeitsbereich daran hindern, auf Ressourcen in diesem VNet zuzugreifen, oder Ressourcen im VNet daran hindern, auf den Arbeitsbereich zuzugreifen. Wenn das VNet z. B. keinen Zugriff auf das öffentliche Internet oder vom öffentlichen Internet gestattet.

Warnung

Wenn Sie die privaten Endpunkte für einen Arbeitsbereich entfernen, wird dieser nicht öffentlich zugänglich. Um den Arbeitsbereich öffentlich zugänglich zu machen, verwenden Sie die Schritte im Abschnitt Aktivieren des öffentlichen Zugriffs.

Verwenden Sie die folgenden Informationen, um einen privaten Endpunkt zu entfernen:

GILT FÜR:Azure CLI-ML-Erweiterungv2 (aktuell)

Wenn Sie die Erweiterung 2.0 CLI für maschinelles Lernen der Azure CLI verwenden, verwenden Sie den folgenden Befehl, um den privaten Endpunkt zu entfernen:

az network private-endpoint delete \
    --name <private-endpoint-name> \
    --resource-group <resource-group-name> \

Aktivieren des öffentlichen Zugriffs

Es kann Situationen geben, in denen Sie jemandem ermöglichen möchten, eine Verbindung mit Ihrem geschützten Arbeitsbereich über einen öffentlichen Endpunkt (anstatt über das VNET) herzustellen. Alternativ können Sie den Arbeitsbereich aus dem VNet entfernen und den öffentlichen Zugriff erneut aktivieren.

Wichtig

Die Aktivierung des öffentlichen Zugriffs entfernt keine vorhandenen privaten Endpunkte. Die gesamte Kommunikation zwischen den Komponenten hinter dem VNet, mit dem die privaten Endpunkte verbunden sind, ist weiterhin gesichert. Der öffentliche Zugriff wird nur für den Arbeitsbereich ermöglicht (zusätzlich zum privaten Zugriff über alle privaten Endpunkte).

Warnung

Wenn eine Verbindung über den öffentlichen Endpunkt hergestellt wird, während der Arbeitsbereich einen privaten Endpunkt zur Kommunikation mit anderen Ressourcen verwendet:

  • Einige Features von Studio können nicht auf Ihre Daten zugreifen. Dieses Problem tritt auf, wenn die Daten in einem Dienst gespeichert werden, der hinter dem VNet geschützt ist. Dies gilt z. B. für ein Azure Storage-Konto.
  • Die Verwendung von Jupyter, JupyterLab, RStudio oder Posit Workbench (früher RStudio Workbench) auf einer Compute-Instanz, einschließlich der Ausführung von Notebooks, wird nicht unterstützt.

Verwenden Sie die folgenden Schritte, um den öffentlichen Zugriff zu aktivieren:

Tipp

Es gibt zwei mögliche Eigenschaften, die Sie konfigurieren können:

  • allow_public_access_when_behind_vnet – verwendet vom Python SDK v1
  • public_network_access – verwendet von der CLI und Python SDK v2. Jede Eigenschaft setzt die andere außer Kraft. Die Einstellung public_network_access überschreibt beispielsweise alle vorherigen Einstellungen auf allow_public_access_when_behind_vnet.

Microsoft empfiehlt, den öffentlichen Zugriff auf einen Arbeitsbereich mit public_network_access zu aktivieren oder zu deaktivieren.

GILT FÜR:Azure CLI-ML-Erweiterungv2 (aktuell)

Wenn Sie die Erweiterung 2.0 CLI für maschinelles Lernen der Azure CLI verwenden, verwenden Sie den Befehl az ml update, um public_network_access für den Arbeitsbereich zu aktivieren:

az ml workspace update \
    --set public_network_access=Enabled \
    -n <workspace-name> \
    -g <resource-group-name>

Sie können auch den öffentlichen Netzwerkzugriff mithilfe einer YAML-Datei aktivieren. Weitere Informationen finden Sie in der YAML-Referenz für Arbeitsbereiche.

Sicheres Herstellen einer Verbindung mit Ihrem Arbeitsbereich

Verwenden Sie eine der folgenden Methoden, um eine Verbindung mit einem Arbeitsbereich herzustellen, der hinter einem VNet geschützt ist:

  • Azure VPN Gateway: Verbindet lokale Netzwerke über eine private Verbindung mit dem VNet. Die Verbindung wird über das öffentliche Internet hergestellt. Es gibt zwei Arten von VPN Gateways, die Sie verwenden können:

    • Point-to-Site: Jeder Clientcomputer verwendet einen VPN-Client, um eine Verbindung mit dem VNet herzustellen.
    • Site-to-Site: Ein VPN-Gerät verbindet das VNet mit Ihrem lokalen Netzwerk.
  • ExpressRoute: Verbindet lokale Netzwerke über eine private Verbindung mit der Cloud. Die Verbindung wird über einen Konnektivitätsanbieter hergestellt.

  • Azure Bastion: In diesem Szenario erstellen Sie einen virtuellen Azure-Computer (auch als Jumpbox bezeichnet) im VNet. Anschließend stellen Sie mit Azure Bastion eine Verbindung mit dem virtuellen Computer her. Bastion ermöglicht es Ihnen, über eine RDP- oder SSH-Sitzung in Ihrem lokalen Webbrowser eine Verbindung mit dem virtuellen Computer herzustellen. Anschließend verwenden Sie die Jumpbox als Entwicklungsumgebung. Da sie sich innerhalb des VNet befindet, kann sie direkt auf den Arbeitsbereich zugreifen. Ein Beispiel für die Verwendung einer Jumpbox finden Sie unter Tutorial: Erstellen eines sicheren Arbeitsbereichs.

Wichtig

Wenn Sie ein VPN-Gateway oder ExpressRoute verwenden, müssen Sie planen, wie die Namensauflösung zwischen den lokalen Ressourcen und denen im VNet funktioniert. Weitere Informationen finden Sie unter Verwenden eines benutzerdefinierten DNS-Servers.

Sollten Sie Probleme bei der Verbindungsherstellung mit dem Arbeitsbereich haben, lesen Sie Behandeln von Problemen im Zusammenhang mit sicherer Arbeitsbereichskonnektivität.

Mehrere private Endpunkte

Azure Machine Learning unterstützt mehrere private Endpunkte für einen Arbeitsbereich. Es werden häufig mehrere private Endpunkte verwendet, wenn Sie unterschiedliche Umgebungen voneinander trennen möchten. Im Folgenden finden Sie einige Szenarios, die mithilfe mehrerer privater Endpunkte aktiviert werden:

  • Cliententwicklungsumgebungen in einem separaten VNET.

  • Ein Azure Kubernetes Service-Cluster (AKS) in einem separaten VNET.

  • Andere Azure-Dienste in einem separaten VNET. Beispielsweise können Azure Synapse und Azure Data Factory ein von Microsoft verwaltetes virtuelles Netzwerk verwenden. In beiden Fällen kann dem verwalteten VNET, das von diesen Diensten verwendet wird, ein privater Endpunkt für den Arbeitsbereich hinzugefügt werden. Weitere Informationen zur Verwendung eines verwalteten virtuellen Netzwerks mit diesen Diensten finden Sie in den folgenden Artikeln:

    Wichtig

    Der Schutz vor Datenexfiltration von Synapse wird bei der Azure Machine Learning nicht unterstützt.

Wichtig

Jedes VNet, das einen privaten Endpunkt für den Arbeitsbereich enthält, muss außerdem Zugriff auf das Azure-Storage-Konto, den Azure Key Vault und Azure Container Registry haben, die vom Arbeitsbereich verwendet werden. Beispielsweise können Sie einen privaten Endpunkt für die Dienste in jedem VNet erstellen.

Zum Hinzufügen mehrerer privater Endpunkte werden die gleichen Schritte wie im Abschnitt Hinzufügen eines privaten Endpunkts zu einem Arbeitsbereich beschrieben.

Szenario: Isolierte Clients

Wenn Sie die Entwicklungsclients isolieren möchten, damit sie keinen direkten Zugriff auf die Computeressourcen haben, die von Azure Machine Learning verwendet werden, führen Sie die folgenden Schritte aus:

Hinweis

Bei diesen Schritten wird davon ausgegangen, dass Sie über einen vorhandenen Arbeitsbereich, Azure Storage, Azure Key Vault und Azure Container Registry verfügen. Jeder dieser Dienste verfügt über einen privaten Endpunkt in einem vorhandenen VNet.

  1. Erstellen Sie ein weiteres VNet für Clients. Dieses VNet kann Azure Virtual Machines enthalten, die als Ihre Clients fungieren, oder ein VPN-Gateway, das von lokalen Clients zum Herstellen einer Verbindung mit dem VNet verwendet wird.
  2. Fügen Sie einen neuen privaten Endpunkt für das Azure Storage-Konto, Azure Key Vault und die Azure Container Registry Ihres Arbeitsbereichs hinzu. Diese privaten Endpunkte sollten im Client-VNet vorhanden sein.
  3. Wenn Sie über einen anderen Speicher verfügen, der von Ihrem Arbeitsbereich verwendet wird, fügen Sie einen neuen privaten Endpunkt für diesen Speicher hinzu. Der private Endpunkt sollte im Client-VNet vorhanden sein und die Integration der privaten DNS-Zone aktiviert sein.
  4. Fügen Sie Ihrem Arbeitsbereich einen neuen privaten Endpunkt hinzu. Dieser private Endpunkt sollte im Client-VNet vorhanden sein und die Integration der privaten DNS-Zone aktiviert sein.
  5. Verwenden Sie die Schritte im Artikel Verwenden von Studio in einem virtuellen Netzwerk, um Studio den Zugriff auf die Speicherkonto(en) zu ermöglichen.

Das folgende Diagramm veranschaulicht diese Konfiguration: Das Workload-VNet enthält Computes, die vom Arbeitsbereich für das Training und die Bereitstellung erstellt werden. Das Client-VNet enthält Clients oder ExpressRoute-/VPN-Clientverbindungen. Beide VNets enthalten private Endpunkte für den Arbeitsbereich, Azure Storage Konto, Azure Key Vault und Azure Container Registry.

Diagramm des isolierten Client-VNet

Szenario: Isolierte Azure Kubernetes Service

Wenn Sie einen isolierten Azure Kubernetes Service erstellen möchten, der vom Arbeitsbereich verwendet wird, führen Sie die folgenden Schritte aus:

Hinweis

Bei diesen Schritten wird davon ausgegangen, dass Sie über einen vorhandenen Arbeitsbereich, Azure Storage, Azure Key Vault und Azure Container Registry verfügen. Jeder dieser Dienste verfügt über einen privaten Endpunkt in einem vorhandenen VNet.

  1. Erstellen Sie eine Azure Kubernetes Service-Instanz (AKS). Während der Erstellung erstellt AKS ein VNet, das den AKS-Cluster enthält.
  2. Fügen Sie einen neuen privaten Endpunkt für das Azure Storage-Konto, Azure Key Vault und die Azure Container Registry Ihres Arbeitsbereichs hinzu. Diese privaten Endpunkte sollten im Client-VNet vorhanden sein.
  3. Wenn Sie über einen anderen Speicher verfügen, der von Ihrem Arbeitsbereich verwendet wird, fügen Sie einen neuen privaten Endpunkt für diesen Speicher hinzu. Der private Endpunkt sollte im Client-VNet vorhanden sein und die Integration der privaten DNS-Zone aktiviert sein.
  4. Fügen Sie Ihrem Arbeitsbereich einen neuen privaten Endpunkt hinzu. Dieser private Endpunkt sollte im Client-VNet vorhanden sein und die Integration der privaten DNS-Zone aktiviert sein.
  5. Fügen Sie den AKS-Cluster zum Azure Machine Learning-Arbeitsbereich hinzu. Weitere Informationen finden Sie unter Erstellen und Anfügen eines Azure Kubernetes Service-Clusters.

Diagramm des isolierten AKS-VNet

Nächste Schritte