Udostępnij za pośrednictwem


Izolacja zarządzanej sieci wirtualnej obszaru roboczego

DOTYCZY:Rozszerzenie Azure CLI ml v2 (bieżące)Python SDK azure-ai-ml v2 (bieżące)

Usługa Azure Machine Learning zapewnia obsługę izolacji zarządzanej sieci wirtualnej (zarządzanej sieci wirtualnej). Izolacja zarządzanej sieci wirtualnej usprawnia i automatyzuje konfigurację izolacji sieci za pomocą wbudowanej sieci wirtualnej zarządzanej na poziomie obszaru roboczego usługi Azure Machine Learning. Zarządzana sieć wirtualna zabezpiecza zarządzane zasoby usługi Azure Machine Learning, takie jak wystąpienia obliczeniowe, klastry obliczeniowe, przetwarzanie bezserwerowe i zarządzane punkty końcowe online.

Zabezpieczanie obszaru roboczego za pomocą sieci zarządzanej zapewnia izolację sieci na potrzeby dostępu wychodzącego z obszaru roboczego i zarządzanych zasobów obliczeniowych. Utworzona sieć wirtualna platformy Azure, którą tworzysz i zarządzasz służy do zapewnienia izolacji sieci dla dostępu przychodzącego do obszaru roboczego. Na przykład prywatny punkt końcowy dla obszaru roboczego jest tworzony w usłudze Azure Virtual Network. Wszyscy klienci łączący się z siecią wirtualną mogą uzyskiwać dostęp do obszaru roboczego za pośrednictwem prywatnego punktu końcowego. Podczas uruchamiania zadań na zarządzanych obliczeniach, sieć zarządzana ogranicza dostęp obliczeń do różnych zasobów.

Architektura zarządzanej sieci wirtualnej

Po włączeniu izolacji zarządzanej sieci wirtualnej zostanie utworzona zarządzana sieć wirtualna dla obszaru roboczego. Zarządzane zasoby obliczeniowe tworzone dla obszaru roboczego automatycznie używają tej zarządzanej sieci wirtualnej. Zarządzana sieć wirtualna może używać prywatnych punktów końcowych dla zasobów platformy Azure używanych przez obszar roboczy, takich jak Azure Storage, Azure Key Vault i Azure Container Registry.

Istnieją dwa różne tryby konfiguracji dla ruchu wychodzącego z zarządzanej sieci wirtualnej:

Napiwek

Niezależnie od używanego trybu ruchu wychodzącego można skonfigurować ruch do zasobów platformy Azure w celu korzystania z prywatnego punktu końcowego. Na przykład możesz zezwolić na cały ruch wychodzący do Internetu, ale ograniczyć komunikację z zasobami platformy Azure, dodając reguły ruchu wychodzącego dla zasobów.

Tryb wychodzący opis Scenariusze
Zezwalaj na ruch wychodzący z Internetu Zezwalaj na cały ruch wychodzący z zarządzanej sieci wirtualnej. Potrzebujesz nieograniczonego dostępu do zasobów uczenia maszynowego w Internecie, takich jak pakiety języka Python lub wstępnie wytrenowane modele.1
Zezwalaj tylko na zatwierdzony ruch wychodzący Ruch wychodzący jest dozwolony poprzez określenie tagów usługowych. * Chcesz zminimalizować ryzyko eksfiltracji danych, ale musisz przygotować wszystkie wymagane artefakty uczenia maszynowego w środowisku prywatnym.
* Chcesz skonfigurować dostęp wychodzący do zatwierdzonej listy usług, tagów usług lub nazw FQDN.
Niepełnosprawny Ruch przychodzący i wychodzący nie jest ograniczony lub używasz własnej sieci wirtualnej platformy Azure do ochrony zasobów. Chcesz, aby ruch publiczny przychodzący i wychodzący z obszaru roboczego był dozwolony, lub może obsługujesz izolację sieci za pomocą własnej sieci wirtualnej platformy Azure.
  1. Możesz użyć reguł ruchu wychodzącego z trybem, który pozwala tylko na zatwierdzony ruch wychodzący, aby osiągnąć taki sam wynik, jak w przypadku zezwalania na ruch wychodzący z Internetu. Różnice są następujące:
  • Musisz dodać reguły dla każdego połączenia wychodzącego, które należy zezwolić.
  • Dodawanie reguł ruchu wychodzącego nazwy FQDN zwiększa koszty , ponieważ ten typ reguły używa usługi Azure Firewall. Aby uzyskać więcej informacji, zobacz Ceny
  • Domyślne reguły zezwalania tylko na zatwierdzone dane wychodzące zostały zaprojektowane tak, aby zminimalizować ryzyko eksfiltracji danych. Wszelkie dodane reguły ruchu wychodzącego mogą zwiększyć ryzyko.

Zarządzana sieć wirtualna jest wstępnie skonfigurowana z wymaganymi regułami domyślnymi. Została skonfigurowana także dla połączeń prywatnych punktów końcowych z obszarem roboczym, domyślnym magazynem obszaru roboczego, rejestrem kontenerów i magazynem kluczy , jeśli są skonfigurowane jako prywatne lub tryb izolacji obszaru roboczego jest ustawiony tak, aby zezwalał tylko na zatwierdzony ruch wychodzący. Po wybraniu trybu izolacji należy wziąć pod uwagę tylko inne wymagania dotyczące ruchu wychodzącego, które mogą być konieczne.

Na poniższym diagramie przedstawiono zarządzaną sieć wirtualną skonfigurowaną do zezwalania na ruch wychodzący z Internetu:

Diagram izolacji zarządzanej sieci wirtualnej skonfigurowanej dla ruchu wychodzącego z Internetu.

Na poniższym diagramie przedstawiono zarządzaną sieć wirtualną skonfigurowaną tak, aby zezwalała tylko na zatwierdzony ruch wychodzący:

Uwaga

W tej konfiguracji magazyn, magazyn kluczy i rejestr kontenerów używany przez obszar roboczy są oflagowane jako prywatne. Ponieważ są one oflagowane jako prywatne, prywatny punkt końcowy jest używany do komunikacji z nimi.

Diagram izolacji zarządzanej sieci wirtualnej skonfigurowanej pod kątem zezwalania tylko na zatwierdzone wychodzące.

Uwaga

Po skonfigurowaniu zarządzanego obszaru roboczego sieci wirtualnej w celu zezwalania na ruch wychodzący z Internetu nie można ponownie skonfigurować obszaru roboczego do wyłączenia. Podobnie po skonfigurowaniu zarządzanego obszaru roboczego sieci wirtualnej tak, aby zezwalał na ruch wychodzący tylko zatwierdzony, nie można ponownie skonfigurować obszaru roboczego, aby zezwolić na ruch wychodzący z Internetu.

Azure Machine Learning Studio

Jeśli chcesz użyć zintegrowanego notesu lub utworzyć zestawy danych na domyślnym koncie magazynu z poziomu programu Studio, klient musi mieć dostęp do domyślnego konta magazynu. Utwórz prywatny punkt końcowy lub punkt końcowy usługi dla domyślnego konta magazynu w sieci wirtualnej platformy Azure używanej przez klientów.

Część usługi Azure Machine Learning Studio działa lokalnie w przeglądarce internetowej klienta i komunikuje się bezpośrednio z domyślnym magazynem dla obszaru roboczego. Utworzenie prywatnego punktu końcowego lub punktu końcowego usługi (dla domyślnego konta magazynu) w sieci wirtualnej klienta gwarantuje, że klient może komunikować się z kontem magazynu.

Jeśli obszar roboczy skojarzony z kontem usługi Azure Storage ma wyłączony dostęp do sieci publicznej, upewnij się, że prywatny punkt końcowy, utworzony w wirtualnej sieci klienta, ma przypisaną rolę czytelnika tożsamości zarządzanej obszaru roboczego. Dotyczy to zarówno prywatnych punktów końcowych bloga, jak i magazynu plików. Rola nie jest wymagana dla prywatnego punktu końcowego utworzonego przez zarządzaną sieć wirtualną.

Aby uzyskać więcej informacji na temat tworzenia prywatnego punktu końcowego lub punktu końcowego usługi, zobacz artykuły Connect privately to a storage account oraz Service Endpoints.

Zabezpieczone powiązane zasoby

Jeśli dodasz następujące usługi do sieci wirtualnej przy użyciu punktu końcowego usługi lub prywatnego punktu końcowego (wyłączając dostęp publiczny), zezwól zaufanym usługi firmy Microsoft na dostęp do tych usług:

Usługa Informacje o punkcie końcowym Zezwalaj na zaufane informacje
Azure Key Vault Punkt końcowy usługi
Prywatny punkt końcowy
Zezwalaj zaufanym usługi firmy Microsoft na obejście tej zapory
Konto magazynu platformy Azure Punkt końcowy usługi i punkt końcowy prywatny
Punkt końcowy prywatny
Udzielanie dostępu z wystąpień zasobów platformy Azure
lub udzielanie dostępu do zaufanych usług platformy Azure
Azure Container Registry Prywatny punkt końcowy Zezwalaj na zaufane usługi

Wymagania wstępne

Przed wykonaniem kroków opisanych w tym artykule upewnij się, że masz następujące wymagania wstępne:

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Wypróbuj bezpłatną lub płatną wersję usługi Azure Machine Learning.

  • Dostawca zasobów Microsoft.Network musi być zarejestrowany dla subskrypcji platformy Azure. Ten dostawca zasobów jest używany przez obszar roboczy podczas tworzenia prywatnych punktów końcowych dla zarządzanej sieci wirtualnej.

    Aby uzyskać informacje na temat rejestrowania dostawców zasobów, zobacz Rozwiązywanie błędów dotyczących rejestracji dostawcy zasobów.

  • Tożsamość platformy Azure używana podczas wdrażania sieci zarządzanej wymaga następujących akcji kontroli dostępu opartej na rolach (RBAC) platformy Azure w celu utworzenia prywatnych punktów końcowych:

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write
  • Interfejs wiersza polecenia platformy Azure i rozszerzenie do interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz Instalowanie, konfigurowanie i używanie interfejsu wiersza polecenia (wersja 2).

    Napiwek

    Zarządzana sieć wirtualna usługi Azure Machine Learning została wprowadzona 23 maja 2023 r. Jeśli masz starszą wersję rozszerzenia ml, może być konieczne zaktualizowanie go w celu uzyskania przykładów w tym artykule. Aby zaktualizować rozszerzenie, użyj następującego polecenia interfejsu wiersza polecenia platformy Azure:

    az extension update -n ml
    
  • W przykładach CLI tego artykułu przyjmuje się, że korzystasz z powłoki Bash (lub zgodnej). Na przykład z systemu Linux lub Podsystem Windows dla systemu Linux.

  • Przykłady interfejsu wiersza polecenia platformy Azure w tym artykule służą ws do reprezentowania nazwy obszaru roboczego i rg reprezentowania nazwy grupy zasobów. Zmień te wartości zgodnie z potrzebami podczas używania poleceń z subskrypcją platformy Azure.

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Wypróbuj bezpłatną lub płatną wersję usługi Azure Machine Learning.

  • Dostawca zasobów Microsoft.Network musi być zarejestrowany dla subskrypcji platformy Azure. Ten dostawca zasobów jest używany przez obszar roboczy podczas tworzenia prywatnych punktów końcowych dla zarządzanej sieci wirtualnej.

    Aby uzyskać informacje na temat rejestrowania dostawców zasobów, zobacz Rozwiązywanie błędów dotyczących rejestracji dostawcy zasobów.

  • Tożsamość platformy Azure używana podczas wdrażania sieci zarządzanej wymaga następujących akcji kontroli dostępu opartej na rolach (RBAC) platformy Azure w celu utworzenia prywatnych punktów końcowych:

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write
  • Zestaw SDK języka Python usługi Azure Machine Learning w wersji 2. Aby uzyskać więcej informacji na temat zestawu SDK, zobacz Instalowanie zestawu SDK języka Python w wersji 2 dla usługi Azure Machine Learning.

    Napiwek

    Zarządzana sieć wirtualna usługi Azure Machine Learning została wprowadzona 23 maja 2023 r. Jeśli masz zainstalowaną starszą wersję zestawu SDK, może być konieczne zaktualizowanie go, aby przykłady w tym artykule działały. Aby zaktualizować zestaw SDK, użyj następującego polecenia:

    pip install --upgrade azure-ai-ml azure-identity
    
  • W przykładach w tym artykule przyjęto założenie, że kod zaczyna się od następującego języka Python. Ten kod importuje klasy wymagane podczas tworzenia obszaru roboczego z zarządzaną siecią wirtualną, ustawia zmienne dla subskrypcji i grupy zasobów platformy Azure i tworzy element ml_client:

    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import (
        Workspace,
        ManagedNetwork,
        IsolationMode,
        ServiceTagDestination,
        PrivateEndpointDestination,
        FqdnDestination
    )
    from azure.identity import DefaultAzureCredential
    
    # Replace with the values for your Azure subscription and resource group.
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription
    ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group)
    
  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Wypróbuj bezpłatną lub płatną wersję usługi Azure Machine Learning.

  • Dostawca zasobów Microsoft.Network musi być zarejestrowany dla subskrypcji platformy Azure. Ten dostawca zasobów jest używany przez obszar roboczy podczas tworzenia prywatnych punktów końcowych dla zarządzanej sieci wirtualnej.

    Aby uzyskać informacje na temat rejestrowania dostawców zasobów, zobacz Rozwiązywanie błędów dotyczących rejestracji dostawcy zasobów.

  • Tożsamość platformy Azure używana podczas wdrażania sieci zarządzanej wymaga następujących akcji kontroli dostępu opartej na rolach (RBAC) platformy Azure w celu utworzenia prywatnych punktów końcowych:

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write

Aby ustanowić połączenia prywatnego punktu końcowego w zarządzanych sieciach wirtualnych przy użyciu usługi Azure Machine Learning, zarządzana tożsamość obszaru roboczego, niezależnie od tego, czy jest przypisana przez system, czy przez użytkownika, oraz tożsamość użytkownika, które inicjują tworzenie prywatnego punktu końcowego, muszą mieć uprawnienia do zatwierdzania połączeń prywatnych punktów końcowych w zasobach docelowych. Po 30 kwietnia 2025 r. uprawnienia nie zostaną automatycznie przyznane tożsamości zarządzanej i muszą zostać przypisane ręcznie.

Firma Microsoft zaleca przypisanie roli Aprobującego połączenia sieciowego Azure AI Enterprise dla tożsamości zarządzanej. Poniższa lista zawiera typy zasobów docelowych dla prywatnych punktów końcowych objętych rolą Azure AI Enterprise Network Connection Approver:

  • Azure Application Gateway
  • Azure Monitor
  • Azure AI Search
  • Centra zdarzeń
  • Azure SQL Database
  • Azure Storage
  • Obszar roboczy usługi Azure Machine Learning
  • Rejestr usługi Azure Machine Learning
  • Azure AI Foundry
  • Azure Key Vault
  • Azure Cosmos DB (Usługa bazodanowa firmy Microsoft)
  • Azure Baza danych dla MySQL
  • Baza danych Azure dla PostgreSQL
  • Usługi Azure AI
  • Usługa Azure Cache dla Redis
  • Rejestr kontenerów
  • API Management

Jeśli zamiast tego chcesz utworzyć rolę niestandardową, zobacz Rolę osoby zatwierdzającej połączenie sieciowe przedsiębiorstwa Azure AI, aby dodać konkretne działania dla każdego typu zasobu.

Aby utworzyć reguły ruchu wychodzącego prywatnego punktu końcowego dla docelowych typów zasobów, które nie są objęte rolą Azure AI Enterprise Network Connection Approver, zaleca się niestandardową rolę o określonym zakresie. Rola powinna być zdefiniowana przy użyciu akcji niezbędnych do zatwierdzania połączeń prywatnych punktów końcowych w docelowych typach zasobów. Przykłady takich typów zasobów to Azure Data Factory, Azure Databricks i Azure Function Apps.

Aby utworzyć reguły ruchu wychodzącego prywatnego punktu końcowego do domyślnych zasobów obszaru roboczego, wymagane uprawnienia są automatycznie objęte przypisaniami ról przyznanymi podczas tworzenia obszaru roboczego, więc nie jest wymagana żadna inna akcja.

Skonfiguruj zarządzaną sieć wirtualną, aby umożliwić ruch wychodzący do internetu.

Napiwek

Tworzenie zarządzanej sieci wirtualnej jest odroczone do momentu utworzenia zasobu obliczeniowego lub ręcznego uruchomienia aprowizacji. Jeśli zezwolisz na automatyczne tworzenie, utworzenie pierwszego zasobu obliczeniowego może potrwać około 30 minut, ponieważ obejmuje również aprowizację sieci. Aby uzyskać więcej informacji, zobacz Ręczne aprowizuj sieć.

Ważne

Jeśli planujesz przesyłanie bezserwerowych zadań platformy Spark, musisz ręcznie rozpocząć aprowizację. Aby uzyskać więcej informacji, zobacz sekcję Konfigurowanie zadań platformy Spark bezserwerowych .

Aby skonfigurować zarządzaną sieć wirtualną zezwalającą na komunikację wychodzącą z Internetu, możesz użyć parametru --managed-network allow_internet_outbound lub pliku konfiguracji YAML zawierającego następujące wpisy:

managed_network:
  isolation_mode: allow_internet_outbound

Możesz również zdefiniować reguły ruchu wychodzącego do innych usług platformy Azure, na których opiera się obszar roboczy. Te reguły definiują prywatne punkty końcowe, które umożliwiają zasobowi platformy Azure bezpieczną komunikację z zarządzaną siecią wirtualną. Poniższa reguła pokazuje dodawanie prywatnego punktu końcowego do zasobu obiektu blob platformy Azure.

managed_network:
  isolation_mode: allow_internet_outbound
  outbound_rules:
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

Zarządzaną sieć wirtualną można skonfigurować przy użyciu polecenia az ml workspace create lub az ml workspace update.

Poniższy przykład tworzy nowy obszar roboczy. Parametr --managed-network allow_internet_outbound konfiguruje zarządzaną sieć wirtualną dla obszaru roboczego:

az ml workspace create --name ws --resource-group rg --managed-network allow_internet_outbound

Aby utworzyć obszar roboczy przy użyciu pliku YAML, użyj parametru --file i określ plik YAML zawierający ustawienia konfiguracji:

az ml workspace create --file workspace.yaml --resource-group rg --name ws

Poniższy przykład YAML definiuje obszar roboczy z zarządzaną siecią wirtualną:

name: myworkspace
location: EastUS
managed_network:
    isolation_mode: allow_internet_outbound

Aby skonfigurować zarządzaną wirtualną sieć, która zezwala na komunikację wychodzącą do Internetu, użyj ManagedNetwork klasy, aby zdefiniować sieć za pomocą IsolationMode.ALLOW_INTERNET_OUTBOUND polecenia. Następnie możesz użyć ManagedNetwork obiektu , aby utworzyć nowy obszar roboczy lub zaktualizować istniejący. Aby zdefiniować reguły ruchu wychodzącego do usług platformy Azure, z których korzysta obszar roboczy, użyj PrivateEndpointDestination klasy , aby zdefiniować nowy prywatny punkt końcowy dla usługi.

Poniższy przykład tworzy nowy obszar roboczy o nazwie myworkspace, z regułą ruchu wychodzącego o nazwie myrule, która dodaje prywatny punkt końcowy dla magazynu obiektów blob platformy Azure.

# Basic managed VNet configuration
network = ManagedNetwork(IsolationMode.ALLOW_INTERNET_OUTBOUND)

# Workspace configuration
ws = Workspace(
    name="myworkspace",
    location="eastus",
    managed_network=network
)

# Example private endpoint outbound to a blob
rule_name = "myrule"
service_resource_id = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>"
subresource_target = "blob"
spark_enabled = True

# Add the outbound 
ws.managed_network.outbound_rules = [PrivateEndpointDestination(
    name=rule_name, 
    service_resource_id=service_resource_id, 
    subresource_target=subresource_target, 
    spark_enabled=spark_enabled)]

# Create the workspace
ws = ml_client.workspaces.begin_create(ws).result()
  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Azure Machine Learning z menu Utwórz zasób.

  2. Podaj wymagane informacje na karcie Podstawy .

  3. Na karcie Sieć wybierz pozycję Prywatna z internetem wychodzącym.

    Zrzut ekranu przedstawiający tworzenie obszaru roboczego z wychodzącą siecią wirtualną zarządzaną przez Internet.

  4. Aby dodać regułę ruchu wychodzącego, wybierz pozycję Dodaj reguły ruchu wychodzącego zdefiniowane przez użytkownika z karty Sieć. Na pasku bocznym Reguły ruchu wychodzącego obszaru roboczego podaj następujące informacje:

    • Nazwa reguły: Nazwa dla reguły. Nazwa musi być unikatowa dla tego obszaru roboczego.
    • Typ docelowy: Prywatny punkt końcowy jest jedyną opcją, gdy prywatna izolacja sieciowa występuje z wychodzącym ruchem internetowym. Zarządzana sieć wirtualna usługi Azure Machine Learning nie obsługuje tworzenia prywatnego punktu końcowego dla wszystkich typów zasobów platformy Azure. Aby uzyskać listę obsługiwanych zasobów, zobacz sekcję Prywatne punkty końcowe .
    • Subskrypcja: subskrypcja zawierająca zasób platformy Azure, dla którego chcesz dodać prywatny punkt końcowy.
    • Grupa zasobów: grupa zasobów zawierająca zasób platformy Azure, dla którego chcesz dodać prywatny punkt końcowy.
    • Typ zasobu: typ zasobu platformy Azure.
    • Nazwa zasobu: nazwa zasobu platformy Azure.
    • Zasób podrzędny: zasób podrzędny typu zasobu platformy Azure.
    • Platforma Spark jest włączona: wybierz tę opcję, jeśli chcesz włączyć bezserwerowe zadania platformy Spark dla obszaru roboczego. Ta opcja jest dostępna tylko wtedy, gdy typ zasobu to Azure Storage.

    Zrzut ekranu przedstawiający dodawanie reguły ruchu wychodzącego dla prywatnego punktu końcowego.

    Wybierz Zapisz, aby zapisać zasadę. Możesz kontynuować używanie Dodaj reguły ruchu wychodzącego zdefiniowane przez użytkownika aby dodawać reguły.

  5. Kontynuuj tworzenie obszaru roboczego w zwykły sposób.

Konfigurowanie zarządzanej sieci wirtualnej tak, aby zezwalała tylko na zatwierdzony ruch wychodzący

Napiwek

Zarządzana sieć wirtualna jest automatycznie aprowizowana podczas tworzenia zasobu obliczeniowego. Jeśli zezwolisz na automatyczne tworzenie, utworzenie pierwszego zasobu obliczeniowego może potrwać około 30 minut, ponieważ obejmuje również aprowizację sieci. Jeśli skonfigurowano reguły nazwy FQDN (Fully Qualified Domain Name) ruchu wychodzącego, pierwsza reguła FQDN dodaje około 10 minut do czasu provisioningu. Aby uzyskać więcej informacji, zobacz Ręczne aprowizuj sieć.

Ważne

Jeśli planujesz przesyłanie bezserwerowych zadań platformy Spark, musisz ręcznie rozpocząć aprowizację. Aby uzyskać więcej informacji, zobacz sekcję Konfigurowanie zadań platformy Spark bezserwerowych .

Aby skonfigurować zarządzaną sieć wirtualną zezwalającą tylko na zatwierdzoną komunikację wychodzącą, można użyć parametru --managed-network allow_only_approved_outbound lub pliku konfiguracji YAML zawierającego następujące wpisy:

managed_network:
  isolation_mode: allow_only_approved_outbound

Można również zdefiniować reguły ruchu wychodzącego, aby zdefiniować zatwierdzoną komunikację wychodzącą. Można utworzyć regułę ruchu wychodzącego dla typu service_tag, fqdn i private_endpoint. Poniższa reguła pokazuje dodawanie prywatnego punktu końcowego do zasobu obiektu blob platformy Azure, tagu usługi do usługi Azure Data Factory i nazwy FQDN do :pypi.org

Ważne

  • Dodanie ruchu wychodzącego dla tagu usługi lub nazwy FQDN jest prawidłowe tylko wtedy, gdy zarządzana sieć wirtualna jest skonfigurowana na wartość allow_only_approved_outbound.
  • Jeśli dodasz reguły ruchu wychodzącego, firma Microsoft nie może zagwarantować eksfiltracji danych.

Ostrzeżenie

Reguły ruchu wychodzącego oparte na FQDN są implementowane przy użyciu usługi Azure Firewall. Jeśli używasz reguł nazwy FQDN dla ruchu wychodzącego, opłaty za usługę Azure Firewall zostaną dodane do rozliczeń. Aby uzyskać więcej informacji, zobacz Cennik.

managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - name: added-servicetagrule
    destination:
      port_ranges: 80, 8080
      protocol: TCP
      service_tag: DataFactory
    type: service_tag
  - name: add-fqdnrule
    destination: 'pypi.org'
    type: fqdn
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

Zarządzaną sieć wirtualną można skonfigurować przy użyciu polecenia az ml workspace create lub az ml workspace update.

W poniższym przykładzie użyto parametru --managed-network allow_only_approved_outbound do skonfigurowania zarządzanej sieci wirtualnej:

az ml workspace create --name ws --resource-group rg --managed-network allow_only_approved_outbound

Poniższy plik YAML definiuje obszar roboczy z zarządzaną siecią wirtualną:

name: myworkspace
location: EastUS
managed_network:
    isolation_mode: allow_only_approved_outbound

Aby utworzyć obszar roboczy przy użyciu pliku YAML, użyj parametru --file :

az ml workspace create --file workspace.yaml --resource-group rg --name ws

Aby skonfigurować zarządzaną sieć wirtualną, która zezwala na tylko zatwierdzoną komunikację wychodzącą, użyj ManagedNetwork klasy, aby zdefiniować sieć za pomocą IsolationMode.ALLOw_ONLY_APPROVED_OUTBOUND. Następnie możesz użyć ManagedNetwork obiektu , aby utworzyć nowy obszar roboczy lub zaktualizować istniejący. Aby zdefiniować reguły ruchu wychodzącego, użyj następujących klas:

Cel Klasa
Usługa platformy Azure, na której polega obszar roboczy PrivateEndpointDestination
Tag usługi platformy Azure ServiceTagDestination
W pełni kwalifikowana nazwa domeny (FQDN) FqdnDestination

Poniższy przykład tworzy nowy obszar roboczy o nazwie myworkspace, z kilkoma regułami ruchu wychodzącego:

  • myrule — Dodaje prywatny punkt końcowy dla magazynu obiektów blob platformy Azure.
  • datafactory — Dodaje regułę tagu usługi do komunikowania się z usługą Azure Data Factory.

Ważne

  • Dodanie ruchu wychodzącego dla tagu usługi lub nazwy FQDN jest prawidłowe tylko wtedy, gdy zarządzana sieć wirtualna jest skonfigurowana na wartość IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND.
  • Jeśli dodasz reguły ruchu wychodzącego, firma Microsoft nie może zagwarantować eksfiltracji danych.

Ostrzeżenie

Reguły ruchu wychodzącego oparte na FQDN są implementowane przy użyciu usługi Azure Firewall. Jeśli używasz reguł nazwy FQDN dla ruchu wychodzącego, opłaty za usługę Azure Firewall zostaną dodane do rozliczeń. Aby uzyskać więcej informacji, zobacz Cennik.

# Basic managed VNet configuration
network = ManagedNetwork(IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND)

# Workspace configuration
ws = Workspace(
    name="myworkspace",
    location="eastus",
    managed_network=network
)

# Append some rules
ws.managed_network.outbound_rules = []
# Example private endpoint outbound to a blob
rule_name = "myrule"
service_resource_id = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>"
subresource_target = "blob"
spark_enabled = True
ws.managed_network.outbound_rules.append(
    PrivateEndpointDestination(
        name=rule_name, 
        service_resource_id=service_resource_id, 
        subresource_target=subresource_target, 
        spark_enabled=spark_enabled
    )
)

# Example service tag rule
rule_name = "datafactory"
service_tag = "DataFactory"
protocol = "TCP"
port_ranges = "80, 8080-8089"
ws.managed_network.outbound_rules.append(
    ServiceTagDestination(
        name=rule_name, 
        service_tag=service_tag, 
        protocol=protocol, 
        port_ranges=port_ranges
    )
)

# Example FQDN rule
ws.managed_network.outbound_rules.append(
    FqdnDestination(
        name="fqdnrule", 
        destination="pypi.org"
    )
)

# Create the workspace
ws = ml_client.workspaces.begin_create(ws).result()
  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Azure Machine Learning z menu Utwórz zasób.

  2. Podaj wymagane informacje na karcie Podstawy .

  3. Na karcie Sieć wybierz pozycję Prywatna z zatwierdzonym wyjściem.

    Zrzut ekranu przedstawiający tworzenie obszaru roboczego z zatwierdzoną zarządzaną siecią wirtualną dla ruchu wychodzącego.

  4. Aby dodać regułę ruchu wychodzącego, wybierz pozycję Dodaj reguły ruchu wychodzącego zdefiniowane przez użytkownika z karty Sieć. Na pasku bocznym Reguły ruchu wychodzącego obszaru roboczego podaj następujące informacje:

    • Nazwa reguły: Nazwa dla reguły. Nazwa musi być unikatowa dla tego obszaru roboczego.
    • Typ docelowy: Prywatny punkt końcowy, tag usługi lub FQDN. Tag usługi i nazwa FQDN są dostępne tylko wtedy, gdy izolacja sieci jest prywatna z zatwierdzonym wychodzącym.

    Jeśli typem docelowym jest prywatny punkt końcowy, podaj następujące informacje:

    • Subskrypcja: subskrypcja zawierająca zasób platformy Azure, dla którego chcesz dodać prywatny punkt końcowy.
    • Grupa zasobów: grupa zasobów zawierająca zasób platformy Azure, dla którego chcesz dodać prywatny punkt końcowy.
    • Typ zasobu: typ zasobu platformy Azure.
    • Nazwa zasobu: nazwa zasobu platformy Azure.
    • Zasób podrzędny: zasób podrzędny typu zasobu platformy Azure.
    • Platforma Spark jest włączona: wybierz tę opcję, jeśli chcesz włączyć bezserwerowe zadania platformy Spark dla obszaru roboczego. Ta opcja jest dostępna tylko wtedy, gdy typ zasobu to Azure Storage.

    Napiwek

    Zarządzana sieć wirtualna usługi Azure Machine Learning nie obsługuje tworzenia prywatnego punktu końcowego dla wszystkich typów zasobów platformy Azure. Aby uzyskać listę obsługiwanych zasobów, zobacz sekcję Prywatne punkty końcowe .

    Zrzut ekranu przedstawiający aktualizowanie zatwierdzonej sieci wychodzącej przez dodanie prywatnego punktu końcowego.

    Jeśli typem docelowym jest tag usługi, podaj następujące informacje:

    • Tag usługi: tag usługi, który ma zostać dodany do zatwierdzonych reguł ruchu wychodzącego.
    • Protokół: protokół umożliwiający tag usługi.
    • Zakresy portów: Zakresy portów, które pozwalają na użycie tagu usługi.

    Zrzut ekranu przedstawiający aktualizowanie zatwierdzonej sieci wychodzącej przez dodanie tagu usługi.

    Jeśli typem docelowym jest FQDN, podaj następujące informacje:

    Ostrzeżenie

    Reguły ruchu wychodzącego oparte na FQDN są implementowane przy użyciu usługi Azure Firewall. Jeśli używasz reguł nazwy FQDN dla ruchu wychodzącego, opłaty za usługę Azure Firewall zostaną dodane do rozliczeń. Aby uzyskać więcej informacji, zobacz Cennik.

    • Docelowy FQDN: w pełni kwalifikowana nazwa domeny do dodania do zatwierdzonych reguł ruchu wychodzącego.

    Zrzut ekranu przedstawiający aktualizowanie zatwierdzonej sieci wychodzącej przez dodanie reguły FQDN dla zatwierdzonej zarządzanej sieci wirtualnej wychodzącej.

    Wybierz Zapisz, aby zapisać zasadę. Możesz kontynuować używanie Dodaj reguły ruchu wychodzącego zdefiniowane przez użytkownika aby dodawać reguły.

  5. Kontynuuj tworzenie obszaru roboczego w zwykły sposób.

Konfigurowanie zadań bezserwerowych Spark

Napiwek

Kroki opisane w tej sekcji są wymagane tylko w przypadku planowania przesyłania bezserwerowych zadań platformy Spark. Jeśli nie zamierzasz przesyłać bezserwerowych zadań platformy Spark, możesz pominąć tę sekcję.

Aby włączyć bezserwerowe zadania platformy Spark dla zarządzanej sieci wirtualnej, należy wykonać następujące czynności:

  • Skonfiguruj zarządzaną sieć wirtualną dla obszaru roboczego i dodaj wychodzący prywatny punkt końcowy dla konta usługi Azure Storage.
  • Po skonfigurowaniu zarządzanej sieci wirtualnej, aprowizuj ją i oznacz, aby zezwolić na zadania Spark.
  1. Skonfiguruj wychodzący prywatny punkt końcowy.

    Użyj pliku YAML, aby zdefiniować konfigurację zarządzanej sieci wirtualnej i dodać prywatny punkt końcowy dla konta usługi Azure Storage. Ustaw również :spark_enabled: true

    Napiwek

    Ten przykład dotyczy zarządzanej sieci wirtualnej skonfigurowanej przy użyciu funkcji isolation_mode: allow_internet_outbound zezwalania na ruch internetowy. Jeśli chcesz zezwolić tylko na zatwierdzony ruch wychodzący, użyj polecenia isolation_mode: allow_only_approved_outbound.

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

    Możesz użyć pliku konfiguracji YAML z az ml workspace update poleceniem, określając --file parametr i nazwę pliku YAML. Na przykład następujące polecenie aktualizuje istniejący obszar roboczy przy użyciu pliku YAML o nazwie workspace_pe.yml:

    az ml workspace update --file workspace_pe.yml --resource_group rg --name ws
    

    Uwaga

    Jeśli opcja Zezwalaj tylko na zatwierdzony ruch wychodzący jest włączona (isolation_mode: allow_only_approved_outbound), nie można zainstalować zależności pakietów conda zdefiniowanych w konfiguracji sesji platformy Spark. Aby rozwiązać ten problem, przekaż samodzielne koło pakietów języka Python bez zależności zewnętrznych do konta usługi Azure Storage i utwórz prywatny punkt końcowy na to konto magazynu. Użyj ścieżki do koła pakietów języka Python jako py_files parametru w zadaniu platformy Spark. Ustawienie reguły ruchu wychodzącego nazwy FQDN nie spowoduje obejścia tego problemu, ponieważ propagacja reguły nazwy FQDN nie jest obsługiwana przez platformę Spark.

    W poniższym przykładzie pokazano, jak utworzyć zarządzaną sieć wirtualną dla istniejącego obszaru roboczego usługi Azure Machine Learning o nazwie myworkspace. Dodaje również prywatny punkt końcowy dla konta usługi Azure Storage i ustawia wartość spark_enabled=true:

    Napiwek

    Poniższy przykład dotyczy zarządzanej sieci wirtualnej skonfigurowanej przy użyciu funkcji IsolationMode.ALLOW_INTERNET_OUTBOUND zezwalania na ruch internetowy. Jeśli chcesz zezwolić tylko na zatwierdzony ruch wychodzący, użyj polecenia IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND.

    # Get the existing workspace
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, "myworkspace")
    ws = ml_client.workspaces.get()
    
    # Basic managed VNet configuration
    ws.managed_network = ManagedNetwork(IsolationMode.ALLOW_INTERNET_OUTBOUND)
    
    # Example private endpoint outbound to a blob
    rule_name = "myrule"
    service_resource_id = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>"
    subresource_target = "blob"
    spark_enabled = True
    
    # Add the outbound 
    ws.managed_network.outbound_rules = [PrivateEndpointDestination(
        name=rule_name, 
        service_resource_id=service_resource_id, 
        subresource_target=subresource_target, 
        spark_enabled=spark_enabled)]
    
    # Create the workspace
    ml_client.workspaces.begin_update(ws)
    

    Uwaga

    • Jeśli opcja Zezwalaj tylko na zatwierdzony ruch wychodzący jest włączona (isolation_mode: allow_only_approved_outbound), nie można zainstalować zależności pakietów conda zdefiniowanych w konfiguracji sesji platformy Spark. Aby rozwiązać ten problem, przekaż samodzielne koło pakietów języka Python bez zależności zewnętrznych do konta usługi Azure Storage i utwórz prywatny punkt końcowy na to konto magazynu. Użyj ścieżki do koła pakietów języka Python jako py_files parametru w zadaniu platformy Spark.
    • Jeśli obszar roboczy został utworzony za pomocą IsolationMode.ALLOW_INTERNET_OUTBOUND, nie można go później zaktualizować do użycia IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND.
    1. Zaloguj się do witryny Azure Portal i wybierz obszar roboczy usługi Azure Machine Learning.

    2. Wybierz pozycję Sieć, a następnie wybierz pozycję Dodaj reguły ruchu wychodzącego zdefiniowane przez użytkownika. Dodaj regułę dla konta usługi Azure Storage i upewnij się, że wybrano opcję Włączono platformę Spark.

      Zrzut ekranu przedstawiający regułę punktu końcowego z włączoną obsługą platformy Spark.

    3. Wybierz pozycję Zapisz , aby zapisać regułę, a następnie wybierz pozycję Zapisz w górnej części obszaru Sieć , aby zapisać zmiany w zarządzanej sieci wirtualnej.

  2. Przygotuj zarządzaną sieć wirtualną.

    Uwaga

    Jeśli obszar roboczy ma włączony dostęp do sieci publicznej, należy go wyłączyć przed aprowizowaniem zarządzanej sieci wirtualnej. Jeśli nie wyłączysz dostępu do sieci publicznej podczas aprowizacji zarządzanej sieci wirtualnej, prywatne punkty końcowe obszaru roboczego mogą nie zostać utworzone automatycznie w zarządzanej sieci wirtualnej. W przeciwnym razie należy ręcznie skonfigurować regułę ruchu wychodzącego prywatnego punktu końcowego dla obszaru roboczego po aprowizacji.

    W poniższym przykładzie pokazano, jak aprowizować zarządzaną sieć wirtualną dla zadań bezserwerowych platformy Spark przy użyciu parametru --include-spark .

    az ml workspace provision-network -g my_resource_group -n my_workspace_name --include-spark
    

    W poniższym przykładzie pokazano, jak aprowizować zarządzaną sieć wirtualną dla zadań bezserwerowych platformy Spark:

    # Connect to a workspace named "myworkspace"
    ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name="myworkspace")
    
    # whether to provision Spark vnet as well
    include_spark = True
    
    provision_network_result = ml_client.workspaces.begin_provision_network(workspace_name=ws_name, include_spark=include_spark).result()
    

    W witrynie Azure Portal możesz wybrać tylko aprowizację sieci zarządzanej podczas tworzenia obszaru roboczego. W tym celu wybierz pozycję Aprowizuj zarządzaną sieć wirtualną na karcie Dostęp wychodzący . Aby aprowizować sieć zarządzaną dla zadań platformy Spark bezserwerowych dla istniejącego obszaru roboczego, musisz użyć interfejsu wiersza polecenia platformy Azure lub zestawu SDK języka Python.

Ręczne aprowizuj zarządzaną sieć wirtualną

Zarządzana sieć wirtualna jest automatycznie aprowizowana podczas tworzenia wystąpienia obliczeniowego. W przypadku automatycznej aprowizacji tworzenie pierwszego wystąpienia obliczeniowego może potrwać około 30 minut, ponieważ aprowizacja sieci jest również zajęła około 30 minut . Jeśli skonfigurowano reguły ruchu wychodzącego nazwy FQDN (dostępne tylko z trybem zezwalania tylko na zatwierdzenie), pierwsza reguła nazwy FQDN dodaje około 10 minut do czasu aprowizacji. Jeśli masz duży zestaw reguł ruchu wychodzącego do wdrożenia w sieci zarządzanej, może to zająć więcej czasu. Zwiększony czas aprowizacji może spowodować przekroczenie limitu czasu utworzenia pierwszego wystąpienia obliczeniowego.

Aby skrócić czas oczekiwania i uniknąć potencjalnych błędów przekroczenia limitu czasu, zalecamy ręczne aprowizowanie sieci zarządzanej. Następnie poczekaj na zakończenie aprowizacji przed utworzeniem wystąpienia obliczeniowego.

Alternatywnie możesz użyć provision_network_now flagi, aby udostępnić sieć zarządzaną w ramach tworzenia obszaru roboczego.

Uwaga

Aby zapewnić wdrożenie online, musisz ręcznie przydzielić sieć zarządzaną lub najpierw utworzyć instancję obliczeniową, która automatycznie ją przydzieli.

W poniższym przykładzie pokazano, jak aprowizować zarządzaną sieć wirtualną podczas tworzenia obszaru roboczego.

az ml workspace create -n myworkspace -g my_resource_group --managed-network AllowInternetOutbound --provision-network-now

W poniższym przykładzie pokazano, jak ręcznie aprowizować zarządzaną sieć wirtualną.

Napiwek

Jeśli planujesz przesłać bezserwerowe zadania Spark, dodaj parametr --include-spark.

az ml workspace provision-network -g my_resource_group -n my_workspace_name

Aby sprawdzić, czy aprowizowanie zostało ukończone, użyj następującego polecenia:

az ml workspace show -n my_workspace_name -g my_resource_group --query managed_network

Aby aprowizować sieć zarządzaną podczas tworzenia obszaru roboczego, ustaw flagę provision_network_now na True.

provision_network_now: True

W poniższym przykładzie pokazano, jak aprowizować zarządzaną sieć wirtualną:

# Connect to a workspace named "myworkspace"
ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name="myworkspace")

# whether to provision Spark vnet as well
include_spark = True

provision_network_result = ml_client.workspaces.begin_provision_network(workspace_name=ws_name, include_spark=include_spark).result()

Aby sprawdzić, czy obszar roboczy został aprowizowany, użyj polecenia ml_client.workspaces.get() , aby uzyskać informacje o obszarze roboczym. Właściwość managed_network zawiera stan sieci zarządzanej.

ws = ml_client.workspaces.get()
print(ws.managed_network.status)

Podczas tworzenia obszaru roboczego wybierz pozycję Skonfiguruj sieć zarządzaną proaktywnie podczas tworzenia, aby skonfigurować sieć zarządzaną. Opłaty są naliczane z zasobów sieciowych, takich jak prywatne punkty końcowe, po aprowizacji sieci wirtualnej. Ta opcja konfiguracji jest dostępna tylko podczas tworzenia obszaru roboczego.

Konfigurowanie kompilacji obrazu

Gdy usługa Azure Container Registry dla obszaru roboczego znajduje się za siecią wirtualną, nie można jej używać do bezpośredniego kompilowania obrazów platformy Docker. Zamiast tego skonfiguruj obszar roboczy tak, aby używał klastra obliczeniowego lub wystąpienia obliczeniowego do kompilowania obrazów.

Ważne

Zasób obliczeniowy używany do tworzenia obrazów platformy Docker musi mieć dostęp do repozytoriów pakietów używanych do trenowania i wdrażania modeli. Jeśli używasz sieci skonfigurowanej do zezwalania tylko na zatwierdzone dane wychodzące, może być konieczne dodanie reguł zezwalających na dostęp do publicznych repozytoriów lub używanie prywatnych pakietów języka Python.

Aby zaktualizować obszar roboczy, aby wykorzystywał klaster obliczeniowy lub wystąpienie obliczeniowe do generowania obrazów Docker, użyj polecenia az ml workspace update z parametrem --image-build-compute.

az ml workspace update --name ws --resource-group rg --image-build-compute mycompute

W poniższym przykładzie pokazano, jak zaktualizować obszar roboczy w celu użycia klastra obliczeniowego do kompilowania obrazów:

# import required libraries
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

subscription_id = "<your subscription ID>"
resource_group = "<your resource group name>"
workspace = "<your workspace name>"

ml_client = MLClient(
    DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name=workspace
)

# Get workspace info
ws=ml_client.workspaces.get(name=workspace)
# Update to use cpu-cluster for image builds
ws.image_build_compute="mycompute"
ml_client.workspaces.begin_update(ws)
# To switch back to using ACR to build (if ACR is not in the virtual network):
# ws.image_build_compute = ''
# ml_client.workspaces.begin_update(ws)

Nie istnieje sposób ustawienia procesu kompilacji obrazu w portalu Azure. Zamiast tego użyj interfejsu wiersza polecenia platformy Azure lub zestawu SDK języka Python.

Zarządzanie regułami ruchu wychodzącego

Aby wyświetlić listę reguł ruchu wychodzącego zarządzanej sieci wirtualnej dla obszaru roboczego, użyj następującego polecenia:

az ml workspace outbound-rule list --workspace-name ws --resource-group rg

Aby wyświetlić szczegóły reguły ruchu wychodzącego zarządzanej sieci wirtualnej, użyj następującego polecenia:

az ml workspace outbound-rule show --rule rule-name --workspace-name ws --resource-group rg

Aby usunąć regułę ruchu wychodzącego z zarządzanej sieci wirtualnej, użyj następującego polecenia:

az ml workspace outbound-rule remove --rule rule-name --workspace-name ws --resource-group rg

W poniższym przykładzie pokazano, jak zarządzać regułami ruchu wychodzącego dla obszaru roboczego o nazwie myworkspace:

# Connect to the workspace
ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name="myworkspace")

# Specify the rule name
rule_name = "<some-rule-name>"

# Get a rule by name
rule = ml_client._workspace_outbound_rules.get(resource_group, ws_name, rule_name)

# List rules for a workspace
rule_list = ml_client._workspace_outbound_rules.list(resource_group, ws_name)

# Delete a rule from a workspace
ml_client._workspace_outbound_rules.begin_remove(resource_group, ws_name, rule_name).result()
  1. Zaloguj się do witryny Azure Portal i wybierz obszar roboczy usługi Azure Machine Learning, dla którego chcesz włączyć izolację zarządzanej sieci wirtualnej.

  2. Wybierz pozycję Sieć. Sekcja Dostęp wychodzący obszaru roboczego umożliwia zarządzanie regułami wychodzącymi.

    Zrzut ekranu przedstawiający sekcję reguł ruchu wychodzącego.

  • Aby dodać regułę ruchu wychodzącego, wybierz pozycję Dodaj reguły ruchu wychodzącego zdefiniowane przez użytkownika z karty Sieć. Na pasku bocznym Reguły ruchu wychodzącego obszaru roboczego podaj następujące informacje:

  • Aby włączyć lub wyłączyć regułę, użyj przełącznika w kolumnie Aktywne .

  • Aby usunąć regułę ruchu wychodzącego, wybierz pozycję Usuń dla reguły.

Lista wymaganych reguł

Prywatne punkty końcowe:

  • Gdy tryb izolacji zarządzanej sieci wirtualnej to Allow internet outbound, reguły ruchu wychodzącego prywatnego punktu końcowego są tworzone automatycznie jako wymagane reguły z zarządzanej sieci wirtualnej dla obszaru roboczego i skojarzonych zasobów z wyłączonym dostępem do sieci publicznej (usługa Key Vault, konto magazynu, rejestr kontenerów, obszar roboczy usługi Azure Machine Learning).
  • Gdy tryb izolacji dla zarządzanej sieci wirtualnej to Allow only approved outbound, reguły ruchu wychodzącego prywatnego punktu końcowego są tworzone automatycznie jako wymagane reguły z zarządzanej sieci wirtualnej dla obszaru roboczego i skojarzonych zasobów niezależnie od trybu dostępu do sieci publicznej dla tych zasobów (usługa Key Vault, konto magazynu, rejestr kontenerów, obszar roboczy usługi Azure Machine Learning).
  • Te reguły są automatycznie dodawane do zarządzanej sieci wirtualnej.

Aby usługa Azure Machine Learning była uruchamiana normalnie, istnieje zestaw wymaganych tagów usługi wymaganych w konfiguracji zarządzanej lub niestandardowej sieci wirtualnej. Brak alternatyw dla zastępowania niektórych wymaganych tagów usługi. W poniższej tabeli opisano każdy wymagany tag usługi i jego przeznaczenie w usłudze Azure Machine Learning.

Reguła tagu usługi Ruch przychodzący lub wychodzący Cel
AzureMachineLearning Przychodzący Tworzenie, aktualizowanie i usuwanie wystąpienia obliczeniowego/klastra usługi Azure Machine Learning.
AzureMachineLearning Wychodzący Korzystanie z usług Azure Machine Learning. IntelliSense języka Python w notebookach używa portu 18881. Tworzenie, aktualizowanie i usuwanie wystąpienia obliczeniowego usługi Azure Machine Learning używa portu 5831.
AzureActiveDirectory Wychodzący Uwierzytelnianie za pomocą usługi Microsoft Entra ID.
BatchNodeManagement.region Wychodzący Komunikacja z zapleczem usługi Azure Batch dla wystąpień obliczeniowych/klastrów usługi Azure Machine Learning.
AzureResourceManager Wychodzący Tworzenie zasobów platformy Azure przy użyciu usługi Azure Machine Learning, interfejsu wiersza polecenia platformy Azure i zestawu Azure Machine Learning SDK.
AzureFrontDoor.FirstParty Wychodzący Dostęp do obrazów Docker dostarczonych przez firmę Microsoft.
MicrosoftContainerRegistry Wychodzący Dostęp do obrazów Docker dostarczonych przez firmę Microsoft. Konfiguracja routera usługi Azure Machine Learning dla usługi Azure Kubernetes Service.
AzureMonitor Wychodzący Służy do rejestrowania monitorowania i metryk w usłudze Azure Monitor. Wymagane tylko wtedy, gdy usługa Azure Monitor dla obszaru roboczego nie jest zabezpieczona. Ten ruch wychodzący służy również do rejestrowania informacji dotyczących zdarzeń pomocy technicznej.
VirtualNetwork Wychodzący Wymagane, gdy prywatne punkty końcowe znajdują się w sieci wirtualnej lub równorzędnych sieciach wirtualnych.

Uwaga

Tagi usługi jako jedyne granice zabezpieczeń nie są wystarczające. W przypadku izolacji na poziomie dzierżawy użyj prywatnych punktów końcowych, jeśli to możliwe.

Lista reguł ruchu wychodzącego specyficznego dla scenariusza

Scenariusz: Uzyskiwanie dostępu do publicznych pakietów uczenia maszynowego

Aby umożliwić instalację pakietów Python na potrzeby trenowania i wdrażania, dodaj reguły wychodzące FQDN, aby umożliwić ruch do następujących nazw hostów.

Ostrzeżenie

Reguły ruchu wychodzącego oparte na FQDN są implementowane przy użyciu usługi Azure Firewall. Jeśli używasz reguł nazwy FQDN dla ruchu wychodzącego, opłaty za usługę Azure Firewall zostaną dodane do rozliczeń. Aby uzyskać więcej informacji, zobacz Cennik.

Uwaga

Poniższa lista nie zawiera wszystkich hostów wymaganych dla wszystkich zasobów języka Python w Internecie, tylko najczęściej używanych. Jeśli na przykład potrzebujesz dostępu do repozytorium GitHub lub innego hosta, musisz zidentyfikować i dodać hosty wymagane dla tego scenariusza.

Nazwa hosta Przeznaczenie
anaconda.com
*.anaconda.com
Służy do instalowania pakietów domyślnych.
*.anaconda.org Służy do pobierania danych repozytorium.
pypi.org Służy do wyświetlania listy zależności z domyślnego indeksu, jeśli istnieje, a indeks nie jest zastępowany przez ustawienia użytkownika. Jeśli indeks jest zastępowany, należy również zezwolić na *.pythonhosted.orgwartość .
pytorch.org
*.pytorch.org
Używane w niektórych przykładach opartych na PyTorch.
*.tensorflow.org Używane przez niektóre przykłady oparte na TensorFlow.

Scenariusz: korzystanie z Visual Studio Code w wersji stacjonarnej lub internetowej z instancją obliczeniową

Jeśli planujesz używać programu Visual Studio Code z usługą Azure Machine Learning, dodaj wychodzące reguły FQDN, aby zezwolić na ruch do następujących hostów:

Uwaga

Poniższa lista nie jest pełną listą hostów wymaganych dla wszystkich zasobów programu Visual Studio Code w Internecie, tylko najczęściej używanych. Jeśli na przykład potrzebujesz dostępu do repozytorium GitHub lub innego hosta, musisz zidentyfikować i dodać hosty wymagane dla tego scenariusza. Aby uzyskać pełną listę nazw hostów, zobacz Połączenia sieciowe w Visual Studio Code.

Nazwa hosta Przeznaczenie
*.vscode.dev
*.vscode-unpkg.net
*.vscode-cdn.net
*.vscodeexperiments.azureedge.net
default.exp-tas.com
Wymagane do uzyskania dostępu do serwera vscode.dev (Visual Studio Code for the Web)
code.visualstudio.com Wymagane do pobrania i zainstalowania programu komputerowego VS Code. Ten host nie jest wymagany dla programu VS Code for the Web.
update.code.visualstudio.com
*.vo.msecnd.net
Służy do pobierania bitów serwera programu VS Code zainstalowanych na instancji obliczeniowej za pomocą skryptu konfiguracyjnego.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
Wymagane do pobrania i zainstalowania rozszerzenia programu VS Code. Te hosty umożliwiają zdalne połączenie z instancjami obliczeniowymi. Aby uzyskać więcej informacji, zobacz Zarządzanie zasobami usługi Azure Machine Learning w programie VS Code.
vscode.download.prss.microsoft.com Używane do pobrania programu Visual Studio Code CDN

Scenariusz: Używanie punktów końcowych wsadowych lub ParallelRunStep

Jeśli planujesz używać punktów końcowych wsadowych usługi Azure Machine Learning do wdrożenia lub ParallelRunStep, dodaj reguły prywatnych punktów końcowych wychodzących, aby zezwolić na ruch do następujących zasobów podrzędnych dla domyślnego konta magazynu:

  • queue
  • table
  • Prywatny punkt końcowy do usług Azure AI
  • Prywatny punkt końcowy do usługi Azure AI Search

Scenariusz: korzystanie z modeli HuggingFace

Jeśli planujesz używać modeli HuggingFace z usługą Azure Machine Learning, dodaj reguły FQDN dla ruchu wychodzącego, aby umożliwić ruch do następujących hostów:

Ostrzeżenie

Reguły ruchu wychodzącego oparte na FQDN są implementowane przy użyciu usługi Azure Firewall. Jeśli używasz reguł nazwy FQDN dla ruchu wychodzącego, opłaty za usługę Azure Firewall zostaną dodane do rozliczeń. Aby uzyskać więcej informacji, zobacz Cennik.

  • docker.io
  • *.docker.io
  • *.docker.com
  • production.cloudflare.docker.com
  • cdn.auth0.com
  • cdn-lfs.huggingface.co

Scenariusz: Włączanie dostępu z wybranych adresów IP

Jeśli chcesz włączyć dostęp z określonych adresów IP, użyj następujących akcji:

  1. Dodaj regułę wyjściową prywatnego punktu końcowego aby zezwolić na ruch do obszaru roboczego usługi Azure Machine Learning. Ta reguła umożliwia wystąpieniom obliczeniowym utworzonym w zarządzanej sieci wirtualnej dostęp do obszaru roboczego.

    Napiwek

    Nie można dodać tej reguły podczas tworzenia obszaru roboczego, ponieważ obszar roboczy jeszcze nie istnieje.

  2. Włącz dostęp do sieci publicznej do obszaru roboczego. Aby uzyskać więcej informacji, zobacz Dostęp do sieci publicznej włączony.

  3. Dodaj swoje adresy IP do zapory dla usługi Azure Machine Learning. Aby uzyskać więcej informacji, zobacz Włącz dostęp tylko z zakresów adresów IP.

    Uwaga

    Obsługiwane są tylko adresy IPv4.

Aby uzyskać więcej informacji, zobacz Konfigurowanie łącza prywatnego.

Prywatne punkty końcowe

Prywatne punkty końcowe są obecnie obsługiwane dla następujących usług platformy Azure:

  • Azure Machine Learning
  • Rejestry usługi Azure Machine Learning
  • Azure Storage (wszystkie podtypy zasobów)
  • Azure Container Registry (Rejestr Kontenerów Azure)
  • Azure Key Vault
  • Usługi platformy Azure AI
  • Azure AI Search (dawniej Cognitive Search)
  • Azure SQL Server
  • Azure Data Factory
  • Azure Cosmos DB (wszystkie podtypy zasobów)
  • Azure Event Hubs
  • Azure Redis Cache (buforowanie Redis na platformie Azure)
  • Azure Databricks
  • Azure Database dla MariaDB
  • Pojedynczy serwer usługi Azure Database for PostgreSQL
  • Azure Database for PostgreSQL serwer elastyczny
  • Azure Baza danych dla MySQL
  • Azure API Management
    • Obsługa tylko warstwy klasycznej bez wdrożenia sieci wirtualnej i warstwy Standard V2 z integracją sieci wirtualnej. Aby uzyskać więcej informacji na temat sieci wirtualnych usługi API Management, zobacz Pojęcia dotyczące sieci wirtualnej
  • Application Insights (przez PrivateLinkScopes)

Podczas tworzenia prywatnego punktu końcowego należy podać typ zasobu i podźródło , z którym łączy się punkt końcowy. Niektóre zasoby mają wiele typów i podźródła. Aby uzyskać więcej informacji, zobacz , co to jest prywatny punkt końcowy.

Podczas tworzenia prywatnego punktu końcowego dla zasobów zależności usługi Azure Machine Learning, takich jak Azure Storage, Azure Container Registry i Azure Key Vault, zasób może znajdować się w innej subskrypcji platformy Azure. Jednak zasób musi znajdować się w tej samej dzierżawie co obszar roboczy usługi Azure Machine Learning.

Prywatne punkty końcowe dla obszaru roboczego nie są tworzone automatycznie. Są one tworzone tylko wtedy, gdy pierwsze środowisko obliczeniowe zostanie utworzone lub gdy wymuszono aprowizację zarządzanej sieci wirtualnej. Aby uzyskać więcej informacji na temat wymuszania aprowizacji zarządzanej sieci wirtualnej, zobacz Ręczne aprowizowanie sieci.

Zatwierdzanie prywatnych punktów końcowych

Aby ustanowić połączenia prywatnego punktu końcowego w zarządzanych sieciach wirtualnych przy użyciu usługi Azure Machine Learning, tożsamość zarządzana obszaru roboczego, niezależnie od tego, czy przypisana przez system, czy przypisana przez użytkownika, musi mieć uprawnienia do zatwierdzania połączeń prywatnego punktu końcowego w zasobach docelowych. Wcześniej to przypisanie zostało wykonane za pomocą automatycznych przypisań ról przez usługę Azure Machine Learning. Istnieją jednak obawy dotyczące zabezpieczeń dotyczące automatycznego przypisywania roli. Aby zwiększyć bezpieczeństwo, począwszy od 30 kwietnia 2025 r., to przypisanie roli nie jest automatyczne.

Zalecamy przypisanie roli Azure AI Enterprise Network Connection Approver lub roli niestandardowej z niezbędnymi uprawnieniami dotyczącymi połączeń prywatnego punktu końcowego dla docelowych typów zasobów. Aby umożliwić usługom Azure Machine Learning zatwierdzanie połączeń do prywatnych punktów końcowych z docelowymi zasobami Azure, przypisz tę rolę do tożsamości zarządzanej w obszarze roboczym Azure Machine Learning.

Oto lista typów zasobów docelowych prywatnego punktu końcowego objętych rolą osoby zatwierdzającej połączenie sieciowe przedsiębiorstwa azure AI:

  • Azure Application Gateway
  • Azure Monitor
  • Azure AI Search
  • Centra zdarzeń
  • Azure SQL Database
  • Azure Storage
  • Obszar roboczy usługi Azure Machine Learning
  • Rejestr usługi Azure Machine Learning
  • Azure AI Foundry
  • Azure Key Vault
  • Azure Cosmos DB (Usługa bazodanowa firmy Microsoft)
  • Azure Baza danych dla MySQL
  • Baza danych Azure dla PostgreSQL
  • Usługi Azure AI
  • Usługa Azure Cache dla Redis
  • Rejestr kontenerów
  • API Management

Aby utworzyć reguły ruchu wychodzącego Prywatnego Punktu Końcowego dla docelowych typów zasobów, które nie są objęte rolą Zatwierdzającego Połączenia Sieciowego Enterprise Azure AI, zalecana jest stworzenie niestandardowej roli o określonym zakresie. Reguła powinna definiować akcje niezbędne do zatwierdzania połączeń prywatnych punktów końcowych w typach zasobów docelowych. Przykłady takich typów zasobów to Azure Data Factory, Azure Databricks i Azure Function Apps.

Aby utworzyć reguły ruchu wychodzącego prywatnego punktu końcowego do domyślnych zasobów obszaru roboczego, wymagane uprawnienia są automatycznie objęte przypisaniami ról przyznanymi podczas tworzenia obszaru roboczego, więc nie jest wymagana żadna inna akcja.

Wybierz wersję usługi Azure Firewall dla dozwolonego tylko zatwierdzonego ruchu wychodzącego

Azure Firewall jest wdrażany, jeśli tworzona jest reguła wychodzącego ruchu FQDN w trybie "tylko zatwierdzony ruch wychodzący". Opłaty za usługę Azure Firewall są uwzględniane w rozliczeniach. Domyślnie jest tworzona wersja Standardowa usługi AzureFirewall. Opcjonalnie możesz wybrać opcję użycia wersji Podstawowa. Możesz zmienić wersję zapory używaną w razie potrzeby. Aby dowiedzieć się, która wersja jest najlepsza dla Ciebie, odwiedź stronę Wybieranie odpowiedniej wersji usługi Azure Firewall.

Ważne

Zapora nie zostanie utworzona, dopóki nie dodasz reguły ruchu wychodzącego FQDN. Aby uzyskać więcej informacji na temat cen, zobacz Cennik usługi Azure Firewall i wyświetl ceny dla wersji standardowej. Filtrowanie oparte na adresach URL jest obsługiwane tylko w usłudze Azure Firewall w warstwie Premium, a nie w podstawowej lub standardowej jednostce SKU Azure Firewall. Zarządzana sieć wirtualna nie obsługuje usługi Azure Firewall w warstwie Premium.

Po wybraniu trybu zezwalania tylko na zatwierdzony ruch wychodzący zostanie wyświetlona opcja wybrania wersji usługi Azure Firewall (SKU). Wybierz pozycję Standardowa , aby użyć wersji standardowej lub Podstawowa , aby użyć wersji podstawowej. Wybierz pozycję Zapisz , aby zapisać konfigurację.

Aby skonfigurować wersję zapory z poziomu interfejsu wiersza polecenia, użyj pliku YAML i określ parametr firewall_sku. W następującym przykładzie pokazano plik YAML, który ustawia SKU zapory na basic:

name: test-ws
resource_group: test-rg
location: eastus2 
managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - category: required
    destination: 'contoso.com'
    name: contosofqdn
    type: fqdn
  firewall_sku: basic
tags: {}

Aby skonfigurować wersję zapory z zestawu SDK języka Python, ustaw firewall_sku właściwość ManagedNetwork obiektu. W poniższym przykładzie pokazano, jak ustawić SKU zapory sieciowej na basic.

network = ManagedNetwork(isolation_mode=IsolationMode.ALLOW_INTERNET_OUTBOUND,
                         firewall_sku='basic')

Cennik

Funkcja zarządzanej sieci wirtualnej usługi Azure Machine Learning jest bezpłatna. Opłaty są jednak naliczane za następujące zasoby, które są używane przez zarządzaną sieć wirtualną:

  • Azure Private Link — prywatne punkty końcowe używane do zabezpieczania komunikacji między zarządzaną siecią wirtualną a zasobami platformy Azure korzystają z usługi Azure Private Link. Aby uzyskać więcej informacji na temat cen, zobacz Cennik usługi Azure Private Link.

  • Reguły wychodzące FQDN są implementowane przy użyciu Azure Firewall. Jeśli używasz reguł nazwy FQDN dla ruchu wychodzącego, opłaty za usługę Azure Firewall zostaną dodane do rozliczeń. Domyślnie używana jest standardowa wersja usługi Azure Firewall. Aby uzyskać informacje na temat wybierania wersji podstawowej, zobacz Wybieranie wersji usługi Azure Firewall.

    Ważne

    Zapora nie zostanie utworzona, dopóki nie dodasz reguły ruchu wychodzącego FQDN. Aby uzyskać więcej informacji na temat cen, zobacz Cennik usługi Azure Firewall i wyświetl ceny dla wersji standardowej.

Ograniczenia

  • Po włączeniu izolacji zarządzanej sieci wirtualnej obszaru roboczego (zezwalanie na ruch wychodzący do internetu lub zezwalanie wyłącznie na zatwierdzony ruch wychodzący), nie można go wyłączyć.
  • Zarządzana sieć wirtualna używa połączenia prywatnego punktu końcowego w celu uzyskania dostępu do zasobów prywatnych. Nie możesz mieć prywatnego punktu końcowego i punktu końcowego usługi w tym samym czasie dla zasobów platformy Azure, takich jak konto magazynu. Zalecamy używanie prywatnych punktów końcowych we wszystkich scenariuszach.
  • Zarządzana sieć wirtualna zostanie usunięta po usunięciu obszaru roboczego.
  • Upewnij się, że nie ma blokad zakresu na zasobach i grupie zasobów usługi Azure Machine Learning. Operacje wewnętrzne związane z zarządzaną siecią wirtualną mogą być blokowane.
  • Ochrona przed eksfiltracją danych jest automatycznie włączona dla jedynego zatwierdzonego trybu ruchu wychodzącego. Jeśli dodasz inne reguły ruchu wychodzącego, takie jak do nazw FQDN, firma Microsoft nie może zagwarantować, że będziesz chroniony przed eksfiltracją danych do tych adresatów ruchu wychodzącego.
  • Tworzenie klastra obliczeniowego w innym regionie niż obszar roboczy nie jest obsługiwane w przypadku korzystania z zarządzanej sieci wirtualnej.
  • Platforma Kubernetes i dołączone maszyny wirtualne nie są obsługiwane w zarządzanej sieci wirtualnej usługi Azure Machine Learning.
  • Korzystanie z reguł ruchu wychodzącego nazwy FQDN zwiększa koszt zarządzanej sieci wirtualnej, ponieważ reguły FQDN używają usługi Azure Firewall. Aby uzyskać więcej informacji, zobacz Cennik.
  • Reguły ruchu wychodzącego FQDN obsługują tylko porty 80 i 443.
  • Jeśli wystąpienie obliczeniowe znajduje się w sieci zarządzanej i nie ma skonfigurowanego publicznego adresu IP, użyj polecenia az ml compute connect-ssh, aby nawiązać z nim połączenie przy użyciu protokołu SSH.
  • W przypadku korzystania z zarządzanej sieci wirtualnej, nie można wdrażać zasobów obliczeniowych wewnątrz twojej własnej sieci wirtualnej. Zasoby obliczeniowe można tworzyć tylko w zarządzanej sieci wirtualnej.
  • Jeśli sieć zarządzana jest skonfigurowana tak, aby zezwalała tylko na zatwierdzony ruch wychodzący, nie można użyć reguły FQDN w celu uzyskania dostępu do kont usługi Azure Storage. Zamiast tego należy użyć prywatnego punktu końcowego.
  • Upewnij się, że w zasadach niestandardowych utworzono prywatne punkty końcowe zarządzane przez firmę Microsoft dla zarządzanej sieci wirtualnej.

Migracja zasobów obliczeniowych

Jeśli masz istniejący obszar roboczy i chcesz włączyć zarządzaną sieć wirtualną, obecnie nie ma obsługiwanej ścieżki migracji dla istniejących zarządzanych zasobów obliczeniowych. Należy usunąć wszystkie istniejące zarządzane zasoby obliczeniowe i utworzyć je ponownie po włączeniu zarządzanej sieci wirtualnej. Poniższa lista zawiera zasoby obliczeniowe, które należy usunąć i utworzyć ponownie:

  • Klaster obliczeniowy
  • Wystąpienie obliczeniowe
  • Zarządzane punkty końcowe online

Następne kroki