Udostępnij za pośrednictwem


Izolacja sieci dzięki zarządzanym punktom końcowym online

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

Podczas wdrażania modelu uczenia maszynowego w zarządzanym punkcie końcowym online można zabezpieczyć komunikację z punktem końcowym online przy użyciu prywatnych punktów końcowych. W tym artykule dowiesz się, jak prywatny punkt końcowy może służyć do zabezpieczania komunikacji przychodzącej z zarządzanym punktem końcowym online. Dowiesz się również, jak zarządzana sieć wirtualna obszaru roboczego może służyć do zapewnienia bezpiecznej komunikacji między wdrożeniami i zasobami.

Możesz zabezpieczyć przychodzące żądania oceniania od klientów do punktu końcowego online i zabezpieczyć komunikację wychodzącą między wdrożeniem, używanymi zasobami platformy Azure i zasobami prywatnymi. Zabezpieczenia dla komunikacji przychodzącej i wychodzącej są konfigurowane oddzielnie. Aby uzyskać więcej informacji na temat punktów końcowych i wdrożeń, zobacz Co to są punkty końcowe i wdrożenia.

Na poniższym diagramie architektury pokazano, jak komunikacja przepływa przez prywatne punkty końcowe do zarządzanego punktu końcowego online. Przychodzące żądania oceniania z sieci wirtualnej klienta przepływają przez prywatny punkt końcowy obszaru roboczego do zarządzanego punktu końcowego online. Komunikacja wychodząca z wdrożeń do usług jest obsługiwana za pośrednictwem prywatnych punktów końcowych z zarządzanej sieci wirtualnej obszaru roboczego do tych wystąpień usługi.

Diagram przedstawiający komunikację przychodzącą za pośrednictwem prywatnego punktu końcowego obszaru roboczego i komunikacji wychodzącej za pośrednictwem prywatnych punktów końcowych zarządzanej sieci wirtualnej obszaru roboczego.

Uwaga

  • Ten artykuł koncentruje się na izolacji sieci przy użyciu zarządzanej sieci wirtualnej obszaru roboczego. Opis starszej metody izolacji sieci, w której usługa Azure Machine Learning tworzy zarządzaną sieć wirtualną dla każdego wdrożenia w punkcie końcowym, zobacz dodatek.
  • Każde wdrożenie jest odizolowane od innych wdrożeń, niezależnie od komunikacji przychodzącej i wychodzącej omówionej w tym artykule. Innymi słowy, nawet w przypadku punktów końcowych/wdrożeń, które zezwalają na ruch przychodzący/wychodzący z Internetu, istnieje izolacja sieci między wdrożeniami, która blokuje bezpośrednie łączenie się z innymi wdrożeniami.

Ograniczenia

  • Flaga v1_legacy_mode musi być wyłączona (false) w obszarze roboczym usługi Azure Machine Learning. Jeśli ta flaga jest włączona, nie będzie można utworzyć zarządzanego punktu końcowego online. Aby uzyskać więcej informacji, zobacz Izolacja sieci za pomocą interfejsu API w wersji 2.

  • Jeśli obszar roboczy usługi Azure Machine Learning ma prywatny punkt końcowy, który został utworzony przed 24 maja 2022 r., musisz ponownie utworzyć prywatny punkt końcowy obszaru roboczego przed skonfigurowaniem punktów końcowych online w celu korzystania z prywatnego punktu końcowego. Aby uzyskać więcej informacji na temat tworzenia prywatnego punktu końcowego dla obszaru roboczego, zobacz Jak skonfigurować prywatny punkt końcowy dla obszaru roboczego usługi Azure Machine Learning.

    Napiwek

    Aby potwierdzić, kiedy obszar roboczy został utworzony, możesz sprawdzić właściwości obszaru roboczego.

    W programie Studio przejdź do Directory + Subscription + Workspace sekcji (w prawym górnym rogu programu Studio) i wybierz pozycję View all properties in Azure Portal. Wybierz widok JSON w prawym górnym rogu strony "Przegląd", a następnie wybierz najnowszą wersję interfejsu API. Na tej stronie możesz sprawdzić wartość .properties.creationTime

    Możesz też użyć interfejsu az ml workspace show wiersza polecenia z my_ml_client.workspace.get("my-workspace-name") zestawem SDK lub curl obszaru roboczego z interfejsem API REST.

  • W przypadku korzystania z izolacji sieciowej z punktami końcowymi online można użyć zasobów skojarzonych z obszarem roboczym (Azure Container Registry (ACR), konta magazynu, usługi Key Vault i usługi Application Insights z innej grupy zasobów niż obszar roboczy. Jednak te zasoby muszą należeć do tej samej subskrypcji i dzierżawy co obszar roboczy.

Uwaga

Izolacja sieci opisana w tym artykule dotyczy operacji płaszczyzny danych, czyli operacji, które wynikają z żądań oceniania (lub obsługi modelu). Operacje płaszczyzny sterowania (takie jak żądania tworzenia, aktualizowania, usuwania lub pobierania kluczy uwierzytelniania) są wysyłane do usługi Azure Resource Manager za pośrednictwem sieci publicznej.

Zabezpieczanie żądań oceniania ruchu przychodzącego

Bezpieczna komunikacja przychodząca od klienta do zarządzanego punktu końcowego online jest możliwa przy użyciu prywatnego punktu końcowego dla obszaru roboczego usługi Azure Machine Learning. Ten prywatny punkt końcowy w sieci wirtualnej klienta komunikuje się z obszarem roboczym zarządzanego punktu końcowego online i jest sposobem, za pomocą którego zarządzany punkt końcowy online może odbierać przychodzące żądania oceniania od klienta.

Aby zabezpieczyć żądania oceniania do punktu końcowego online, aby klient mógł uzyskać do niego dostęp tylko za pośrednictwem prywatnego punktu końcowego obszaru roboczego, ustaw flagę public_network_access dla punktu końcowego na disabledwartość . Po utworzeniu punktu końcowego możesz zaktualizować to ustawienie, aby w razie potrzeby włączyć dostęp do sieci publicznej.

Ustaw flagę punktu końcowego public_network_access na :disabled

az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled

Gdy public_network_access jest ustawione na disabled, żądania oceny ruchu przychodzącego są odbierane przy użyciu prywatnego punktu końcowego obszaru roboczego, a punkt końcowy nie może być dostępny z sieci publicznych.

Alternatywnie, jeśli ustawisz public_network_access enabledwartość na , punkt końcowy może odbierać przychodzące żądania oceniania z Internetu.

Zabezpieczanie oceniania ruchu przychodzącego przy użyciu dostępu do sieci publicznej z określonych adresów IP

Obszar roboczy usługi Azure Machine Learning obsługuje włączanie dostępu do sieci publicznej z określonych adresów IP lub zakresów adresów. Ta funkcja ma pewne interakcje z flagą zarządzanego punktu końcowego public_network_access online, o których należy pamiętać podczas korzystania z zarządzanych punktów końcowych online. Aby uzyskać więcej informacji, zobacz Scenariusz: Zarządzane punkty końcowe online z dostępem z określonych adresów IP.

Zabezpieczanie dostępu wychodzącego za pomocą zarządzanej sieci wirtualnej obszaru roboczego

Aby zabezpieczyć komunikację wychodzącą z wdrożenia do usług, należy włączyć izolację zarządzanej sieci wirtualnej dla obszaru roboczego usługi Azure Machine Learning, aby usługa Azure Machine Learning mogła utworzyć zarządzaną sieć wirtualną dla obszaru roboczego. Wszystkie zarządzane punkty końcowe online w obszarze roboczym (i zarządzane zasoby obliczeniowe dla obszaru roboczego, takie jak klastry obliczeniowe i wystąpienia obliczeniowe) automatycznie używają tej zarządzanej sieci wirtualnej obszaru roboczego, a wdrożenia w ramach punktów końcowych współużytkuje prywatne punkty końcowe zarządzanej sieci wirtualnej na potrzeby komunikacji z zasobami obszaru roboczego.

Po zabezpieczeniu obszaru roboczego za pomocą zarządzanej sieci wirtualnej flaga egress_public_access dla wdrożeń zarządzanych online nie będzie już stosowana. Unikaj ustawiania tej flagi podczas tworzenia zarządzanego wdrożenia online.

W przypadku komunikacji wychodzącej z zarządzaną siecią wirtualną obszaru roboczego usługa Azure Machine Learning:

  • Tworzy prywatne punkty końcowe dla zarządzanej sieci wirtualnej do użycia do komunikacji z zasobami platformy Azure używanymi przez obszar roboczy, takich jak Azure Storage, Azure Key Vault i Azure Container Registry.
  • Umożliwia wdrożeniem dostęp do usługi Microsoft Container Registry (MCR), co może być przydatne, gdy chcesz użyć wyselekcjonowanych środowisk lub wdrożenia bez kodu platformy MLflow.
  • Umożliwia użytkownikom konfigurowanie reguł ruchu wychodzącego prywatnego punktu końcowego do zasobów prywatnych i konfigurowanie reguł ruchu wychodzącego (tagu usługi lub nazwy FQDN) dla zasobów publicznych. Aby uzyskać więcej informacji na temat zarządzania regułami ruchu wychodzącego, zobacz Zarządzanie regułami ruchu wychodzącego.

Ponadto można skonfigurować dwa tryby izolacji dla ruchu wychodzącego z zarządzanej sieci wirtualnej obszaru roboczego, a mianowicie:

  • Zezwalaj na ruch wychodzący z Internetu, aby zezwolić na cały ruch wychodzący z zarządzanej sieci wirtualnej
  • Zezwalaj tylko na zatwierdzony ruch wychodzący, aby kontrolować ruch wychodzący przy użyciu prywatnych punktów końcowych, reguł ruchu wychodzącego nazwy FQDN i reguł ruchu wychodzącego tagu usługi.

Załóżmy na przykład, że zarządzana sieć wirtualna obszaru roboczego zawiera dwa wdrożenia w zarządzanym punkcie końcowym online, oba wdrożenia mogą używać prywatnych punktów końcowych obszaru roboczego do komunikowania się z:

  • Obszar roboczy usługi Azure Machine Learning
  • Obiekt blob usługi Azure Storage skojarzony z obszarem roboczym
  • Usługa Azure Container Registry dla obszaru roboczego
  • Usługa Azure Key Vault
  • (Opcjonalnie) dodatkowe zasoby prywatne, które obsługują prywatne punkty końcowe.

Aby dowiedzieć się więcej o konfiguracjach sieci wirtualnej zarządzanej przez obszar roboczy, zobacz Architektura zarządzanej sieci wirtualnej.

Scenariusze konfiguracji izolacji sieci

Obszar roboczy usługi Azure Machine Learning i zarządzany punkt końcowy online mają flagę public_network_access , której można użyć do skonfigurowania komunikacji przychodzącej. Z drugiej strony komunikacja wychodząca z wdrożenia zależy od zarządzanej sieci wirtualnej obszaru roboczego.

Komunikacja z zarządzanym punktem końcowym online

Załóżmy, że zarządzany punkt końcowy online ma wdrożenie korzystające z modelu sztucznej inteligencji i chcesz użyć aplikacji do wysyłania żądań oceniania do punktu końcowego. Możesz zdecydować, jaka konfiguracja izolacji sieci ma być używana dla zarządzanego punktu końcowego online w następujący sposób:

W przypadku komunikacji przychodzącej:

Jeśli aplikacja jest publicznie dostępna w Internecie, musisz włączyć public_network_access dla punktu końcowego, aby mogła odbierać przychodzące żądania oceniania z aplikacji.

Załóżmy jednak, że aplikacja jest prywatna, taka jak aplikacja wewnętrzna w organizacji. W tym scenariuszu chcesz, aby model sztucznej inteligencji był używany tylko w organizacji, a nie uwidaczniać go w Internecie. W związku z tym należy wyłączyć punkt końcowypublic_network_access, aby mógł odbierać przychodzące żądania oceniania tylko za pośrednictwem prywatnego punktu końcowego obszaru roboczego.

W przypadku komunikacji wychodzącej (wdrożenie):

Załóżmy, że wdrożenie musi uzyskiwać dostęp do prywatnych zasobów platformy Azure (takich jak obiekty blob usługi Azure Storage, usługa ACR i usługa Azure Key Vault) lub wdrożenie jest niedopuszczalne w celu uzyskania dostępu do Internetu. W takim przypadku należy włączyć zarządzaną sieć wirtualną obszaru roboczego z trybem izolacji zezwalania tylko na zatwierdzone dane wychodzące . Ten tryb izolacji umożliwia komunikację wychodzącą z wdrożenia tylko do zatwierdzonych miejsc docelowych, chroniąc w ten sposób przed eksfiltracją danych. Ponadto można dodać reguły ruchu wychodzącego dla obszaru roboczego, aby zezwolić na dostęp do większej liczby zasobów prywatnych lub publicznych. Aby uzyskać więcej informacji, zobacz Konfigurowanie zarządzanej sieci wirtualnej tak, aby zezwalała tylko na zatwierdzone dane wychodzące.

Jeśli jednak chcesz, aby wdrożenie uzyskiwało dostęp do Internetu, możesz użyć zarządzanej sieci wirtualnej obszaru roboczego z trybem zezwalania na izolację ruchu wychodzącego z Internetu. Poza dostępem do Internetu będziesz mieć możliwość korzystania z prywatnych punktów końcowych zarządzanej sieci wirtualnej w celu uzyskania dostępu do potrzebnych zasobów platformy Azure.

Na koniec jeśli wdrożenie nie musi uzyskiwać dostępu do prywatnych zasobów platformy Azure i nie musisz kontrolować dostępu do Internetu, nie musisz używać zarządzanej sieci wirtualnej obszaru roboczego.

Komunikacja przychodząca do obszaru roboczego usługi Azure Machine Learning

Możesz użyć public_network_access flagi obszaru roboczego usługi Azure Machine Learning, aby włączyć lub wyłączyć dostęp do przychodzącego obszaru roboczego. Zazwyczaj, jeśli zabezpieczasz komunikację przychodzącą do obszaru roboczego (wyłączając flagę obszaru roboczego public_network_access ), chcesz również zabezpieczyć komunikację przychodzącą z zarządzanym punktem końcowym online.

Na poniższym wykresie przedstawiono typowy przepływ pracy na potrzeby zabezpieczania komunikacji przychodzącej z obszarem roboczym usługi Azure Machine Learning i zarządzanym punktem końcowym online. Aby zapewnić najlepsze zabezpieczenia, zalecamy wyłączenie public_network_access flag dla obszaru roboczego i zarządzanego punktu końcowego online w celu zapewnienia, że nie można uzyskać dostępu do obu tych elementów za pośrednictwem publicznego Internetu. Jeśli obszar roboczy nie ma prywatnego punktu końcowego, możesz go utworzyć, pamiętając o odpowiednim rozpoznawaniu nazw DNS. Następnie możesz uzyskać dostęp do zarządzanego punktu końcowego online przy użyciu prywatnego punktu końcowego obszaru roboczego.

Zrzut ekranu przedstawiający typowy przepływ pracy na potrzeby zabezpieczania komunikacji przychodzącej z obszarem roboczym i zarządzanego punktu końcowego online.

Uwaga

Zarządzane punkty końcowe online współużytkuje prywatny punkt końcowy obszaru roboczego. Jeśli ręcznie dodasz rekordy DNS do prywatnej strefy privatelink.api.azureml.msDNS, należy dodać rekord A z symbolem wieloznacznymi *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms w celu kierowania wszystkich punktów końcowych w obszarze roboczym do prywatnego punktu końcowego.

Aby uzyskać więcej informacji na temat rozpoznawania nazw DNS dla obszaru roboczego i prywatnego punktu końcowego, zobacz Jak używać obszaru roboczego z niestandardowym serwerem DNS.

Dodatek

Zabezpieczanie dostępu wychodzącego przy użyciu starszej metody izolacji sieciowej

W przypadku zarządzanych punktów końcowych online można również zabezpieczyć komunikację wychodzącą między wdrożeniami i zasobami przy użyciu zarządzanej sieci wirtualnej usługi Azure Machine Learning dla każdego wdrożenia w punkcie końcowym. Bezpieczna komunikacja wychodząca jest również obsługiwana przy użyciu prywatnych punktów końcowych do tych wystąpień usługi.

Uwaga

Zdecydowanie zalecamy użycie podejścia opisanego w temacie Zabezpieczanie dostępu wychodzącego z zarządzaną siecią wirtualną obszaru roboczego zamiast tej starszej metody.

Aby ograniczyć komunikację między wdrożeniem a zasobami zewnętrznymi, w tym używanymi zasobami platformy Azure, należy upewnić się, że:

  • Flagą egress_public_network_access wdrożenia jest disabled. Ta flaga gwarantuje, że pobieranie modelu, kodu i obrazów wymaganych przez wdrożenie jest zabezpieczone za pomocą prywatnego punktu końcowego. Po utworzeniu wdrożenia nie można zaktualizować flagi egress_public_network_access (włączyć lub wyłączyć). Próba zmiany flagi podczas aktualizowania wdrożenia kończy się niepowodzeniem z powodu wystąpienia błędu.

  • Obszar roboczy ma link prywatny, który umożliwia dostęp do zasobów platformy Azure za pośrednictwem prywatnego punktu końcowego.

  • Obszar roboczy ma flagę public_network_access , którą można włączyć lub wyłączyć, jeśli planujesz korzystanie z zarządzanego wdrożenia online korzystającego z publicznego ruchu wychodzącego, musisz również skonfigurować obszar roboczy, aby zezwolić na dostęp publiczny. Dzieje się tak, ponieważ komunikacja wychodząca z wdrożenia online jest do interfejsu API obszaru roboczego. Po skonfigurowaniu wdrożenia do korzystania z publicznego ruchu wychodzącego obszar roboczy musi być w stanie zaakceptować tę komunikację publiczną (zezwalać na dostęp publiczny).

Jeśli masz wiele wdrożeń i skonfigurujesz egress_public_network_access disabled dla każdego wdrożenia w zarządzanym punkcie końcowym online, każde wdrożenie ma własną niezależną sieć wirtualną zarządzaną w usłudze Azure Machine Learning. W przypadku każdej sieci wirtualnej usługa Azure Machine Learning tworzy trzy prywatne punkty końcowe do komunikacji z następującymi usługami:

  • Obszar roboczy usługi Azure Machine Learning
  • Obiekt blob usługi Azure Storage skojarzony z obszarem roboczym
  • Usługa Azure Container Registry dla obszaru roboczego

Jeśli na przykład dla dwóch wdrożeń zarządzanego punktu końcowego online zostanie ustawiona flaga egress_public_network_access disabled , zostanie utworzonych łącznie sześć prywatnych punktów końcowych. Każde wdrożenie używa trzech prywatnych punktów końcowych do komunikowania się z obszarem roboczym, obiektem blob i rejestrem kontenerów.

Ważne

Usługa Azure Machine Learning nie obsługuje komunikacji równorzędnej między zarządzaną siecią wirtualną wdrożenia a siecią wirtualną klienta. Aby zapewnić bezpieczny dostęp do zasobów wymaganych przez wdrożenie, używamy prywatnych punktów końcowych do komunikowania się z zasobami.

Na poniższym diagramie przedstawiono przychodzące żądania oceniania z sieci wirtualnej klienta przepływającej przez prywatny punkt końcowy obszaru roboczego do zarządzanego punktu końcowego online. Na diagramie przedstawiono również dwa wdrożenia online, z których każda ma własną zarządzaną sieć wirtualną usługi Azure Machine Learning. Sieć wirtualna każdego wdrożenia ma trzy prywatne punkty końcowe dla komunikacji wychodzącej z obszarem roboczym usługi Azure Machine Learning, obiektem blob usługi Azure Storage skojarzonym z obszarem roboczym i usługą Azure Container Registry dla obszaru roboczego.

Diagram ogólnej izolacji sieci ze starszą metodą.

Aby wyłączyć i egress_public_network_access utworzyć prywatne punkty końcowe:

az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled

Aby potwierdzić tworzenie prywatnych punktów końcowych, najpierw sprawdź konto magazynu i rejestr kontenerów skojarzony z obszarem roboczym (zobacz Pobieranie pliku konfiguracji), znajdź każdy zasób z witryny Azure Portal i sprawdź Private endpoint connections kartę w Networking menu.

Ważne

  • Jak wspomniano wcześniej, komunikacja wychodząca z zarządzanego wdrożenia punktu końcowego online to interfejs API obszaru roboczego. Gdy punkt końcowy jest skonfigurowany do używania publicznego ruchu wychodzącego (innymi słowy, public_network_access flaga punktu końcowego jest ustawiona na enabled), obszar roboczy musi mieć możliwość zaakceptowania tej publicznej komunikacji (public_network_access flaga dla obszaru roboczego ustawiona na enabledwartość ).
  • Gdy wdrożenia online są tworzone z flagą ustawioną egress_public_network_access na disabled, będą miały dostęp tylko do zabezpieczonych zasobów (obszaru roboczego, obiektu blob i rejestru kontenerów). Jeśli na przykład wdrożenie używa zasobów modelu przekazanych do innych kont magazynu, pobieranie modelu zakończy się niepowodzeniem. Upewnij się, że zasoby modelu znajdują się na koncie magazynu skojarzonym z obszarem roboczym.
  • Gdy egress_public_network_access jest ustawiona wartość disabled, wdrożenie może uzyskiwać dostęp tylko do zasobów skojarzonych z obszarem roboczym zabezpieczonych w sieci wirtualnej. Wręcz przeciwnie, jeśli egress_public_network_access jest ustawiona wartość enabled, wdrożenie może uzyskiwać dostęp tylko do zasobów z dostępem publicznym, co oznacza, że nie może uzyskać dostępu do zasobów zabezpieczonych w sieci wirtualnej.

W poniższej tabeli wymieniono obsługiwane konfiguracje podczas konfigurowania komunikacji przychodzącej i wychodzącej dla punktu końcowego online:

Konfigurowanie Ruch przychodzący
(właściwość punktu końcowego)

Wychodzący (właściwość wdrożenia)
Obsługiwane?
zabezpieczony ruch przychodzący i zabezpieczony ruch wychodzący Parametr public_network_access jest wyłączony Parametr egress_public_network_access jest wyłączony Tak
zabezpieczony ruch przychodzący i publiczny ruch wychodzący Parametr public_network_access jest wyłączony egress_public_network_access jest włączona
Obszar roboczy musi również zezwalać na dostęp publiczny, ponieważ ruch wychodzący wdrożenia jest do interfejsu API obszaru roboczego.
Tak
publiczny ruch przychodzący i zabezpieczony ruch wychodzący Parametr public_network_access jest włączony Parametr egress_public_network_access jest wyłączony Tak
publiczny ruch przychodzący i publiczny ruch wychodzący Parametr public_network_access jest włączony egress_public_network_access jest włączona
Obszar roboczy musi również zezwalać na dostęp publiczny, ponieważ ruch wychodzący wdrożenia jest do interfejsu API obszaru roboczego.
Tak

Następne kroki