Netzwerkisolation mit verwaltete Onlineendpunkten
GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)
Wenn Sie ein Machine Learning-Modell auf einem verwalteten Onlineendpunkt bereitstellen, können Sie die Kommunikation mit dem Onlineendpunkt durch die Verwendung privater Endpunkte absichern. In diesem Artikel erfahren Sie, wie ein privater Endpunkt verwendet werden kann, um die eingehende Kommunikation mit einem verwalteten Onlineendpunkt zu schützen. Außerdem erfahren Sie, wie ein verwaltetes virtuelles Netzwerk im Arbeitsbereich verwendet werden kann, um eine sichere Kommunikation zwischen Bereitstellungen und Ressourcen zu ermöglichen.
Sie können eingehende Bewertungsanforderungen von Clients an einen Onlineendpunkt sichern und die ausgehende Kommunikation zwischen einer Bereitstellung, den verwendeten Azure-Ressourcen und privaten Ressourcen schützen. Die Sicherheit für ein- und ausgehende Kommunikation wird separat konfiguriert. Weitere Informationen zu Endpunkten und Bereitstellungen finden Sie unter Was sind Endpunkte und Bereitstellungen?
Das folgende Architekturdiagramm zeigt, wie der Kommunikationsdatenverkehr über private Endpunkte zum verwalteten Onlineendpunkt fließt. Eingehende Bewertungsanforderungen vom virtuellen Netzwerk eines Clients fließen über den privaten Endpunkt des Arbeitsbereichs an den verwalteten Onlineendpunkt. Ausgehende Kommunikation zwischen Bereitstellungen und Diensten erfolgt über private Endpunkte vom verwalteten virtuellen Netzwerk des Arbeitsbereichs an diese Dienstinstanzen.
Hinweis
- Dieser Artikel konzentriert sich auf die Netzwerkisolation mithilfe des verwalteten virtuellen Netzwerks des Arbeitsbereichs. Eine Beschreibung der Legacy-Methode für die Netzwerkisolation, in der Azure Machine Learning ein verwaltetes virtuelles Netzwerk für jede Bereitstellung in einem Endpunkt erstellt, finden Sie im Anhang.
- Jede Bereitstellung ist von anderen Bereitstellungen isoliert, unabhängig von der in diesem Artikel erläuterten ein- und ausgehenden Kommunikation. Mit anderen Worten: Selbst bei Endpunkten/Bereitstellungen, die eingehende/ausgehende Kommunikation über das Internet zulassen, gibt es eine Netzwerkisolierung zwischen den Bereitstellungen, die die direkte Verbindung mit anderen Bereitstellungen blockiert.
Einschränkungen
Das Flag
v1_legacy_mode
muss für Ihren Azure Machine Learning-Arbeitsbereich deaktiviert (false) sein. Wenn dieses Flag aktiviert ist, können Sie keinen verwalteten Onlineendpunkt erstellen. Weitere Informationen finden Sie unter Netzwerkisolation mit v2-API.Wenn Ihr Azure Machine Learning-Arbeitsbereich einen privaten Endpunkt umfasst, der vor dem 24. Mai 2022 erstellt wurde, müssen Sie den privaten Endpunkt des Arbeitsbereichs neu erstellen, bevor Sie Ihre Onlineendpunkte für die Verwendung eines privaten Endpunkts konfigurieren. Weitere Informationen zum Erstellen eines privaten Endpunkts für Ihren Arbeitsbereich finden Sie unter Konfigurieren eines privaten Endpunkts für einen Azure Machine Learning-Arbeitsbereich.
Tipp
Um zu bestätigen, wann ein Arbeitsbereich erstellt wurde, können Sie die Eigenschaften des Arbeitsbereichs überprüfen.
Wechseln Sie im Studio zum Abschnitt
Directory + Subscription + Workspace
(oben rechts im Studio), und wählen SieView all properties in Azure Portal
aus. Wählen Sie zunächst rechts oben auf der Seite „Übersicht“ die JSON-Ansicht und dann die neueste API-Version aus. Auf dieser Seite können Sie den Wert vonproperties.creationTime
überprüfen.Alternativ können Sie
az ml workspace show
mit der CLI,my_ml_client.workspace.get("my-workspace-name")
mit dem SDK odercurl
in einem Arbeitsbereich mit der REST-API verwenden.Wenn Sie die Netzwerkisolation mit Onlineendpunkten verwenden, können Sie mit dem Arbeitsbereich verbundene Ressourcen (Azure Container Registry (ACR), Speicherkonto, Key Vault und Application Insights) aus einer anderen Ressourcengruppe als der Ihres Arbeitsbereichs verwenden. Diese Ressourcen müssen jedoch demselben Abonnement und Mandanten wie Ihr Arbeitsbereich angehören.
Hinweis
Die in diesem Artikel beschriebene Netzwerkisolation gilt für Vorgänge auf Datenebene, d. h. Vorgänge, die sich aus Bewertungsanforderungen (oder Modellbereitstellung) ergeben. Operationen auf Steuerungsebene (wie Anforderungen zum Erstellen, Aktualisieren, Löschen oder Abrufen von Authentifizierungsschlüsseln) werden über das öffentliche Netzwerk an den Azure Resource Manager gesendet.
Sichere eingehende Bewertungsanforderungen
Die sichere eingehende Kommunikation zwischen einem Client und einem verwalteten Onlineendpunkt ist mithilfe eines privaten Endpunkts für den Azure Machine Learning-Arbeitsbereich möglich. Dieser private Endpunkt im virtuellen Netzwerk des Clients kommuniziert mit dem Arbeitsbereich des verwalteten Onlineendpunkts und ist das Mittel, mit dem der verwaltete Onlineendpunkt eingehende Bewertungsanforderungen vom Client empfangen kann.
Um Bewertungsanforderungen an den Onlineendpunkt zu schützen, sodass ein Client nur über den privaten Endpunkt des Arbeitsbereichs darauf zugreifen kann, legen Sie das public_network_access
-Flag für den Endpunkt auf disabled
fest. Nachdem Sie den Endpunkt erstellt haben, können Sie diese Einstellung aktualisieren, um bei Bedarf den Zugriff auf öffentliche Netzwerke zu aktivieren.
Legen Sie das public_network_access
-Flag des Endpunkts auf disabled
fest:
az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled
Wenn public_network_access
auf disabled
festgelegt ist, werden eingehende Bewertungsanforderungen über den privaten Endpunkt des Arbeitsbereichs empfangen. Der Endpunkt ist von öffentlichen Netzwerken aus nicht erreichbar.
Wenn Sie alternativ public_network_access
auf enabled
festlegen, kann der Endpunkt eingehende Bewertungsanforderungen aus dem Internet empfangen.
Sichere eingehende Bewertung mit öffentlichem Netzwerkzugriff von bestimmten IP-Adressen
Der Azure Machine Learning-Arbeitsbereich unterstützt das Aktivieren des öffentlichen Netzwerkzugriffs von bestimmten IP-Adressen oder IP-Adressbereichen aus. Dieses Feature enthält einige Interaktionen mit dem Flag des verwalteten Onlineendpunkts public_network_access
, die Sie bei der Verwendung mit verwalteten Onlineendpunkten beachten sollten. Weitere Informationen finden Sie unter Szenario: Verwaltete Onlineendpunkte mit Zugriff von bestimmten IP-Adressen.
Schützen des ausgehenden Zugriffs mit einem vom Arbeitsbereich verwalteten virtuellen Netzwerk
Um die ausgehende Kommunikation zwischen einer Bereitstellung mit Diensten zu schützen, müssen Sie die Isolation verwalteter virtueller Netzwerke für Ihren Azure Machine Learning-Arbeitsbereich aktivieren, damit Azure Machine Learning ein verwaltetes virtuelles Netzwerk für den Arbeitsbereich erstellen kann. Alle verwalteten Onlineendpunkte im Arbeitsbereich (und verwaltete Computeressourcen für den Arbeitsbereich, z. B. Computecluster und Computeinstanzen) verwenden automatisch dieses verwaltete virtuelle Netzwerk des Arbeitsbereichs, und die Bereitstellungen unter den Endpunkten nutzen die privaten Endpunkte des verwalteten virtuellen Netzwerks für die Kommunikation mit den Ressourcen des Arbeitsbereichs.
Wenn Sie Ihren Arbeitsbereich mit einem verwalteten virtuellen Netzwerk sichern, gilt das egress_public_access
-Flag für verwaltete Onlinebereitstellungen nicht mehr. Vermeiden Sie das Festlegen dieses Flags beim Erstellen der verwalteten Onlinebereitstellung.
Für die ausgehende Kommunikation mit einem verwalteten virtuellen Netzwerk des Arbeitsbereichs wird Azure Machine Learning:
- Private Endpunkte für das verwaltete virtuelle Netzwerk erstellen, die für die Kommunikation mit Azure-Ressourcen verwendet werden, die vom Arbeitsbereich verwendet werden, z. B. Azure Storage, Azure Key Vault und Azure Container Registry.
- Bereitstellungen den Zugriff auf Microsoft Container Registry (MCR) erlauben, was nützlich sein kann, wenn Sie zusammengestellte Umgebungen oder MLflow-Bereitstellung ohne Code verwenden möchten.
- Benutzern das Konfigurieren von Ausgangsregeln für private Endpunkte für private Ressourcen und das Konfigurieren von Ausgangsregeln (Diensttag oder FQDN) für öffentliche Ressourcen ermöglichen. Weitere Informationen zum Verwalten von Ausgangsregeln finden Sie unter Verwalten von Ausgangsregeln.
Darüber hinaus können Sie zwei Isolationsmodi für ausgehenden Datenverkehr aus dem verwalteten virtuellen Netzwerk des Arbeitsbereichs konfigurieren, nämlich:
- Ausgehenden Internetzugriff zulassen, um den gesamten ausgehenden Internetdatenverkehr aus dem verwalteten virtuellen Netzwerk zuzulassen
- Nur genehmigten ausgehenden Datenverkehr zulassen, um ausgehenden Datenverkehr mithilfe privater Endpunkte, FQDN-Ausgangsregeln und Ausgehender Regeln für Diensttags zu steuern.
Angenommen, das verwaltete virtuelle Netzwerk Ihres Arbeitsbereichs enthält zwei Bereitstellungen unter einem verwalteten Onlineendpunkt. Beide Bereitstellungen können die privaten Endpunkte des Arbeitsbereichs für die Kommunikation mit Folgendem verwenden:
- Dem Azure Machine Learning-Arbeitsbereich
- Der Azure Storage-Blob, der dem Arbeitsbereich zugeordnet ist
- Der Azure Container Registry-Instanz für den Arbeitsbereich
- Azure Key Vault
- (Optional) zusätzlichen privaten Ressourcen, die private Endpunkte unterstützen.
Weitere Informationen zu Konfigurationen für das verwaltete virtuelle Netzwerk im Arbeitsbereich finden Sie unter Architektur des verwalteten virtuellen Netzwerks.
Szenarien für die Konfiguration der Netzwerkisolation
Ihr Azure Machine Learning-Arbeitsbereich und verwalteter Onlineendpunkt verfügen jeweils über ein public_network_access
Flag, mit dem Sie ihre eingehende Kommunikation konfigurieren können. Andererseits hängt die ausgehende Kommunikation von einer Bereitstellung vom verwalteten virtuellen Netzwerk des Arbeitsbereichs ab.
Kommunikation mit dem verwalteten Online-Endpunkt
Angenommen, ein verwalteter Onlineendpunkt verfügt über eine Bereitstellung, die ein KI-Modell verwendet, und Sie möchten eine App verwenden, um Bewertungsanforderungen an den Endpunkt zu senden. Sie können wie folgt entscheiden, welche Netzwerkisolationskonfiguration für den verwalteten Onlineendpunkt verwendet werden soll:
Für eingehende Kommunikation:
Wenn die App im Internet öffentlich verfügbar ist, müssen Sie public_network_access
für den Endpunkt aktivieren, damit er eingehende Bewertungsanforderungen von der App empfangen kann.
Angenommen, die App ist privat, z. B. eine interne App in Ihrer Organisation. In diesem Szenario möchten Sie, dass das KI-Modell nur innerhalb Ihrer Organisation verwendet wird, anstatt es im Internet verfügbar zu machen. Daher müssen Sie den public_network_access
des Endpunkts deaktivieren, damit er eingehende Bewertungsanforderungen nur über den privaten Endpunkt des Arbeitsbereichs empfangen kann.
Für ausgehende Kommunikation (Bereitstellung):
Angenommen, Ihre Bereitstellung muss auf private Azure-Ressourcen (z. B. Azure Storage-Blob, ACR und Azure Key Vault) zugreifen oder es ist nicht akzeptabel, dass die Bereitstellung auf das Internet zugreift. In diesem Fall müssen Sie das verwaltete virtuelle Netzwerk des Arbeitsbereichs mit dem Isolationsmodus Nur genehmigte ausgehende Verbindungen zulassenaktivieren. Dieser Isolationsmodus ermöglicht nur die ausgehende Kommunikation von der Bereitstellung zu genehmigten Zielen und schützt so vor Datenexfiltration. Darüber hinaus können Sie Ausgangsregeln für den Arbeitsbereich hinzufügen, um den Zugriff auf mehr private oder öffentliche Ressourcen zu ermöglichen. Weitere Informationen dazu finden Sie unter Konfigurieren eines verwalteten virtuellen Netzwerks, sodass nur genehmigter ausgehender Datenverkehr zugelassen wird.
Wenn Ihre Bereitstellung jedoch auf das Internet zugreifen soll, können Sie das verwaltete virtuelle Netzwerk des Arbeitsbereichs mit dem Isolationsmodus ausgehendes Internet zulassen verwenden. Neben dem Zugriff auf das Internet können Sie auch die privaten Endpunkte des verwalteten virtuellen Netzwerks verwenden, um auf private Azure-Ressourcen zuzugreifen, die Sie benötigen.
Wenn Ihre Bereitstellung nicht auf private Azure-Ressourcen zugreifen muss und Sie den Zugriff auf das Internet nicht steuern müssen, ist es nicht erforderlich, ein verwaltetes virtuelles Netzwerk vom Arbeitsbereich zu verwenden.
Eingehende Kommunikation mit dem Azure Machine Learning-Arbeitsbereich
Sie können den public_network_access
Flag Ihres Azure Machine Learning-Arbeitsbereichs verwenden, um den eingehenden Arbeitsbereichzugriff zu aktivieren oder zu deaktivieren.
Wenn Sie in der Regel eingehende Kommunikation mit Ihrem Arbeitsbereich sichern (indem Sie den public_network_access
Flag des Arbeitsbereichs deaktivieren), möchten Sie auch eingehende Kommunikation mit Ihrem verwalteten Onlineendpunkt sichern.
Das folgende Diagramm zeigt einen typischen Workflow zum Sichern eingehender Kommunikation mit Ihrem Azure Machine Learning-Arbeitsbereich und Ihrem verwalteten Onlineendpunkt. Um optimale Sicherheit zu gewährleisten, sollten Sie die public_network_access
Flags für den Arbeitsbereich und den verwalteten Onlineendpunkt deaktivieren, um sicherzustellen, dass beide nicht über das öffentliche Internet darauf zugreifen können. Wenn der Arbeitsbereich nicht über einen privaten Endpunkt verfügt, können Sie einen erstellen, um sicherzustellen, dass die richtige DNS-Auflösung enthalten ist. Anschließend können Sie mithilfe des privaten Endpunkts des Arbeitsbereichs auf den verwalteten Onlineendpunkt zugreifen.
Hinweis
Verwaltete Onlineendpunkte nutzen den privaten Endpunkt des Arbeitsbereichs gemeinsam. Wenn Sie DNS-Einträge manuell zur privaten DNS-Zone privatelink.api.azureml.ms
hinzufügen, sollte ein A-Eintrag mit dem Platzhalter *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms
hinzugefügt werden, um alle Endpunkte des Arbeitsbereichs an den privaten Endpunkt weiterzuleiten.
Weitere Informationen zur DNS-Auflösung für Ihren Arbeitsbereich und privaten Endpunkt finden Sie unter Verwenden Ihres Arbeitsbereichs mit einem benutzerdefinierten DNS-Server.
Anhang
Schützen des ausgehenden Zugriffs mit der Legacy-Netzwerkisolationsmethode
Bei verwalteten Onlineendpunkten können Sie auch die ausgehende Kommunikation zwischen Bereitstellungen und Ressourcen schützen, indem Sie ein verwaltetes virtuelles Azure Machine Learning-Netzwerk für jede Bereitstellung im Endpunkt verwenden. Die sichere ausgehende Kommunikation wird auch mithilfe privater Endpunkte für diese Dienstinstanzen verarbeitet.
Hinweis
Es wird dringend empfohlen, anstelle dieser Legacy-Methode den unter Schützen des ausgehenden Zugriffs mit einem vom Arbeitsbereich verwalteten virtuellen Netzwerk beschriebenen Ansatz zu verwenden.
Um die Kommunikation zwischen einer Bereitstellung und externen Ressourcen, einschließlich der von ihr verwendeten Azure-Ressourcen, einzuschränken, sollten Sie Folgendes sicherstellen:
Das Flag
egress_public_network_access
der Bereitstellung istdisabled
. Dieses Flag stellt sicher, dass der Download von Modell, Code und Images, die Sie für die Bereitstellung benötigen, über einen privaten Endpunkt abgesichert ist. Nachdem Sie die Bereitstellung erstellt haben, können Sie das Flagegress_public_network_access
nicht mehr aktualisieren (aktivieren oder deaktivieren). Der Versuch, das Flag während der Aktualisierung der Bereitstellung zu ändern, führt zu einer Fehlermeldung.Der Arbeitsbereich verfügt über eine private Verknüpfung, die den Zugriff auf Azure-Ressourcen über einen privaten Endpunkt ermöglicht.
Der Arbeitsbereich verfügt über ein
public_network_access
-Flag, das aktiviert oder deaktiviert werden kann. Wenn Sie eine verwaltete Onlinebereitstellung verwenden möchten, die öffentliche ausgehende Daten verwendet, müssen Sie den Arbeitsbereich auch so konfigurieren, dass er öffentlichen Zugriff zulässt. Der Grund dafür ist, dass die ausgehende Kommunikation von der Onlinebereitstellung an die Arbeitsbereichs-API geht. Wenn die Bereitstellung so konfiguriert ist, dass er öffentlichen ausgehenden Datenverkehr verwendet, muss der Arbeitsbereich diese öffentliche Kommunikation akzeptieren können (öffentlichen Zugriff gestatten).
Wenn Sie über mehrere Bereitstellungen verfügen und das egress_public_network_access
für jede Bereitstellung in einem verwalteten Onlineendpunkt auf disabled
konfigurieren, verfügt jede Bereitstellung über ein eigenes unabhängiges verwaltetes virtuelles Azure Machine Learning-Netzwerk. Für jedes virtuelle Netzwerk erstellt Azure Machine Learning drei private Endpunkte für die Kommunikation mit den folgenden Diensten:
- Dem Azure Machine Learning-Arbeitsbereich
- Der Azure Storage-Blob, der dem Arbeitsbereich zugeordnet ist
- Der Azure Container Registry-Instanz für den Arbeitsbereich
Wenn Sie beispielsweise das Flag egress_public_network_access
für zwei Bereitstellungen eines verwalteten Onlineendpunkts auf disabled
festlegen, werden insgesamt sechs private Endpunkte erstellt. Jede Bereitstellung verwendet dann über drei private Endpunkte, die für die Kommunikation mit Arbeitsbereich, Blob und Containerregistrierung dienen.
Wichtig
Azure Machine Learning unterstützt kein Peering zwischen dem verwalteten virtuellen Netzwerk einer Bereitstellung und dem virtuellen Netzwerk Ihres Clients. Für die sichere Kommunikation mit den Ressourcen, die für die Bereitstellung benötigt werden, werden private Endpunkte verwendet.
Das folgende Diagramm zeigt eingehende Bewertungsanforderungen vom virtuellen Netzwerk eines Clients, die über den privaten Endpunkt des Arbeitsbereichs an den verwalteten Onlineendpunkt fließen. Das Diagramm zeigt auch zwei Onlinebereitstellungen, jeweils in einem eigenen verwalteten virtuellen Azure Machine Learning-Netzwerk. Das virtuelle Netzwerk jeder Bereitstellung verfügt über drei private Endpunkte für die ausgehende Kommunikation mit dem Azure Machine Learning-Arbeitsbereich, das dem Arbeitsbereich zugeordnete Azure Storage-Blob und die Azure Container Registry für den Arbeitsbereich.
So deaktivieren Sie den egress_public_network_access
und erstellen die privaten Endpunkte:
az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled
Um die Erstellung der privaten Endpunkte zu bestätigen, überprüfen Sie zunächst das Speicherkonto und die Containerregistrierung, die dem Arbeitsbereich zugeordnet sind (siehe Herunterladen einer Konfigurationsdatei), suchen Sie die einzelnen Ressourcen im Azure-Portal, und aktivieren Sie die Registerkarte „Private endpoint connections
“ im Networking
-Menü.
Wichtig
- Wie zuvor erwähnt, geht die ausgehende Kommunikation von der Bereitstellung des verwalteten Onlineendpunkts an die Arbeitsbereichs-API. Wenn der Endpunkt für die Verwendung des öffentlichen ausgehenden Datenverkehrs konfiguriert ist (d. h. das
public_network_access
-Flag für den Endpunkt ist aufenabled
festgelegt), muss der Arbeitsbereich in der Lage sein, diese öffentliche Kommunikation zu akzeptieren (public_network_access
-Flag für den Arbeitsbereich ist aufenabled
festgelegt). - Wenn Onlinebereitstellungen mit dem
egress_public_network_access
-Flag, das aufdisabled
festgelegt ist, erstellt werden, haben sie nur Zugriff auf die oben genannten geschützten Ressourcen (Arbeitsbereich, Blob und Containerregistrierung). Wenn die Bereitstellung beispielsweise Modellressourcen verwendet, die in andere Speicherkonten hochgeladen wurden, schlägt der Modelldownload fehl. Stellen Sie sicher, dass sich modellbasierte Ressourcen in dem Speicherkonto befinden, das dem Arbeitsbereich zugeordnet ist. - Wenn
egress_public_network_access
aufdisabled
festgelegt ist, kann die Bereitstellung nur auf die arbeitsbereichsbezogenen Ressourcen zugreifen, die im virtuellen Netzwerk geschützt sind. Wennegress_public_network_access
hingegen aufenabled
festgelegt ist, kann die Bereitstellung nur auf Ressourcen mit öffentlichem Zugriff zugreifen, nicht aber auf die im virtuellen Netzwerk geschützten Ressourcen.
In der folgenden Tabelle finden Sie die unterstützten Konfigurationen zur Einrichtung der ein- und ausgehenden Kommunikation für einen Onlineendpunkt:
Konfiguration | Eingehend (Eigenschaft des Endpunkts) |
Ausgehend (Eigenschaft der Bereitstellung) |
Unterstützt? |
---|---|---|---|
sichere eingehende Kommunikation, sichere ausgehende Kommunikation | public_network_access ist deaktiviert |
egress_public_network_access ist deaktiviert |
Yes |
sichere eingehende Kommunikation, öffentliche ausgehende Kommunikation | public_network_access ist deaktiviert |
egress_public_network_access ist aktiviertDer Arbeitsbereich muss auch den öffentlichen Zugriff zulassen, da die ausgehende Bereitstellung auf die Arbeitsbereichs-API erfolgt. |
Yes |
öffentliche eingehende Kommunikation, sichere ausgehende Kommunikation | public_network_access ist aktiviert |
egress_public_network_access ist deaktiviert |
Yes |
öffentliche eingehende Kommunikation, öffentliche ausgehende Kommunikation | public_network_access ist aktiviert |
egress_public_network_access ist aktiviertDer Arbeitsbereich muss auch den öffentlichen Zugriff zulassen, da die ausgehende Bereitstellung auf die Arbeitsbereichs-API erfolgt. |
Ja |