Udostępnij za pośrednictwem


Zabezpieczanie środowiska trenowania usługi Azure Machine Learning za pomocą sieci wirtualnych

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

Napiwek

Zamiast kroków opisanych w tym artykule można użyć zarządzanych sieci wirtualnych usługi Azure Machine Learning. W przypadku zarządzanej sieci wirtualnej usługa Azure Machine Learning obsługuje zadanie izolacji sieci dla obszaru roboczego i zarządzanych zasobów obliczeniowych. Możesz również dodać prywatne punkty końcowe dla zasobów wymaganych przez obszar roboczy, na przykład konto usługi Azure Storage. Aby uzyskać więcej informacji, zobacz Obszar roboczy zarządzana izolacja sieci.

Wystąpienie obliczeniowe usługi Azure Machine Learning, bezserwerowe zasoby obliczeniowe i klaster obliczeniowy mogą służyć do bezpiecznego trenowania modeli w usłudze Azure Virtual Network. Podczas planowania środowiska można skonfigurować wystąpienie obliczeniowe/klaster lub zasoby obliczeniowe bezserwerowe z publicznym adresem IP lub bez tego adresu. Ogólne różnice między nimi są następujące:

  • Brak publicznego adresu IP: zmniejsza koszty, ponieważ nie ma tych samych wymagań dotyczących zasobów sieciowych. Zwiększa bezpieczeństwo, usuwając wymóg ruchu przychodzącego z Internetu. Istnieją jednak dodatkowe zmiany konfiguracji wymagane do włączenia dostępu wychodzącego do wymaganych zasobów (identyfikator entra firmy Microsoft, usługa Azure Resource Manager itp.).
  • Publiczny adres IP: działa domyślnie, ale kosztuje więcej ze względu na dodatkowe zasoby sieciowe platformy Azure. Wymaga komunikacji przychodzącej z usługi Azure Machine Learning za pośrednictwem publicznego Internetu.

Poniższa tabela zawiera różnice między tymi konfiguracjami:

Konfigurowanie Z publicznym adresem IP Bez publicznego adresu IP
Ruch przychodzący AzureMachineLearning tag usługi. Brak
Ruch wychodzący Domyślnie dostęp do publicznego Internetu nie ma żadnych ograniczeń.
Możesz ograniczyć dostęp do tych elementów przy użyciu sieciowej grupy zabezpieczeń lub zapory.
Domyślnie można uzyskać dostęp do sieci publicznej przy użyciu domyślnego dostępu wychodzącego udostępnianego przez platformę Azure.
Zalecamy użycie bramy translatora adresów sieci wirtualnej lub zapory, jeśli konieczne jest kierowanie ruchu wychodzącego do wymaganych zasobów w Internecie.
Zasoby sieciowe platformy Azure Publiczny adres IP, moduł równoważenia obciążenia, interfejs sieciowy Brak

Możesz również użyć usługi Azure Databricks lub HDInsight do trenowania modeli w sieci wirtualnej.

Ważne

Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Ten artykuł jest częścią serii dotyczącej zabezpieczania przepływu pracy usługi Azure Machine Learning. Zobacz inne artykuły z tej serii:

Aby zapoznać się z samouczkiem dotyczącym tworzenia bezpiecznego obszaru roboczego, zobacz Samouczek: tworzenie bezpiecznego obszaru roboczego, szablonu Bicep lub szablonu narzędzia Terraform.

Z tego artykułu dowiesz się, jak zabezpieczyć następujące szkoleniowe zasoby obliczeniowe w sieci wirtualnej:

  • Klaster obliczeniowy usługi Azure Machine Learning
  • Wystąpienie obliczeniowe usługi Azure Machine Learning
  • Przetwarzanie bezserwerowe w usłudze Azure Machine Learning
  • Azure Databricks
  • Maszyna wirtualna
  • Klaster usługi HDInsight

Wymagania wstępne

  • Przeczytaj artykuł Omówienie zabezpieczeń sieci, aby poznać typowe scenariusze sieci wirtualnej i ogólną architekturę sieci wirtualnej.

  • Istniejąca sieć wirtualna i podsieć do użycia z zasobami obliczeniowymi. Ta sieć wirtualna musi znajdować się w tej samej subskrypcji co obszar roboczy usługi Azure Machine Learning.

    • Zalecamy umieszczenie kont magazynu używanych przez obszar roboczy i zadania szkoleniowe w tym samym regionie świadczenia usługi Azure, który ma być używany dla wystąpień obliczeniowych, bezserwerowych zasobów obliczeniowych i klastrów. Jeśli nie są one w tym samym regionie świadczenia usługi Azure, możesz ponieść koszty transferu danych i zwiększyć opóźnienie sieci.
    • Upewnij się, że w Twojej sieci wirtualnej jest dozwolona komunikacja za pośrednictwem protokołu WebSocket do *.instances.azureml.net i *.instances.azureml.ms. Elementy WebSocket są używane przez program Jupyter w wystąpieniach obliczeniowych.
  • Istniejąca podsieć w sieci wirtualnej. Ta podsieć jest używana podczas tworzenia wystąpień obliczeniowych, klastrów i węzłów na potrzeby obliczeń bezserwerowych.

    • Upewnij się, że podsieć nie jest delegowana do innych usług platformy Azure.
    • Upewnij się, że podsieć zawiera wystarczającą ilość wolnych adresów IP. Każde wystąpienie obliczeniowe wymaga jednego adresu IP. Każdy węzeł w klastrze obliczeniowym i każdy bezserwerowy węzeł obliczeniowy wymaga jednego adresu IP.
  • Jeśli masz własny serwer DNS, zalecamy używanie przekazywania DNS w celu rozpoznawania w pełni kwalifikowanych nazw domen (FQDN) wystąpień obliczeniowych i klastrów. Aby uzyskać więcej informacji, zobacz Use a custom DNS with Azure Machine Learning (Używanie niestandardowego systemu DNS w usłudze Azure Machine Learning).

  • Aby wdrożyć zasoby w sieci wirtualnej lub podsieci, konto użytkownika musi mieć uprawnienia do następujących akcji w kontroli dostępu opartej na rolach platformy Azure (Azure RBAC):

    • "Microsoft.Network/*/read" w zasobie sieci wirtualnej. To uprawnienie nie jest wymagane w przypadku wdrożeń szablonów usługi Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" w zasobie sieci wirtualnej.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" w zasobie podsieci.

    Aby uzyskać więcej informacji na temat kontroli dostępu opartej na rolach platformy Azure z siecią, zobacz Wbudowane role sieciowe

Ograniczenia

  • Wdrożenie klastra obliczeniowego/wystąpienia i bezserwerowego środowiska obliczeniowego w sieci wirtualnej nie jest obsługiwane w usłudze Azure Lighthouse.

  • Port 445 musi być otwarty w celu komunikacji sieci prywatnej między wystąpieniami obliczeniowymi a domyślnym kontem magazynu podczas trenowania. Jeśli na przykład obliczenia znajdują się w jednej sieci wirtualnej, a konto magazynu znajduje się w innej sieci, nie blokuj portu 445 do sieci wirtualnej konta magazynu.

Klaster obliczeniowy w innej sieci wirtualnej/regionie z obszaru roboczego

Ważne

Nie można utworzyć wystąpienia obliczeniowego w innym regionie/sieci wirtualnej, tylko w klastrze obliczeniowym.

Aby utworzyć klaster obliczeniowy w sieci wirtualnej platformy Azure w innym regionie niż sieć wirtualna obszaru roboczego, istnieje kilka opcji umożliwiających komunikację między dwiema sieciami wirtualnymi.

Ważne

Niezależnie od wybranej metody należy również utworzyć sieć wirtualną dla klastra obliczeniowego; Usługa Azure Machine Learning nie utworzy jej dla Ciebie.

Należy również zezwolić domyślnemu kontu magazynu, usłudze Azure Container Registry i usłudze Azure Key Vault na dostęp do sieci wirtualnej dla klastra obliczeniowego. Istnieje wiele sposobów, aby to osiągnąć. Można na przykład utworzyć prywatny punkt końcowy dla każdego zasobu w sieci wirtualnej dla klastra obliczeniowego lub użyć komunikacji równorzędnej sieci wirtualnej, aby umożliwić sieci wirtualnej obszaru roboczego dostęp do sieci wirtualnej klastra obliczeniowego.

Scenariusz: komunikacja równorzędna sieci wirtualnych

  1. Skonfiguruj obszar roboczy do korzystania z usługi Azure Virtual Network. Aby uzyskać więcej informacji, zobacz Zabezpieczanie zasobów obszaru roboczego.

  2. Utwórz drugą sieć wirtualną platformy Azure, która będzie używana dla klastrów obliczeniowych. Może on znajdować się w innym regionie świadczenia usługi Azure niż używany dla obszaru roboczego.

  3. Skonfiguruj komunikację równorzędną sieci wirtualnych między dwiema sieciami wirtualnymi.

    Napiwek

    Przed kontynuowaniem poczekaj, aż stan komunikacji równorzędnej sieci wirtualnej ma wartość Połączono .

  4. Zmodyfikuj strefę DNS, privatelink.api.azureml.ms aby dodać link do sieci wirtualnej dla klastra obliczeniowego. Ta strefa jest tworzona przez obszar roboczy usługi Azure Machine Learning, gdy używa prywatnego punktu końcowego do udziału w sieci wirtualnej.

    1. Dodaj nowy link do sieci wirtualnej do strefy DNS. Możesz to zrobić na wiele sposobów:

      • W witrynie Azure Portal przejdź do strefy DNS i wybierz pozycję Łącza sieci wirtualnej. Następnie wybierz pozycję + Dodaj i wybierz sieć wirtualną utworzoną dla klastrów obliczeniowych.
      • W interfejsie wiersza polecenia platformy az network private-dns link vnet create Azure użyj polecenia . Aby uzyskać więcej informacji, zobacz az network private-dns link vnet create.
      • W programie Azure PowerShell użyj New-AzPrivateDnsVirtualNetworkLink polecenia . Aby uzyskać więcej informacji, zobacz New-AzPrivateDnsVirtualNetworkLink.
  5. Powtórz poprzedni krok i kroki podrzędne dla privatelink.notebooks.azure.net strefy DNS.

  6. Skonfiguruj następujące zasoby platformy Azure, aby zezwolić na dostęp z obu sieci wirtualnych.

    • Domyślne konto magazynu dla obszaru roboczego.
    • Rejestr kontenerów platformy Azure dla obszaru roboczego.
    • Usługa Azure Key Vault dla obszaru roboczego.

    Napiwek

    Istnieje wiele sposobów konfigurowania tych usług w celu umożliwienia dostępu do sieci wirtualnych. Można na przykład utworzyć prywatny punkt końcowy dla każdego zasobu w obu sieciach wirtualnych. Możesz też skonfigurować zasoby, aby zezwolić na dostęp z obu sieci wirtualnych.

  7. Utwórz klaster obliczeniowy, tak jak zwykle w przypadku korzystania z sieci wirtualnej, ale wybierz sieć wirtualną utworzoną dla klastra obliczeniowego. Jeśli sieć wirtualna znajduje się w innym regionie, wybierz ten region podczas tworzenia klastra obliczeniowego.

    Ostrzeżenie

    W przypadku ustawiania regionu, jeśli jest to inny region niż obszar roboczy lub magazyny danych, może wystąpić zwiększone opóźnienie sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.

Scenariusz: Prywatny punkt końcowy

  1. Skonfiguruj obszar roboczy do korzystania z usługi Azure Virtual Network. Aby uzyskać więcej informacji, zobacz Zabezpieczanie zasobów obszaru roboczego.

  2. Utwórz drugą sieć wirtualną platformy Azure, która będzie używana dla klastrów obliczeniowych. Może on znajdować się w innym regionie świadczenia usługi Azure niż używany dla obszaru roboczego.

  3. Utwórz nowy prywatny punkt końcowy dla obszaru roboczego w sieci wirtualnej, który będzie zawierać klaster obliczeniowy.

    • Aby dodać nowy prywatny punkt końcowy przy użyciu witryny Azure Portal, wybierz swój obszar roboczy, a następnie wybierz pozycję Sieć. Wybierz pozycję Połączenia prywatnego punktu końcowego i prywatny punkt końcowy i użyj pól, aby utworzyć nowy prywatny punkt końcowy.

      • Po wybraniu pozycji Region wybierz ten sam region co sieć wirtualna.
      • Podczas wybierania typu zasobu użyj wartości Microsoft.MachineLearningServices/workspaces.
      • Ustaw wartość Zasób na nazwę obszaru roboczego.
      • Ustaw sieć wirtualną i podsieć na sieć wirtualną i podsieć utworzoną dla klastrów obliczeniowych.

      Na koniec wybierz pozycję Utwórz , aby utworzyć prywatny punkt końcowy.

    • Aby dodać nowy prywatny punkt końcowy przy użyciu interfejsu wiersza polecenia platformy Azure, użyj polecenia az network private-endpoint create. Aby zapoznać się z przykładem użycia tego polecenia, zobacz Konfigurowanie prywatnego punktu końcowego dla obszaru roboczego usługi Azure Machine Learning.

  4. Utwórz klaster obliczeniowy, tak jak zwykle w przypadku korzystania z sieci wirtualnej, ale wybierz sieć wirtualną utworzoną dla klastra obliczeniowego. Jeśli sieć wirtualna znajduje się w innym regionie, wybierz ten region podczas tworzenia klastra obliczeniowego.

    Ostrzeżenie

    W przypadku ustawiania regionu, jeśli jest to inny region niż obszar roboczy lub magazyny danych, może wystąpić zwiększone opóźnienie sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.

Wystąpienie obliczeniowe/klaster lub bezserwerowe obliczenia bez publicznego adresu IP

