Nätverksisolering med hanterade onlineslutpunkter

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

När du distribuerar en maskininlärningsmodell till en hanterad onlineslutpunkt kan du skydda kommunikationen med onlineslutpunkten med hjälp av privata slutpunkter. I den här artikeln får du lära dig hur en privat slutpunkt kan användas för att skydda inkommande kommunikation till en hanterad onlineslutpunkt. Du får också lära dig hur ett arbetsytehanterat virtuellt nätverk kan användas för att tillhandahålla säker kommunikation mellan distributioner och resurser.

Du kan skydda inkommande bedömningsbegäranden från klienter till en onlineslutpunkt och skydda utgående kommunikation mellan en distribution, de Azure-resurser som används och privata resurser. Säkerhet för inkommande och utgående kommunikation konfigureras separat. Mer information om slutpunkter och distributioner finns i Vad är slutpunkter och distributioner.

Följande arkitekturdiagram visar hur kommunikationen flödar via privata slutpunkter till den hanterade onlineslutpunkten. Inkommande bedömningsbegäranden från en klients virtuella nätverksflöde via arbetsytans privata slutpunkt till den hanterade onlineslutpunkten. Utgående kommunikation från distributioner till tjänster hanteras via privata slutpunkter från arbetsytans hanterade virtuella nätverk till dessa tjänstinstanser.

Diagram som visar inkommande kommunikation via en privat slutpunkt för arbetsytan och utgående kommunikation via privata slutpunkter i ett arbetsytehanterat virtuellt nätverk.

Kommentar

  • Den här artikeln fokuserar på nätverksisolering med arbetsytans hanterade virtuella nätverk. En beskrivning av den äldre metoden för nätverksisolering, där Azure Machine Learning skapar ett hanterat virtuellt nätverk för varje distribution i en slutpunkt, finns i tillägget.
  • Varje distribution är isolerad från andra distributioner, oavsett inkommande och utgående kommunikation som beskrivs i den här artikeln. Med andra ord, även med slutpunkter/distributioner som tillåter inkommande/utgående internet, finns det en nätverksisolering mellan distributioner, vilket hindrar alla distributioner från att ansluta direkt till andra distributioner.

Begränsningar

  • Flaggan v1_legacy_mode måste vara inaktiverad (falskt) på din Azure Machine Learning-arbetsyta. Om flaggan är aktiverad kan du inte skapa någon hanterad onlineslutpunkt. Mer information finns i Nätverksisolering med v2 API.

  • Om din Azure Machine Learning-arbetsyta har en privat slutpunkt som skapades före den 24 maj 2022 måste du återskapa arbetsytans privata slutpunkt innan du konfigurerar dina onlineslutpunkter för att använda en privat slutpunkt. Mer information om hur du skapar en privat slutpunkt för din arbetsyta finns i Konfigurera en privat slutpunkt för Azure Machine Learning-arbetsytan.

    Dricks

    Om du vill bekräfta när en arbetsyta skapades kan du kontrollera egenskaperna för arbetsytan.

    I Studio går du till avsnittet Directory + Subscription + Workspace (längst upp till höger i Studio) och väljer View all properties in Azure Portal. Välj JSON-vyn längst upp till höger på sidan Översikt och välj sedan den senaste API-versionen. På den här sidan kan du kontrollera värdet properties.creationTimeför .

    Du kan också använda az ml workspace show med CLI, my_ml_client.workspace.get("my-workspace-name") med SDK eller curl på en arbetsyta med REST API.

  • När du använder nätverksisolering med onlineslutpunkter kan du använda arbetsyterelaterade resurser (Azure Container Registry (ACR), Lagringskonto, Key Vault och Application Insights) från en annan resursgrupp än din arbetsyta. Dessa resurser måste dock tillhöra samma prenumeration och klientorganisation som din arbetsyta.

Kommentar

Nätverksisolering som beskrivs i den här artikeln gäller för dataplansåtgärder, d.v.s. åtgärder som beror på bedömningsbegäranden (eller modellhantering). Kontrollplansåtgärder (till exempel begäranden om att skapa, uppdatera, ta bort eller hämta autentiseringsnycklar) skickas till Azure Resource Manager via det offentliga nätverket.

Säkra inkommande bedömningsbegäranden

Säker inkommande kommunikation från en klient till en hanterad onlineslutpunkt är möjlig med hjälp av en privat slutpunkt för Azure Machine Learning-arbetsytan. Den här privata slutpunkten i klientens virtuella nätverk kommunicerar med arbetsytan för den hanterade onlineslutpunkten och är det sätt på vilket den hanterade onlineslutpunkten kan ta emot inkommande bedömningsförfrågningar från klienten.

Om du vill skydda bedömningsbegäranden till onlineslutpunkten, så att en klient bara kan komma åt den via arbetsytans privata slutpunkt, anger du public_network_access flaggan för slutpunkten till disabled. När du har skapat slutpunkten kan du uppdatera den här inställningen för att aktivera åtkomst till offentligt nätverk om du vill.

Ange slutpunktens public_network_access flagga till disabled:

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

När public_network_access är disabledtas inkommande bedömningsbegäranden emot med arbetsytans privata slutpunkt och slutpunkten kan inte nås från offentliga nätverk.

Om du anger public_network_access till enabledkan slutpunkten också ta emot inkommande bedömningsbegäranden från Internet.

Skydda utgående åtkomst med arbetsytehanterat virtuellt nätverk

För att skydda utgående kommunikation från en distribution till tjänster måste du aktivera hanterad virtuell nätverksisolering för din Azure Machine Learning-arbetsyta så att Azure Machine Learning kan skapa ett hanterat virtuellt nätverk för arbetsytan. Alla hanterade onlineslutpunkter på arbetsytan (och hanterade beräkningsresurser för arbetsytan, till exempel beräkningskluster och beräkningsinstanser) använder automatiskt det här arbetsytans hanterade virtuella nätverk, och distributionerna under slutpunkterna delar det hanterade virtuella nätverkets privata slutpunkter för kommunikation med arbetsytans resurser.

När du skyddar din arbetsyta med ett hanterat virtuellt nätverk egress_public_access gäller inte längre flaggan för hanterade onlinedistributioner. Undvik att ange den här flaggan när du skapar den hanterade onlinedistributionen.

För utgående kommunikation med ett arbetsytehanterat virtuellt nätverk, Azure Machine Learning:

  • Skapar privata slutpunkter för det hanterade virtuella nätverket som ska användas för kommunikation med Azure-resurser som används av arbetsytan, till exempel Azure Storage, Azure Key Vault och Azure Container Registry.
  • Tillåter distributioner att komma åt Microsoft Container Registry (MCR), vilket kan vara användbart när du vill använda utvalda miljöer eller MLflow-distribution utan kod.
  • Tillåter användare att konfigurera utgående regler för privat slutpunkt till privata resurser och konfigurera utgående regler (tjänsttagg eller FQDN) för offentliga resurser. Mer information om hur du hanterar regler för utgående trafik finns i Hantera utgående regler.

Dessutom kan du konfigurera två isoleringslägen för utgående trafik från arbetsytans hanterade virtuella nätverk, nämligen:

  • Tillåt utgående Internet för att tillåta all utgående internettrafik från det hanterade virtuella nätverket
  • Tillåt endast godkänd utgående trafik för att styra utgående trafik med hjälp av privata slutpunkter, FQDN-regler för utgående trafik och utgående regler för tjänsttagg.

Anta till exempel att arbetsytans hanterade virtuella nätverk innehåller två distributioner under en hanterad onlineslutpunkt. Båda distributionerna kan använda arbetsytans privata slutpunkter för att kommunicera med:

  • Azure Machine Learning-arbetsytan
  • Azure Storage-bloben som är associerad med arbetsytan
  • Azure Container Registry för arbetsytan
  • The Azure Key Vault
  • (Valfritt) ytterligare privata resurser som stöder privata slutpunkter.

Mer information om konfigurationer för arbetsytans hanterade virtuella nätverk finns i Arkitektur för hanterat virtuellt nätverk.

Scenarier för konfiguration av nätverksisolering

Din Azure Machine Learning-arbetsyta och hanterade onlineslutpunkt har var och en en public_network_access flagga som du kan använda för att konfigurera inkommande kommunikation. Å andra sidan beror utgående kommunikation från en distribution på arbetsytans hanterade virtuella nätverk.

Kommunikation med den hanterade onlineslutpunkten

Anta att en hanterad onlineslutpunkt har en distribution som använder en AI-modell och du vill använda en app för att skicka bedömningsbegäranden till slutpunkten. Du kan bestämma vilken nätverksisoleringskonfiguration som ska användas för den hanterade onlineslutpunkten på följande sätt:

För inkommande kommunikation:

Om appen är offentligt tillgänglig på Internet måste du aktiverapublic_network_access för slutpunkten så att den kan ta emot inkommande bedömningsbegäranden från appen.

Anta dock att appen är privat, till exempel en intern app i din organisation. I det här scenariot vill du att AI-modellen endast ska användas i din organisation i stället för att exponera den för Internet. Därför måste du inaktivera slutpunktens public_network_access så att den endast kan ta emot inkommande bedömningsbegäranden via arbetsytans privata slutpunkt.

För utgående kommunikation (distribution):

Anta att distributionen behöver åtkomst till privata Azure-resurser (till exempel Azure Storage-blobben, ACR och Azure Key Vault), eller att det är oacceptabelt att distributionen får åtkomst till Internet. I det här fallet måste du aktiveraarbetsytans hanterade virtuella nätverk med det tillåtna endast godkända utgående isoleringsläget. Det här isoleringsläget tillåter endast utgående kommunikation från distributionen till godkända mål, vilket skyddar mot dataexfiltrering. Dessutom kan du lägga till regler för utgående trafik för arbetsytan för att ge åtkomst till mer privata eller offentliga resurser. Mer information finns i Konfigurera ett hanterat virtuellt nätverk för att endast tillåta godkänd utgående trafik.

Men om du vill att distributionen ska få åtkomst till Internet kan du använda arbetsytans hanterade virtuella nätverk med det tillåtna utgående isoleringsläget för Internet. Förutom att kunna komma åt Internet kan du använda de privata slutpunkterna i det hanterade virtuella nätverket för att få åtkomst till privata Azure-resurser som du behöver.

Om distributionen inte behöver komma åt privata Azure-resurser och du inte behöver styra åtkomsten till Internet behöver du inte använda ett hanterat virtuellt nätverk på arbetsytan.

Inkommande kommunikation till Azure Machine Learning-arbetsytan

Du kan använda flaggan för public_network_access din Azure Machine Learning-arbetsyta för att aktivera eller inaktivera åtkomst till inkommande arbetsytor. Om du skyddar inkommande kommunikation till din arbetsyta (genom att inaktivera arbetsytans public_network_access flagga) vill du vanligtvis också skydda inkommande kommunikation till din hanterade onlineslutpunkt.

Följande diagram visar ett typiskt arbetsflöde för att skydda inkommande kommunikation till din Azure Machine Learning-arbetsyta och din hanterade onlineslutpunkt. För bästa säkerhet rekommenderar vi att du inaktiverar flaggorna public_network_access för arbetsytan och den hanterade onlineslutpunkten för att säkerställa att båda inte kan nås via det offentliga Internet. Om arbetsytan inte har en privat slutpunkt kan du skapa en och se till att inkludera korrekt DNS-matchning. Du kan sedan komma åt den hanterade onlineslutpunkten med hjälp av arbetsytans privata slutpunkt.

En skärmbild som visar ett typiskt arbetsflöde för att skydda inkommande kommunikation till din arbetsyta och hanterad onlineslutpunkt.

Kommentar

Hanterade onlineslutpunkter delar arbetsytans privata slutpunkt. Om du lägger till DNS-poster manuellt i den privata DNS-zonen privatelink.api.azureml.msbör en A-post med jokertecken *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms läggas till för att dirigera alla slutpunkter under arbetsytan till den privata slutpunkten.

Mer information om DNS-matchning för din arbetsyta och privata slutpunkt finns i Använda din arbetsyta med en anpassad DNS-server.

Bilaga

Skydda utgående åtkomst med äldre nätverksisoleringsmetod

För hanterade onlineslutpunkter kan du också skydda utgående kommunikation mellan distributioner och resurser med hjälp av ett hanterat virtuellt Azure Machine Learning-nätverk för varje distribution i slutpunkten. Den säkra utgående kommunikationen hanteras också med hjälp av privata slutpunkter till dessa tjänstinstanser.

Kommentar

Vi rekommenderar starkt att du använder metoden som beskrivs i Skydda utgående åtkomst med arbetsytehanterat virtuellt nätverk i stället för den här äldre metoden.

Om du vill begränsa kommunikationen mellan en distribution och externa resurser, inklusive de Azure-resurser som används, bör du se till att:

  • Distributionens egress_public_network_access flagga är disabled. Den här flaggan säkerställer att nedladdningen av modellen, koden och avbildningarna som krävs av distributionen skyddas med en privat slutpunkt. När du har skapat distributionen kan du inte uppdatera (aktivera eller inaktivera) egress_public_network_access flaggan. Försök att ändra flaggan när distributionen uppdateras misslyckas med ett fel.

  • Arbetsytan har en privat länk som ger åtkomst till Azure-resurser via en privat slutpunkt.

  • Arbetsytan har en public_network_access flagga som kan aktiveras eller inaktiveras, om du planerar att använda en hanterad onlinedistribution som använder offentlig utgående trafik, måste du också konfigurera arbetsytan så att den tillåter offentlig åtkomst. Det beror på att utgående kommunikation från onlinedistributionen är till arbetsytans API. När distributionen har konfigurerats för att använda offentlig utgående trafik måste arbetsytan kunna acceptera den offentliga kommunikationen (tillåta offentlig åtkomst).

När du har flera distributioner och konfigurerar egress_public_network_access till disabled för varje distribution i en hanterad onlineslutpunkt har varje distribution ett eget oberoende azure Machine Learning-hanterat virtuellt nätverk. För varje virtuellt nätverk skapar Azure Machine Learning tre privata slutpunkter för kommunikation till följande tjänster:

  • Azure Machine Learning-arbetsytan
  • Azure Storage-bloben som är associerad med arbetsytan
  • Azure Container Registry för arbetsytan

Om du till exempel anger egress_public_network_access flaggan till disabled för två distributioner av en hanterad onlineslutpunkt skapas totalt sex privata slutpunkter. Varje distribution skulle använda tre privata slutpunkter för att kommunicera med arbetsytan, bloben och containerregistret.

Viktigt!

Azure Machine Learning stöder inte peering mellan en distributions hanterade virtuella nätverk och klientens virtuella nätverk. För säker åtkomst till resurser som krävs av distributionen använder vi privata slutpunkter för att kommunicera med resurserna.

Följande diagram visar inkommande bedömningsbegäranden från en klients virtuella nätverk som flödar genom arbetsytans privata slutpunkt till den hanterade onlineslutpunkten. Diagrammet visar också två onlinedistributioner, var och en i ett eget hanterat virtuellt Azure Machine Learning-nätverk. Varje distributions virtuella nätverk har tre privata slutpunkter för utgående kommunikation med Azure Machine Learning-arbetsytan, Azure Storage-bloben som är associerad med arbetsytan och Azure Container Registry för arbetsytan.

Diagram över övergripande nätverksisolering med den äldre metoden.

Så här inaktiverar egress_public_network_access du och skapar de privata slutpunkterna:

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

Kontrollera att de privata slutpunkterna har skapats genom att först kontrollera lagringskontot och containerregistret som är associerade med arbetsytan (se Ladda ned en konfigurationsfil), hitta varje resurs från Azure-portalen och kontrollera Private endpoint connections fliken under Networking menyn.

Viktigt!

  • Som tidigare nämnts är utgående kommunikation från hanterad onlineslutpunktsdistribution till arbetsytans API. När slutpunkten har konfigurerats för att använda offentlig utgående trafik (med andra ord public_network_access är flaggan för slutpunkten inställd på enabled) måste arbetsytan kunna acceptera den offentliga kommunikationen (public_network_access flaggan för arbetsytan inställd på enabled).
  • När onlinedistributioner skapas med egress_public_network_access flaggan inställd på disabledhar de endast åtkomst till de skyddade resurserna (arbetsyta, blob och containerregister). Om distributionen till exempel använder modelltillgångar som laddats upp till andra lagringskonton misslyckas modellnedladdningen. Kontrollera att modelltillgångarna finns på lagringskontot som är associerat med arbetsytan.
  • När egress_public_network_access är inställt på disabledkan distributionen endast komma åt de arbetsyteassocierad resurs som skyddas i det virtuella nätverket. När är inställt enabledpå kan distributionen tvärtom egress_public_network_access bara komma åt resurserna med offentlig åtkomst, vilket innebär att den inte kan komma åt de resurser som skyddas i det virtuella nätverket.

I följande tabell visas de konfigurationer som stöds när inkommande och utgående kommunikation konfigureras för en onlineslutpunkt:

Konfiguration Inkommande
(endpoint-egenskap)
Utgående
(distributionsegenskap)
Stöds?
säker inkommande med säker utgående public_network_access är inaktiverad egress_public_network_access är inaktiverad Ja
säker inkommande med offentlig utgående public_network_access är inaktiverad egress_public_network_access är aktiverad
Arbetsytan måste också tillåta offentlig åtkomst eftersom utgående distribution är till arbetsytans API.
Ja
offentlig inkommande med säker utgående public_network_access är aktiverad egress_public_network_access är inaktiverad Ja
offentlig inkommande med offentlig utgående public_network_access är aktiverad egress_public_network_access är aktiverad
Arbetsytan måste också tillåta offentlig åtkomst eftersom utgående distribution är till arbetsytans API.
Ja

Nästa steg