Verhinderung der Azure Machine Learning-Datenexfiltration

Azure Machine Learning weist mehrere ein- und ausgehende Abhängigkeiten auf. Einige dieser Abhängigkeiten können ein Risiko für die Datenexfiltration durch böswillige Agents innerhalb Ihrer Organisation darstellen. In diesem Dokument wird erläutert, wie Sie das Risiko der Datenexfiltration minimieren können, indem Sie die ein- und ausgehenden Anforderungen einschränken.

  • Eingehender Datenverkehr: Wenn Ihre Compute-Instanz oder Ihr Cluster eine öffentliche IP-Adresse verwendet, verfügen Sie über das Diensttag für eingehenden Datenverkehr an azuremachinelearning (Port 44224). Sie können diesen eingehenden Datenverkehr mithilfe einer Netzwerksicherheitsgruppe (NSG) und Diensttags steuern. Es ist schwierig, die IP-Adressen der Azure-Dienste zu verschleiern, sodass das Risiko der Datenexfiltration gering ist. Sie können die Compute-Instanz auch so konfigurieren, dass sie keine öffentliche IP-Adresse verwendet, was eingehende Anforderungen beseitigt.

  • Ausgehend: Wenn böswillige Agents keinen Schreibzugriff auf ausgehende Zielressourcen haben, können sie diese ausgehende Anforderung nicht für die Datenexfiltration verwenden. Microsoft Entra ID, Azure Resource Manager, Azure Machine Learning und Microsoft Container Registry gehören zu dieser Kategorie. Auf der anderen Seite können Storage und AzureFrontDoor.frontend für die Datenexfiltration verwendet werden.

    • Ausgehender Speicher: Diese Anforderung stammt von Compute-Instanzen und Computeclustern. Ein böswilliger Agent kann diese Ausgangsregel verwenden, um Daten zu exfiltrieren, indem er Daten in seinem eigenen Speicherkonto bereitstellt und speichert. Sie können das Risiko der Datenexfiltration beseitigen, indem Sie eine Azure-Dienstendpunktrichtlinie und die vereinfachte Knotenkommunikationsarchitektur von Azure Batch verwenden.

    • AzureFrontDoor.frontend (ausgehend): Azure Front Door wird von der Azure Machine Learning Studio-Benutzeroberfläche und AutoML verwendet. Anstatt ausgehenden Datenverkehr an das Diensttag (AzureFrontDoor.frontend) zuzulassen, wechseln Sie zu den folgenden vollqualifizierten Domänennamen (FQDN). Durch den Wechsel zu diesen FQDNs wird unnötiger ausgehender Datenverkehr vermieden, der im Diensttag enthalten ist, und nur das zugelassen, was für Azure Machine Learning Studio UI und AutoML benötigt wird.

      • ml.azure.com
      • automlresources-prod.azureedge.net

Tipp

Die Informationen in diesem Artikel beziehen sich in erster Linie auf die Verwendung eines virtuellen Azure-Netzwerks. Azure Machine Learning kann auch verwaltete virtuelle Netzwerke verwenden. Mit einem verwalteten virtuellen Netzwerk übernimmt Azure Machine Learning die Aufgabe der Netzwerkisolation für Ihren Arbeitsbereich und ihre verwalteten Computeressourcen.

Um Probleme mit der Datenexfiltration zu beheben, können Sie in verwalteten virtuellen Netzwerken den ausgehenden Datenverkehr nur auf genehmigten ausgehenden Datenverkehr beschränken. Weitere Informationen finden Sie unter Verwaltete Netzwerkisolation auf Arbeitsbereichsebene (Vorschau).