Ważne

Te informacje są prawidłowe tylko w przypadku korzystania z usługi Azure Virtual Network. Jeśli używasz zarządzanej sieci wirtualnej, nie można wdrożyć zasobów obliczeniowych w usłudze Azure Virtual Network. Aby uzyskać informacje na temat korzystania z zarządzanej sieci wirtualnej, zobacz Zarządzane zasoby obliczeniowe z siecią zarządzaną.

Ważne

Jeśli używasz wystąpień obliczeniowych lub klastrów obliczeniowych skonfigurowanych dla żadnego publicznego adresu IP bez zgody na korzystanie z wersji zapoznawczej, musisz je usunąć i ponownie utworzyć po 20 stycznia 2023 r. (gdy funkcja jest ogólnie dostępna).

Jeśli wcześniej używano wersji zapoznawczej żadnego publicznego adresu IP, może być również konieczne zmodyfikowanie ruchu przychodzącego i wychodzącego, ponieważ wymagania zostały zmienione pod kątem ogólnej dostępności:

  • Wymagania dotyczące ruchu wychodzącego — dwa dodatkowe wychodzące, które są używane tylko do zarządzania wystąpieniami obliczeniowymi i klastrami. Miejsce docelowe tych tagów usługi jest własnością firmy Microsoft:
    • AzureMachineLearning tag usługi na porcie UDP 5831.
    • BatchNodeManagement tag usługi na porcie TCP 443.

Poniższe konfiguracje są dodatkiem do tych wymienionych w sekcji Wymagania wstępne i są specyficzne dla tworzenia wystąpień obliczeniowych/klastrów skonfigurowanych dla żadnego publicznego adresu IP. Mają one również zastosowanie do obliczeń bezserwerowych:

  • Aby komunikować się z usługami Azure Machine Learning z sieci wirtualnej, musisz użyć prywatnego punktu końcowego obszaru roboczego dla zasobu obliczeniowego. Aby uzyskać więcej informacji, zobacz Konfigurowanie prywatnego punktu końcowego dla obszaru roboczego usługi Azure Machine Learning.

  • W sieci wirtualnej zezwól na ruch wychodzący do następujących tagów usługi lub w pełni kwalifikowanych nazw domen (FQDN):

    Tag usługi Protokół Port Uwagi
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Komunikacja z usługą Azure Machine Learning.
    BatchNodeManagement.<region> DOWOLNE 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Komunikacja w usłudze Azure Batch. Wystąpienie obliczeniowe i klaster obliczeniowy są implementowane przy użyciu usługi Azure Batch.
    Storage.<region> TCP 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Ten tag usługi służy do komunikowania się z kontem usługi Azure Storage używanym przez usługę Azure Batch.

    Ważne

    Dostęp wychodzący do Storage.<region> programu może być potencjalnie używany do eksfiltrowania danych z obszaru roboczego. Za pomocą zasad punktu końcowego usługi można wyeliminować tę lukę w zabezpieczeniach. Aby uzyskać więcej informacji, zobacz artykuł Ochrona przed eksfiltracją danych w usłudze Azure Machine Learning.

    Nazwa FQDN Protokół Port Uwagi
    <region>.tundra.azureml.ms UDP 5831 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning.
    graph.windows.net TCP 443 Komunikacja z interfejsem API programu Microsoft Graph.
    *.instances.azureml.ms TCP 443/8787/18881 Komunikacja z usługą Azure Machine Learning.
    *.<region>.batch.azure.com DOWOLNE 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Komunikacja w usłudze Azure Batch.
    *.<region>.service.batch.azure.com DOWOLNE 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Komunikacja w usłudze Azure Batch.
    *.blob.core.windows.net TCP 443 Komunikacja z usługą Azure Blob Storage.
    *.queue.core.windows.net TCP 443 Komunikacja z usługą Azure Queue Storage.
    *.table.core.windows.net TCP 443 Komunikacja z usługą Azure Table Storage.
  • Domyślnie wystąpienie obliczeniowe/klaster skonfigurowany dla żadnego publicznego adresu IP nie ma dostępu wychodzącego do Internetu. Jeśli możesz uzyskać dostęp do Internetu z niego, jest to spowodowane domyślnym dostępem wychodzącym platformy Azure i masz sieciową grupę zabezpieczeń, która zezwala na ruch wychodzący do Internetu. Nie zalecamy jednak używania domyślnego dostępu wychodzącego. Jeśli potrzebujesz dostępu wychodzącego do Internetu, zalecamy użycie reguł zapory i ruchu wychodzącego lub bramy translatora adresów sieciowych i grup usług sieciowych, aby zamiast tego zezwalać na ruch wychodzący.

    Aby uzyskać więcej informacji na temat ruchu wychodzącego używanego przez usługę Azure Machine Learning, zobacz następujące artykuły:

    Aby uzyskać więcej informacji na temat tagów usługi, które mogą być używane z usługą Azure Firewall, zobacz artykuł Tagi usługi sieci wirtualnej.

Użyj poniższych informacji, aby utworzyć wystąpienie obliczeniowe lub klaster bez publicznego adresu IP:

W poleceniu zastąp az ml compute create następujące wartości:

  • rg: grupa zasobów, w której zostaną utworzone zasoby obliczeniowe.
  • ws: nazwa obszaru roboczego usługi Azure Machine Learning.
  • yourvnet: Sieć wirtualna platformy Azure.
  • yoursubnet: podsieć do użycia na potrzeby obliczeń.
  • AmlComputelub ComputeInstance: Określanie tworzenia AmlCompute klastra obliczeniowego. ComputeInstance tworzy wystąpienie obliczeniowe.
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False

# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False

Skorzystaj z poniższych informacji, aby skonfigurować bezserwerowe węzły obliczeniowe bez publicznego adresu IP w sieci wirtualnej dla danego obszaru roboczego:

Ważne

Jeśli używasz bezserwerowego wystąpienia obliczeniowego publicznego adresu IP, a obszar roboczy używa listy dozwolonych adresów IP, musisz dodać wychodzący prywatny punkt końcowy do obszaru roboczego. Przetwarzanie bezserwerowe musi komunikować się z obszarem roboczym, ale jeśli skonfigurowano go pod kątem braku publicznego adresu IP, używa domyślnego ruchu wychodzącego platformy Azure na potrzeby dostępu do Internetu. Publiczny adres IP dla tego ruchu wychodzącego jest dynamiczny i nie można go dodać do listy dozwolonych adresów IP. Utworzenie wychodzącego prywatnego punktu końcowego do obszaru roboczego umożliwia ruch z bezserwerowego środowiska obliczeniowego powiązanego z obszarem roboczym w celu obejścia listy dozwolonych adresów IP.

Utwórz obszar roboczy:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Aktualizowanie obszaru roboczego:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Wystąpienie obliczeniowe/klaster lub bezserwerowe obliczenia z publicznym adresem IP

Ważne

Te informacje są prawidłowe tylko w przypadku korzystania z usługi Azure Virtual Network. Jeśli używasz zarządzanej sieci wirtualnej, nie można wdrożyć zasobów obliczeniowych w usłudze Azure Virtual Network. Aby uzyskać informacje na temat korzystania z zarządzanej sieci wirtualnej, zobacz Zarządzane zasoby obliczeniowe z siecią zarządzaną.

Poniższe konfiguracje są dodatkiem do tych wymienionych w sekcji Wymagania wstępne i są specyficzne dla tworzenia wystąpień obliczeniowych/klastrów, które mają publiczny adres IP. Mają one również zastosowanie do obliczeń bezserwerowych:

  • W przypadku umieszczenia wielu wystąpień obliczeniowych/klastrów w jednej sieci wirtualnej może być konieczne zażądanie zwiększenia limitu przydziału dla co najmniej jednego zasobu. Wystąpienie obliczeniowe lub klaster usługi Machine Learning automatycznie przydziela zasoby sieciowe w grupie zasobów zawierającej sieć wirtualną. Dla każdego wystąpienia obliczeniowego lub klastra usługa przydziela następujące zasoby:

    • Sieciowa grupa zabezpieczeń jest tworzona automatycznie. Ta sieciowa grupa zabezpieczeń zezwala na przychodzący ruch TCP na porcie 44224 z tagu AzureMachineLearning usługi.

      Ważne

      Wystąpienie obliczeniowe i klaster obliczeniowy automatycznie tworzą sieciową grupę zabezpieczeń z wymaganymi regułami.

      Jeśli masz inną sieciową grupę zabezpieczeń na poziomie podsieci, reguły w sieciowej grupie zabezpieczeń na poziomie podsieci nie mogą powodować konfliktu z regułami w automatycznie utworzonej sieciowej grupie zabezpieczeń.

      Aby dowiedzieć się, jak sieciowe grupy zabezpieczeń filtrować ruch sieciowy, zobacz Jak sieciowe grupy zabezpieczeń filtrować ruch sieciowy.

    • Jeden moduł równoważenia obciążenia

    W przypadku klastrów obliczeniowych te zasoby są usuwane za każdym razem, gdy klaster jest skalowany w dół do 0 węzłów i tworzony podczas skalowania w górę.

    W przypadku wystąpienia obliczeniowego te zasoby są zachowywane do momentu usunięcia wystąpienia. Zatrzymanie wystąpienia nie powoduje usunięcia zasobów.

    Ważne

    Te zasoby są ograniczone przez limity zasobów subskrypcji. Jeśli grupa zasobów sieci wirtualnej jest zablokowana, usunięcie klastra obliczeniowego/wystąpienia zakończy się niepowodzeniem. Nie można usunąć modułu równoważenia obciążenia do momentu usunięcia klastra obliczeniowego/wystąpienia. Upewnij się również, że nie ma przypisania usługi Azure Policy, które uniemożliwia tworzenie sieciowych grup zabezpieczeń.

  • W sieci wirtualnej zezwól na przychodzący ruch TCP na porcie 44224 z tagu AzureMachineLearning usługi.

    Ważne

    Wystąpienie obliczeniowe/klaster jest dynamicznie przypisywany adres IP podczas jego tworzenia. Ponieważ adres nie jest znany przed utworzeniem, a dostęp przychodzący jest wymagany w ramach procesu tworzenia, nie można go statycznie przypisać w zaporze. Zamiast tego, jeśli używasz zapory z siecią wirtualną, musisz utworzyć trasę zdefiniowaną przez użytkownika, aby zezwolić na ten ruch przychodzący.

  • W sieci wirtualnej zezwól na ruch wychodzący do następujących tagów usługi:

    Tag usługi Protokół Port Uwagi
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Komunikacja z usługą Azure Machine Learning.
    BatchNodeManagement.<region> DOWOLNE 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Komunikacja w usłudze Azure Batch. Wystąpienie obliczeniowe i klaster obliczeniowy są implementowane przy użyciu usługi Azure Batch.
    Storage.<region> TCP 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Ten tag usługi służy do komunikowania się z kontem usługi Azure Storage używanym przez usługę Azure Batch.

    Ważne

    Dostęp wychodzący do Storage.<region> programu może być potencjalnie używany do eksfiltrowania danych z obszaru roboczego. Za pomocą zasad punktu końcowego usługi można wyeliminować tę lukę w zabezpieczeniach. Aby uzyskać więcej informacji, zobacz artykuł Ochrona przed eksfiltracją danych w usłudze Azure Machine Learning.

    Nazwa FQDN Protokół Port Uwagi
    <region>.tundra.azureml.ms UDP 5831 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning.
    graph.windows.net TCP 443 Komunikacja z interfejsem API programu Microsoft Graph.
    *.instances.azureml.ms TCP 443/8787/18881 Komunikacja z usługą Azure Machine Learning.
    *.<region>.batch.azure.com DOWOLNE 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Komunikacja w usłudze Azure Batch.
    *.<region>.service.batch.azure.com DOWOLNE 443 Zastąp element <region> regionem platformy Azure zawierającym obszar roboczy usługi Azure Machine Learning. Komunikacja w usłudze Azure Batch.
    *.blob.core.windows.net TCP 443 Komunikacja z usługą Azure Blob Storage.
    *.queue.core.windows.net TCP 443 Komunikacja z usługą Azure Queue Storage.
    *.table.core.windows.net TCP 443 Komunikacja z usługą Azure Table Storage.

Użyj poniższych informacji, aby utworzyć wystąpienie obliczeniowe lub klaster z publicznym adresem IP w sieci wirtualnej:

W poleceniu zastąp az ml compute create następujące wartości:

  • rg: grupa zasobów, w której zostaną utworzone zasoby obliczeniowe.
  • ws: nazwa obszaru roboczego usługi Azure Machine Learning.
  • yourvnet: Sieć wirtualna platformy Azure.
  • yoursubnet: podsieć do użycia na potrzeby obliczeń.
  • AmlComputelub ComputeInstance: Określanie tworzenia AmlCompute klastra obliczeniowego. ComputeInstance tworzy wystąpienie obliczeniowe.
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute

# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance

Skorzystaj z poniższych informacji, aby skonfigurować bezserwerowe węzły obliczeniowe z publicznym adresem IP w sieci wirtualnej dla danego obszaru roboczego:

Utwórz obszar roboczy:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Aktualizowanie obszaru roboczego:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Azure Databricks

  • Sieć wirtualna musi znajdować się w tej samej subskrypcji i regionie co obszar roboczy usługi Azure Machine Learning.
  • Jeśli konta usługi Azure Storage dla obszaru roboczego są również zabezpieczone w sieci wirtualnej, muszą znajdować się w tej samej sieci wirtualnej co klaster usługi Azure Databricks.
  • Oprócz podsieci databricks-private i databricks-public używanych przez usługę Azure Databricks wymagana jest również domyślna podsieć utworzona dla sieci wirtualnej.
  • Usługa Azure Databricks nie używa prywatnego punktu końcowego do komunikowania się z siecią wirtualną.

Aby uzyskać szczegółowe informacje na temat korzystania z usługi Azure Databricks z siecią wirtualną, zobacz Deploy Azure Databricks in your Azure Virtual Network (Wdrażanie usługi Azure Databricks w usłudze Azure Virtual Network).

Maszyna wirtualna lub klaster usługi HDInsight

W tej sekcji dowiesz się, jak używać maszyny wirtualnej lub klastra usługi Azure HDInsight w sieci wirtualnej z obszarem roboczym.

Tworzenie maszyny wirtualnej lub klastra usługi HDInsight

Ważne

Usługa Azure Machine Learning obsługuje tylko maszyny wirtualne z systemem Ubuntu.

Utwórz maszynę wirtualną lub klaster usługi HDInsight przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure i umieść klaster w sieci wirtualnej platformy Azure. Aby uzyskać więcej informacji, zobacz następujące artykuły:

Konfigurowanie portów sieciowych

Zezwalaj usłudze Azure Machine Learning na komunikowanie się z portem SSH na maszynie wirtualnej lub klastrze, skonfiguruj wpis źródłowy dla sieciowej grupy zabezpieczeń. Port SSH jest zwykle portem 22. Aby zezwolić na ruch z tego źródła, wykonaj następujące czynności:

  1. Z listy rozwijanej Źródło wybierz pozycję Tag usługi.

  2. Z listy rozwijanej Tag usługi źródłowej wybierz pozycję AzureMachineLearning.

    Zrzut ekranu przedstawiający reguły ruchu przychodzącego służące do eksperymentowania na maszynie wirtualnej lub klastrze usługi HDInsight w sieci wirtualnej.

  3. Z listy rozwijanej Zakresy portów źródłowych wybierz pozycję *.

  4. Z listy rozwijanej Miejsce docelowe wybierz pozycję Dowolne.

  5. Z listy rozwijanej Zakresy portów docelowych wybierz pozycję 22.

  6. W obszarze Protokół wybierz pozycję Dowolne.

  7. W obszarze Akcja wybierz pozycję Zezwalaj.

Zachowaj domyślne reguły ruchu wychodzącego dla sieciowej grupy zabezpieczeń. Aby uzyskać więcej informacji, zobacz domyślne reguły zabezpieczeń w grupach zabezpieczeń.

Jeśli nie chcesz używać domyślnych reguł ruchu wychodzącego i chcesz ograniczyć dostęp wychodzący sieci wirtualnej, zapoznaj się z sekcją wymaganą publicznego dostępu do Internetu.

Dołączanie maszyny wirtualnej lub klastra usługi HDInsight

Dołącz maszynę wirtualną lub klaster usługi HDInsight do obszaru roboczego usługi Azure Machine Learning. Aby uzyskać więcej informacji, zobacz Zarządzanie zasobami obliczeniowymi na potrzeby trenowania i wdrażania modelu w programie Studio.

Wymagany publiczny dostęp do Internetu do trenowania modeli

Ważne

Chociaż w poprzednich sekcjach tego artykułu opisano konfiguracje wymagane do tworzenia zasobów obliczeniowych, informacje o konfiguracji w tej sekcji są wymagane do używania tych zasobów do trenowania modeli.

Usługa Azure Machine Learning wymaga dostępu do publicznego Internetu zarówno dla ruchu przychodzącego, jak i wychodzącego. Poniższe tabele zawierają omówienie wymaganego dostępu i celu, jaki służy. W przypadku tagów usługi kończących się na elemencie .regionzastąp region element regionem świadczenia usługi zawierającym obszar roboczy. Na przykład : Storage.westus

Napiwek

Wymagana karta zawiera wymaganą konfigurację ruchu przychodzącego i wychodzącego. Karta sytuacyjna zawiera opcjonalne konfiguracje ruchu przychodzącego i wychodzącego wymagane przez określone konfiguracje, które można włączyć.

Kierunek Protokół i
porty
Tag usługi Purpose
Wychodzący TCP: 80, 443 AzureActiveDirectory Uwierzytelnianie za pomocą usługi Microsoft Entra ID.
Wychodzący TCP: 443, 18881
UDP: 5831
AzureMachineLearning Korzystanie z usług Azure Machine Learning.
Funkcja IntelliSense języka Python w notesach używa portu 18881.
Tworzenie, aktualizowanie i usuwanie wystąpienia obliczeniowego usługi Azure Machine Learning używa portu 5831.
Wychodzący DOWOLNY: 443 BatchNodeManagement.region Komunikacja z zapleczem usługi Azure Batch dla wystąpień obliczeniowych/klastrów usługi Azure Machine Learning.
Wychodzący TCP: 443 AzureResourceManager Tworzenie zasobów platformy Azure przy użyciu usługi Azure Machine Learning, interfejsu wiersza polecenia platformy Azure i zestawu Azure Machine Learning SDK.
Wychodzący TCP: 443 Storage.region Uzyskiwanie dostępu do danych przechowywanych na koncie usługi Microsoft Azure Storage dla klastra obliczeniowego i wystąpienia obliczeniowego. Aby uzyskać informacje na temat zapobiegania eksfiltracji danych za pośrednictwem tego ruchu wychodzącego, zobacz Ochrona eksfiltracji danych.
Wychodzący TCP: 443 AzureFrontDoor.FrontEnd
* Nie jest wymagane na platformie Microsoft Azure obsługiwanej przez firmę 21Vianet.
Globalny punkt wejścia dla usługiAzure Machine Learning studio. Przechowywanie obrazów i środowisk dla rozwiązania AutoML. Aby uzyskać informacje na temat zapobiegania eksfiltracji danych za pośrednictwem tego ruchu wychodzącego, zobacz Ochrona eksfiltracji danych.
Wychodzący TCP: 443 MicrosoftContainerRegistry.region
Pamiętaj, że ten tag ma zależność od tagu AzureFrontDoor.FirstParty
Uzyskiwanie dostępu do obrazów platformy Docker dostarczonych przez firmę Microsoft. Konfiguracja routera usługi Azure Machine Learning dla usługi Azure Kubernetes Service.

Napiwek

Jeśli potrzebujesz adresów IP zamiast tagów usługi, użyj jednej z następujących opcji:

Adresy IP mogą się okresowo zmieniać.

Może być również konieczne zezwolenie na ruch wychodzący do programu Visual Studio Code i witryn innych niż Microsoft na potrzeby instalacji pakietów wymaganych przez projekt uczenia maszynowego. W poniższej tabeli wymieniono często używane repozytoria na potrzeby uczenia maszynowego:

Nazwa hosta Purpose
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ść .
cloud.r-project.org Używany podczas instalowania pakietów CRAN na potrzeby programowania w języku R.
*.pytorch.org Używane przez niektóre przykłady na podstawie PyTorch.
*.tensorflow.org Używane przez niektóre przykłady na podstawie biblioteki Tensorflow.
code.visualstudio.com Wymagane do pobrania i zainstalowania programu Visual Studio Code desktop. Nie jest to wymagane dla sieci Web programu Visual Studio Code.
update.code.visualstudio.com
*.vo.msecnd.net
Służy do pobierania bitów serwera programu Visual Studio Code zainstalowanych w wystąpieniu obliczeniowym za pomocą skryptu instalacji.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
Wymagane do pobrania i zainstalowania rozszerzeń programu Visual Studio Code. Te hosty umożliwiają zdalne połączenie z wystąpieniami obliczeniowymi udostępnianymi przez rozszerzenie usługi Azure ML dla programu Visual Studio Code. Aby uzyskać więcej informacji, zobacz Połączenie z wystąpieniem obliczeniowym usługi Azure Machine Learning w programie Visual Studio Code.
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* Służy do pobierania bitów serwera websocket, które są instalowane w wystąpieniu obliczeniowym. Serwer websocket służy do przesyłania żądań od klienta programu Visual Studio Code (aplikacji klasycznej) do serwera programu Visual Studio Code uruchomionego w wystąpieniu obliczeniowym.

Uwaga

W przypadku korzystania z rozszerzenia VS Code dla usługi Azure Machine Learning zdalne wystąpienie obliczeniowe będzie wymagać dostępu do repozytoriów publicznych w celu zainstalowania pakietów wymaganych przez rozszerzenie. Jeśli wystąpienie obliczeniowe wymaga serwera proxy dla dostępu do tych publicznych repozytoriów lub Internetu, należy ustawić i wyeksportować zmienne środowiskowe HTTP_PROXY i HTTPS_PROXY w ~/.bashrc pliku wystąpienia obliczeniowego. Ten proces można zautomatyzować w czasie aprowizacji przy użyciu skryptu niestandardowego.

W przypadku korzystania z usługi Azure Kubernetes Service (AKS) z usługą Azure Machine Learning zezwól na następujący ruch do sieci wirtualnej usługi AKS:

Aby uzyskać informacje na temat korzystania z rozwiązania zapory, zobacz Używanie zapory z usługą Azure Machine Learning.

Następne kroki

Ten artykuł jest częścią serii dotyczącej zabezpieczania przepływu pracy usługi Azure Machine Learning. Zobacz inne artykuły z tej serii: