Freigeben über


Konfigurieren eines privaten Endpunkts für einen Azure Machine Learning-Arbeitsbereich mit SDK und CLI v1

GILT FÜR:Azure CLI ML-Erweiterungv1Python SDK azureml v1

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

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, zur Problemumgehung 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 Erstellen oder 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.

Das Azure Machine Learning Python SDK bietet die Klasse PrivateEndpointConfig, die mit Workspace.create() verwendet werden kann, um einen Arbeitsbereich mit einem privaten Endpunkt zu erstellen. Diese Klasse erfordert ein vorhandenes virtuelles Netzwerk.

GILT FÜR: Python SDK azureml v1

from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig

pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.create(name='myworkspace',
    subscription_id='<my-subscription-id>',
    resource_group='myresourcegroup',
    location='eastus2',
    private_endpoint_config=pe,
    private_endpoint_auto_approval=True,
    show_output=True)

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: Python SDK azureml v1

from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig

pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.from_config()
ws.add_private_endpoint(private_endpoint_config=pe, private_endpoint_auto_approval=True, show_output=True)

Weitere Informationen zu den in diesem Beispiel verwendeten Klassen und Methoden finden Sie unter PrivateEndpointConfig und Workspace.add_private_endpoint.

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:

Verwenden Sie Workspace.delete_private_endpoint_connection, um einen privaten Endpunkt zu entfernen. Im folgenden Beispiel wird veranschaulicht, wie ein privater Endpunkt entfernt wird:

GILT FÜR: Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
# get the connection name
_, _, connection_name = ws.get_details()['privateEndpointConnections'][0]['id'].rpartition('/')
ws.delete_private_endpoint_connection(private_endpoint_connection_name=connection_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 und der CLI v2
  • public_network_access – verwendet vom Python SDK und der CLI 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.

Verwenden Sie Workspace.update und legen Sie allow_public_access_when_behind_vnet=True fest, um den öffentlichen Zugriff zu aktivieren.

GILT FÜR: Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
ws.update(allow_public_access_when_behind_vnet=True)

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-VNets

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-VNets

Nächste Schritte