Voraussetzungen

  • Ein Azure-Abonnement
  • Eine Azure Virtual Network-Instanz (VNet)
  • Einen Azure Machine Learning-Arbeitsbereich mit einem privaten Endpunkt, der eine Verbindung mit dem VNet herstellt.
    • Das vom Arbeitsbereich verwendete Speicherkonto muss sich ebenfalls über einen privaten Endpunkt mit dem VNet verbinden.
  • Sie müssen die Compute-Instanz neu erstellen oder den Computecluster auf null Knoten herunterskalieren.
    • Nicht erforderlich, wenn Sie über die eingebundene Vorschau verfügen.
    • Nicht erforderlich, wenn Sie über eine neue Compute-Instance und einen Computecluster verfügen, die nach Dezember 2022 erstellt wurden.

Warum muss ich die Dienstendpunktrichtlinie verwenden?

Richtlinien für Dienstendpunkte ermöglichen es Ihnen, ausgehenden virtuellen Netzwerkdatenverkehr zu Azure Storage-Konten über den Dienstendpunkt zu filtern. Außerdem lassen sie die Datenexfiltration nur zu bestimmten Azure Storage-Konten zu. Die Azure Machine Learning-Compute-Instanz und der Computecluster erfordern für die Bereitstellung Zugriff auf von Microsoft verwaltete Speicherkonten. Der Azure Machine Learning-Alias in Dienstendpunktrichtlinien umfasst von Microsoft verwaltete Speicherkonten. Wir verwenden Dienstendpunktrichtlinien mit dem Azure Machine Learning-Alias, um die Datenexfiltration zu verhindern oder die Zielspeicherkonten zu kontrollieren. Weitere Informationen finden Sie in der Dokumentation zur Dienstendpunktrichtlinie.

1. Erstellen der Dienstendpunktrichtlinie

  1. Fügen Sie über das Azure-Portal eine neue Dienstendpunktrichtlinie hinzu. Geben Sie auf der Registerkarte Grundlagen die erforderlichen Informationen ein, und wählen Sie dann Weiter aus.

  2. Führen Sie auf der Registerkarte Richtliniendefinitionen die folgenden Aktionen aus:

    1. Wählen Sie + Ressource hinzufügen aus, und geben Sie dann die folgenden Informationen an:

      • Dienst: Microsoft.Storage
      • Bereich: Wählen Sie als Bereich Einzelnes Konto aus, um den Netzwerkdatenverkehr auf ein einzelnes Speicherkonto zu begrenzen.
      • Abonnement: Das Azure-Abonnement, das das Speicherkonto enthält.
      • Ressourcengruppe: Die Ressourcengruppe, die das Speicherkonto enthält.
      • Ressource: Das Standardspeicherkonto Ihres Arbeitsbereichs

      Wählen Sie Hinzufügen aus, um die Ressourceninformationen hinzuzufügen.

      A screenshot showing how to create a service endpoint policy.

    2. Wählen Sie + Alias hinzufügen und dann /services/Azure/MachineLearning als Wert für den Serveralias aus. Wählen Sie Hinzufügen aus, um den Alias hinzuzufügen.

      Hinweis

      Azure CLI und Azure PowerShell bieten keine Unterstützung für das Hinzufügen eines Alias zur Richtlinie.

  3. Klicken Sie auf Review + Create (Überprüfen und erstellen) und dann auf Create (Erstellen).

Wichtig

Wenn Ihre Compute-Instanz und Ihr Computecluster Zugriff auf zusätzliche Speicherkonten benötigen, sollte Ihre Dienstendpunktrichtlinie die zusätzlichen Speicherkonten im Abschnitt „Ressourcen“ enthalten. Beachten Sie, dass dies nicht erforderlich ist, wenn Sie private Endpunkte von Microsoft Storage verwenden. Die Dienstendpunktrichtlinie und der private Endpunkt sind unabhängig.

2. Lassen Sie ein- und ausgehenden Netzwerkdatenverkehr zu

Eingehend

Wichtig

Die folgenden Informationen stellen eine Änderung des Leitfadens im Artikel Schützen der Trainingsumgebung dar.

Wichtig

Die folgenden Informationen stellen eine Änderung des Leitfadens im Artikel Schützen der Trainingsumgebung dar.

Wenn Sie eine Azure Machine Learning-Compute-Instanzmit einer öffentlichen IP-Adresse verwenden, lassen Sie eingehenden Datenverkehr von der Azure Batch Verwaltung zu (Diensttag BatchNodeManagement.<region>). Bei Compute-Instanzen ohne öffentliche IP-Adresse ist diese eingehende Kommunikation nicht erforderlich.

Ausgehend

Wichtig

Die folgenden Informationen ergänzen die Hinweise in den Artikeln Sichern der Trainingsumgebung mit virtuellen Netzwerken und Konfigurieren von ein- und ausgehendem Netzwerkdatenverkehr.

Wichtig

Die folgenden Informationen ergänzen die Hinweise in den Artikeln Sichern der Trainingsumgebung mit virtuellen Netzwerken und Konfigurieren von ein- und ausgehendem Netzwerkdatenverkehr.

Wählen Sie die Konfiguration aus, die Sie verwenden:

Erlauben Sie ausgehenden Datenverkehr für die folgenden Dienst-Tags. Ersetzen Sie <region> durch die Azure-Region, die Ihren Computecluster oder Ihre Compute-Instanz enthält:

Diensttag Protocol Port
BatchNodeManagement.<region> ANY 443
AzureMachineLearning TCP 443
Storage.<region> TCP 443

Hinweis

Eine Dienstendpunktrichtlinie wird in einem späteren Schritt angewendet, um ausgehenden Datenverkehr einzuschränken.

3. Aktivieren Sie einen Speicherendpunkt für das Subnetz

Führen Sie die folgenden Schritte aus, um einen Speicherendpunkt für das Subnetz zu aktivieren, das Ihre Azure Machine Learning-Computecluster und -Compute-Instanzen enthält:

  1. Wählen Sie im Azure-Portal das Azure Virtual Network für Ihren Azure Machine Learning-Arbeitsbereich aus.
  2. Wählen Sie links auf der Seite Subnetze und dann das Subnetz aus, das Ihren Computecluster und die Compute-Instanz enthält.
  3. Erweitern Sie in dem daraufhin angezeigten Formular die Dropdownliste Dienste, und aktivieren Sie dann Microsoft.Storage. Wählen Sie zum Speichern der Änderungen die Option Speichern aus.
  4. Wenden Sie die Dienstendpunktrichtlinie auf Ihr Arbeitsbereichssubnetz an.

A screenshot of the Azure portal showing how to enable storage endpoint for the subnet.

4. Zusammengestellte Umgebungen

Wenn Sie von Azure Machine Learning kuratierte Umgebungen verwenden, stellen Sie sicher, dass Sie die neueste Version der Umgebung verwenden. Die Containerregistrierung für die Umgebung muss ebenfalls mcr.microsoft.com sein. Verwenden Sie die folgenden Schritte, um die Containerregistrierung zu überprüfen:

  1. Wählen Sie in Azure Machine Learning Studio Ihren Arbeitsbereich und dann Umgebungen aus.

  2. Stellen Sie sicher, dass die Azure-Containerregistrierung mit dem Wert mcr.microsoft.com beginnt.

    Wichtig

    Wenn die Containerregistrierung viennaglobal.azurecr.io ist, können Sie die zusammengestellte Umgebung nicht mit der Datenexfiltration verwenden. Versuchen Sie, ein Upgrade auf die neueste Version der zusammengestellten Umgebung durchzuführen.

  3. Wenn Sie mcr.microsoft.com verwenden, müssen Sie auch die ausgehende Konfiguration für die folgenden Ressourcen zulassen. Wählen Sie die Konfigurationsoption aus, die Sie verwenden:

    Lassen Sie ausgehenden Datenverkehr über TCP-Port 443 für die folgenden Diensttags zu. Ersetzen Sie <region> durch die Azure-Region, die Ihren Computecluster oder Ihre Compute-Instanz enthält.

    • MicrosoftContainerRegistry.<region>
    • AzureFrontDoor.FirstParty

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Artikeln: