Skydda en Azure Machine Learning-arbetsyta med virtuella nätverk

GÄLLER FÖR:Azure CLI ml-tillägg v2 (aktuellt)Python SDK azure-ai-ml v2 (aktuell)

I den här artikeln får du lära dig hur du skyddar en Azure Machine Learning-arbetsyta och dess associerade resurser i ett virtuellt nätverk.

Tips

Den här artikeln är en del av en serie om att skydda ett Azure Machine Learning-arbetsflöde. Se de andra artiklarna i den här serien:

En självstudiekurs om hur du skapar en säker arbetsyta finns i Självstudie: Skapa en säker arbetsyta eller Självstudie: Skapa en säker arbetsyta med hjälp av en mall.

I den här artikeln får du lära dig hur du aktiverar följande arbetsyteresurser i ett virtuellt nätverk:

  • Azure Machine Learning-arbetsyta
  • Azure Storage-konton
  • Azure Key Vault
  • Azure Container Registry

Förutsättningar

  • Läs artikeln Översikt över nätverkssäkerhet för att förstå vanliga scenarier för virtuella nätverk och övergripande arkitektur för virtuella nätverk.

  • Läs artikeln Metodtips för Azure Machine Learning för företagssäkerhet om du vill veta mer om metodtips.

  • Ett befintligt virtuellt nätverk och undernät som ska användas med dina beräkningsresurser.

    Viktigt

    Vi rekommenderar inte att du använder IP-adressintervallet 172.17.0.0/16 för ditt virtuella nätverk. Det här är standardintervallet för undernät som används av Docker-bryggnätverket. Andra intervall kan också vara i konflikt beroende på vad du vill ansluta till det virtuella nätverket. Om du till exempel planerar att ansluta ditt lokala nätverk till det virtuella nätverket och ditt lokala nätverk även använder intervallet 172.16.0.0/16. I slutändan är det upp till dig att planera din nätverksinfrastruktur.

  • Om du vill distribuera resurser till ett virtuellt nätverk eller undernät måste ditt användarkonto ha behörighet till följande åtgärder i rollbaserad åtkomstkontroll i Azure (Azure RBAC):

    • "Microsoft.Network/virtualNetworks/join/action" på den virtuella nätverksresursen.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" på undernätsresursen.

    Mer information om Azure RBAC med nätverk finns i Inbyggda roller för nätverk

Azure Container Registry

  • Din Azure Container Registry måste vara Premium-version. Mer information om hur du uppgraderar finns i Ändra SKU:er.

  • Om din Azure Container Registry använder en privat slutpunkt måste den finnas i samma virtuella nätverk som lagringskontot och beräkningsmål som används för träning eller slutsatsdragning. Om den använder en tjänstslutpunkt måste den finnas i samma virtuella nätverk och undernät som lagringskontot och beräkningsmålen.

  • Din Azure Machine Learning-arbetsyta måste innehålla ett Azure Machine Learning-beräkningskluster.

Begränsningar

Azure Storage-konto

  • Om du planerar att använda Azure Machine Learning-studio och lagringskontot också finns i det virtuella nätverket finns det extra verifieringskrav:

    • Om lagringskontot använder en tjänstslutpunkt måste arbetsytans privata slutpunkt och lagringstjänstslutpunkt finnas i samma undernät för det virtuella nätverket.
    • Om lagringskontot använder en privat slutpunkt måste arbetsytans privata slutpunkt och privata slutpunkt för lagring finnas i samma virtuella nätverk. I det här fallet kan de finnas i olika undernät.

Azure Container Instances

När din Azure Machine Learning-arbetsyta har konfigurerats med en privat slutpunkt stöds inte distribution till Azure Container Instances i ett virtuellt nätverk. Överväg i stället att använda en hanterad onlineslutpunkt med nätverksisolering.

Azure Container Registry

När ACR finns bakom ett virtuellt nätverk kan Azure Machine Learning inte använda det för att direkt skapa Docker-avbildningar. I stället används beräkningsklustret för att skapa avbildningarna.

Viktigt

Beräkningsklustret som används för att skapa Docker-avbildningar måste kunna komma åt de paketlagringsplatser som används för att träna och distribuera dina modeller. Du kan behöva lägga till nätverkssäkerhetsregler som tillåter åtkomst till offentliga lagringsplatser, använder privata Python-paket eller använder anpassade Docker-avbildningar som redan innehåller paketen.

Varning

Om din Azure Container Registry använder en privat slutpunkt eller tjänstslutpunkt för att kommunicera med det virtuella nätverket kan du inte använda en hanterad identitet med ett Azure Machine Learning-beräkningskluster.

Azure Monitor

Varning

Azure Monitor stöder användning av Azure Private Link för att ansluta till ett virtuellt nätverk. Du måste dock använda det öppna Private Link läget i Azure Monitor. Mer information finns i Private Link åtkomstlägen: Endast privat eller Öppen.

Nödvändig offentlig Internetåtkomst

Azure Machine Learning kräver både inkommande och utgående åtkomst till det offentliga Internet. Följande tabeller ger en översikt över vilken åtkomst som krävs och vad den är till för. Protokollet för alla objekt är TCP. För tjänsttaggar som slutar i .regionersätter region du med Den Azure-region som innehåller din arbetsyta. Till exempel Storage.westus:

Riktning Portar Tjänsttagg Syfte
Inkommande 29876–29877 BatchNodeManagement Skapa, uppdatera och ta bort Azure Machine Learning-beräkningsinstanser och beräkningskluster. Det krävs inte om du använder alternativet Ingen offentlig IP.
Inkommande 44224 AzureMachineLearning Skapa, uppdatera och ta bort Azure Machine Learning-beräkningsinstansen. Det krävs inte om du använder alternativet Ingen offentlig IP.
Utgående 80, 443 AzureActiveDirectory Autentisering med hjälp av Azure AD.
Utgående 443, 8787, 18881 AzureMachineLearning Använda Azure Machine Learning-tjänster.
Utgående 443 BatchNodeManagement.region Kommunikation med Azure Batch serverdel för beräkningar. Ersätt region med Azure-regionen för din arbetsyta.
Utgående 443 AzureResourceManager Skapa Azure-resurser med Azure Machine Learning.
Utgående 443, 445 (*) Storage.region Få åtkomst till data som lagras i Azure Storage-kontot för beräkningskluster och beräkningsinstans. Den här utgående informationen kan användas för att exfiltrera data. Mer information finns i Dataexfiltreringsskydd.
(*) 445 krävs bara om du har en brandvägg mellan ditt virtuella nätverk för Azure ML och en privat slutpunkt för dina lagringskonton.
Utgående 443 AzureFrontDoor.FrontEnd
* Behövs inte i Azure Kina.
Global startpunkt för Azure Machine Learning-studio. Lagra avbildningar och miljöer för AutoML.
Utgående 443 MicrosoftContainerRegistry.region
Observera att taggen har ett beroende av taggen AzureFrontDoor.FirstParty
Åtkomst till Docker-avbildningar som tillhandahålls av Microsoft. Installation av Azure Machine Learning-routern för Azure Kubernetes Service.
Utgående 443 AzureMonitor Används för att logga övervakning och mått till App Insights och Azure Monitor.
Utgående 443 Keyvault.region Få åtkomst till nyckelvalvet för Azure Batch-tjänsten. Behövs bara om arbetsytan har skapats med flaggan hbi_workspace aktiverad.

Tips

Om du behöver IP-adresserna i stället för tjänsttaggar använder du något av följande alternativ:

IP-adresserna kan ändras med jämna mellanrum.

Viktigt

När du använder ett beräkningskluster som inte har konfigurerats för någon offentlig IP-adress måste du tillåta följande trafik:

  • Inkommande från källan till VirtualNetwork och alla portkällor, till målet för VirtualNetwork och målporten 29876, 29877.
  • Inkommande från källan AzureLoadBalancer och alla portkällor till målet VirtualNetwork och port 44224-mål .

Du kan också behöva tillåta utgående trafik till Visual Studio Code och andra webbplatser än Microsoft för installation av paket som krävs av maskininlärningsprojektet. I följande tabell visas vanliga lagringsplatser för maskininlärning:

Värdnamn Syfte

anaconda.com *.anaconda.com
Används för att installera standardpaket.
*.anaconda.org Används för att hämta lagringsplatsdata.
pypi.org Används för att lista beroenden från standardindexet, om sådana finns, och indexet skrivs inte över av användarinställningarna. Om indexet skrivs över måste du också tillåta *.pythonhosted.org.
cloud.r-project.org Används vid installation av CRAN-paket för R-utveckling.
*pytorch.org Används av några exempel som baseras på PyTorch.
*.tensorflow.org Används av några exempel som baseras på Tensorflow.
code.visualstudio.com Krävs för att ladda ned och installera VS Code Desktop. Detta krävs inte för VS Code Web.

update.code.visualstudio.com *.vo.msecnd.net
Används för att hämta VS Code-serverbitar som är installerade på beräkningsinstansen via ett installationsskript.

marketplace.visualstudio.com
vscode.blob.core.windows.net *.gallerycdn.vsassets.io
Krävs för att ladda ned och installera VS Code-tillägg. Dessa aktiverar fjärranslutningen till beräkningsinstanser som tillhandahålls av Azure ML-tillägget för VS Code. Mer information finns i Ansluta till en Azure Machine Learning-beräkningsinstans i Visual Studio Code .
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* Används för att hämta websocket-serverbitar som är installerade på beräkningsinstansen. Websocket-servern används för att överföra begäranden från Visual Studio Code-klienten (skrivbordsprogram) till Visual Studio Code-servern som körs på beräkningsinstansen.

När du använder Azure Kubernetes Service (AKS) med Azure Machine Learning ska du tillåta följande trafik till det virtuella AKS-nätverket:

Information om hur du använder en brandväggslösning finns i Använda en brandvägg med Azure Machine Learning.

Skydda arbetsytan med privat slutpunkt

Azure Private Link kan du ansluta till din arbetsyta med hjälp av en privat slutpunkt. Den privata slutpunkten är en uppsättning privata IP-adresser i ditt virtuella nätverk. Du kan sedan begränsa åtkomsten till din arbetsyta så att den bara sker över de privata IP-adresserna. En privat slutpunkt hjälper till att minska risken för dataexfiltrering.

Mer information om hur du konfigurerar en privat slutpunkt för din arbetsyta finns i Konfigurera en privat slutpunkt.

Varning

Att skydda en arbetsyta med privata slutpunkter säkerställer inte säkerhet från slutpunkt till slutpunkt på egen hand. Du måste följa stegen i resten av den här artikeln och VNet-serien för att skydda enskilda komponenter i lösningen. Om du till exempel använder en privat slutpunkt för arbetsytan, men ditt Azure Storage-konto inte ligger bakom det virtuella nätverket, använder trafik mellan arbetsytan och lagring inte det virtuella nätverket för säkerhet.

Skydda Azure Storage-konton

Azure Machine Learning stöder lagringskonton som konfigurerats för att använda antingen en privat slutpunkt eller en tjänstslutpunkt.

  1. I Azure Portal väljer du Azure Storage-kontot.

  2. Använd informationen i Använd privata slutpunkter för Azure Storage för att lägga till privata slutpunkter för följande lagringsresurser:

    • Blob
    • Fil
    • – behövs bara om du planerar att använda ParallelRunStep i en Azure Machine Learning-pipeline.
    • Tabell – behövs bara om du planerar att använda ParallelRunStep i en Azure Machine Learning-pipeline.

    Skärmbild som visar konfigurationssidan för privat slutpunkt med blob- och filalternativ

    Tips

    När du konfigurerar ett lagringskonto som inte är standardlagringen väljer du underresurstypen Mål som motsvarar det lagringskonto som du vill lägga till.

  3. När du har skapat de privata slutpunkterna för lagringsresurserna väljer du fliken Brandväggar och virtuella nätverk under Nätverk för lagringskontot.

  4. Välj Valda nätverk och välj Microsoft.MachineLearningServices/Workspace sedan resurstyp under Resursinstanser. Välj din arbetsyta med instansnamnet. Mer information finns i Betrodd åtkomst baserat på systemtilldelad hanterad identitet.

    Tips

    Du kan också välja Tillåt att Azure-tjänster i listan över betrodda tjänster får åtkomst till det här lagringskontot för att mer allmänt tillåta åtkomst från betrodda tjänster. Mer information finns i Konfigurera Azure Storage-brandväggar och virtuella nätverk.

    Nätverksområdet på Azure Storage-sidan i Azure Portal när du använder en privat slutpunkt

  5. Välj Spara för att spara konfigurationen.

Tips

När du använder en privat slutpunkt kan du också inaktivera offentlig åtkomst. Mer information finns i tillåt inte offentlig läsåtkomst.

Skydda Azure Key Vault

Azure Machine Learning använder en associerad Key Vault-instans för att lagra följande autentiseringsuppgifter:

  • Anslutningssträngen för det associerade lagringskontot
  • Lösenord till Azure Container Repository-instanser
  • Anslutningssträngar till datalager

Azure Key Vault kan konfigureras för att använda antingen en privat slutpunkt eller en tjänstslutpunkt. Använd följande steg för att använda Azure Machine Learning-experimentfunktioner med Azure Key Vault bakom ett virtuellt nätverk:

Tips

Oavsett om du använder en privat slutpunkt eller tjänstslutpunkt måste nyckelvalvet finnas i samma nätverk som arbetsytans privata slutpunkt.

Information om hur du använder en privat slutpunkt med Azure Key Vault finns i Integrera Key Vault med Azure Private Link.

Aktivera Azure Container Registry (ACR)

Tips

Om du inte använde en befintlig Azure Container Registry när du skapade arbetsytan kanske det inte finns någon. Arbetsytan skapar som standard inte en ACR-instans förrän den behöver en. Om du vill framtvinga skapandet av en modell tränar eller distribuerar du en modell med hjälp av din arbetsyta innan du använder stegen i det här avsnittet.

Azure Container Registry kan konfigureras för att använda en privat slutpunkt. Använd följande steg för att konfigurera arbetsytan så att den använder ACR när den finns i det virtuella nätverket:

  1. Leta reda på namnet på Azure Container Registry för din arbetsyta med någon av följande metoder:

    GÄLLER FÖR:Azure CLI ml extension v2 (aktuell)

    Om du har installerat Machine Learning-tillägget v2 för Azure CLI kan du använda az ml workspace show kommandot för att visa information om arbetsytan. V1-tillägget returnerar inte den här informationen.

    az ml workspace show -w yourworkspacename -g resourcegroupname --query 'container_registry'
    

    Det här kommandot returnerar ett värde som liknar "/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}". Den sista delen av strängen är namnet på Azure Container Registry för arbetsytan.

  2. Begränsa åtkomsten till ditt virtuella nätverk med hjälp av stegen i Anslut privat till en Azure Container Registry. När du lägger till det virtuella nätverket väljer du det virtuella nätverket och undernätet för dina Azure Machine Learning-resurser.

  3. Konfigurera ACR för arbetsytan till Tillåt åtkomst av betrodda tjänster.

  4. Skapa ett Azure Machine Learning-beräkningskluster. Det här klustret används för att skapa Docker-avbildningar när ACR ligger bakom ett virtuellt nätverk. Mer information finns i Skapa ett beräkningskluster.

  5. Använd någon av följande metoder för att konfigurera arbetsytan för att skapa Docker-avbildningar med hjälp av beräkningsklustret.

    Viktigt

    Följande begränsningar gäller När du använder ett beräkningskluster för avbildningsversioner:

    • Endast en CPU-SKU stöds.
    • Om du använder ett beräkningskluster som har konfigurerats utan någon offentlig IP-adress måste du tillhandahålla ett sätt för klustret att komma åt det offentliga Internet. Internetåtkomst krävs vid åtkomst till avbildningar som lagras i Microsoft Container Registry, paket installerade på Pypi, Conda osv. Du måste konfigurera användardefinierad routning (UDR) för att nå en offentlig IP-adress för att få åtkomst till Internet. Du kan till exempel använda brandväggens offentliga IP-adress eller använda Virtual Network NAT med en offentlig IP-adress. Mer information finns i Träna säkert i ett virtuellt nätverk.

    Du kan använda az ml workspace update kommandot för att ange en byggberäkning. Kommandot är detsamma för både v1- och v2 Azure CLI-tilläggen för maskininlärning. I följande kommando ersätter du myworkspace med namnet på arbetsytan, myresourcegroup med resursgruppen som innehåller arbetsytan och mycomputecluster med namnet på beräkningsklustret:

    az ml workspace update --name myworkspace --resource-group myresourcegroup --image-build-compute mycomputecluster
    

Tips

När ACR finns bakom ett virtuellt nätverk kan du också inaktivera offentlig åtkomst till det.

Anslut säkert till din arbetsyta

Om du vill ansluta till en arbetsyta som skyddas bakom ett virtuellt nätverk använder du någon av följande metoder:

  • Azure VPN-gateway – Ansluter lokala nätverk till det virtuella nätverket över en privat anslutning. Anslutningen görs via det offentliga Internet. Det finns två typer av VPN-gatewayer som du kan använda:

  • ExpressRoute – Ansluter lokala nätverk till molnet över en privat anslutning. Anslutningen upprättas med hjälp av en anslutningsleverantör.

  • Azure Bastion – I det här scenariot skapar du en virtuell Azure-dator (kallas ibland en hoppruta) i det virtuella nätverket. Sedan ansluter du till den virtuella datorn med Hjälp av Azure Bastion. Med Bastion kan du ansluta till den virtuella datorn med antingen en RDP- eller SSH-session från din lokala webbläsare. Sedan använder du jump-rutan som utvecklingsmiljö. Eftersom det finns i det virtuella nätverket kan det komma åt arbetsytan direkt. Ett exempel på hur du använder en hoppruta finns i Självstudie: Skapa en säker arbetsyta.

Viktigt

När du använder en VPN-gateway eller ExpressRoute måste du planera hur namnmatchning fungerar mellan dina lokala resurser och de som finns i det virtuella nätverket. Mer information finns i Använda en anpassad DNS-server.

Om du har problem med att ansluta till arbetsytan kan du läsa Felsöka säker arbetsyteanslutning.

Diagnostik för arbetsyta

Du kan köra diagnostik på din arbetsyta från Azure Machine Learning-studio eller Python SDK. När diagnostiken har körts returneras en lista över eventuella identifierade problem. Den här listan innehåller länkar till möjliga lösningar. Mer information finns i Så här använder du arbetsytediagnostik.

Nästa steg

Den här artikeln är en del av en serie om att skydda ett Azure Machine Learning-arbetsflöde. Se de andra artiklarna i den här serien: