Dela via


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

GÄLLER FÖR:Azure CLI ml-tillägget v1Python SDK azureml v1

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 Azure-nätverk.

Dricks

Du kan använda azure machine learning-hanterade virtuella nätverk i stället för stegen i den här artikeln. Med ett hanterat virtuellt nätverk hanterar Azure Machine Learning jobbet med nätverksisolering för din arbetsyta och hanterade beräkningar. Du kan också lägga till privata slutpunkter för resurser som behövs av arbetsytan, till exempel Azure Storage-konto. Mer information finns i Hanterad nätverksisolering för arbetsyta.

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, Bicep-mall eller Terraform-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 Machine Learning-datalager och datauppsättningar
  • 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.

    Varning

    Använd inte 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 och resulterar i fel om det används för ditt virtuella nätverk. 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 också 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/*/read" på den virtuella nätverksresursen. Den här behörigheten behövs inte för distributioner av Azure Resource Manager-mallar (ARM).
    • "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 nätverksroller

Azure Container Registry

  • Azure Container Registry måste vara en Premium-version. Mer information om uppgradering finns i Ändra SKU:er.

  • Om ditt Azure Container Registry använder en privat slutpunkt måste det 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änstens slutpunkt finnas i samma undernät i det virtuella nätverket.
    • Om lagringskontot använder en privat slutpunkt måste arbetsytans privata slutpunkt och lagringens privata slutpunkt 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 ligger bakom ett virtuellt nätverk kan Azure Machine Learning inte använda det för att skapa Docker-avbildningar direkt. 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 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 Åtkomstlägen för Private Link: Endast privat jämfört med Öppna.

Obligatorisk 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 nödvändig åtkomst och vilket syfte den tjänar. För tjänsttaggar som slutar i .regionersätter du region med den Azure-region som innehåller din arbetsyta. Till exempel Storage.westus:

Dricks

På den obligatoriska fliken visas den nödvändiga konfigurationen för inkommande och utgående trafik. På situationsfliken visas valfria konfigurationer för inkommande och utgående trafik som krävs av specifika konfigurationer som du kanske vill aktivera.

Riktning Protokoll &
portar
Tjänsttagg Syfte
Utgående TCP: 80, 443 AzureActiveDirectory Autentisering med Microsoft Entra ID.
Utgående TCP: 443, 18881
UDP: 5831
AzureMachineLearning Använda Azure Machine Learning Services.
Python intellisense i notebook-filer använder port 18881.
När du skapar, uppdaterar och tar bort en Azure Machine Learning-beräkningsinstans används port 5831.
Utgående ANY: 443 BatchNodeManagement.region Kommunikation med Azure Batch-serverdelen för Azure Machine Learning-beräkningsinstanser/-kluster.
Utgående TCP: 443 AzureResourceManager Skapa Azure-resurser med Azure Machine Learning, Azure CLI och Azure Machine Learning SDK.
Utgående TCP: 443 Storage.region Få åtkomst till data som lagras i Azure Storage-kontot för beräkningskluster och beräkningsinstans. Information om hur du förhindrar dataexfiltrering över den här utgående informationen finns i Dataexfiltreringsskydd.
Utgående TCP: 443 AzureFrontDoor.FrontEnd
* Behövs inte i Microsoft Azure som drivs av 21Vianet.
Global startpunkt för Azure Machine Learning-studio. Lagra avbildningar och miljöer för AutoML. Information om hur du förhindrar dataexfiltrering över den här utgående informationen finns i Dataexfiltreringsskydd.
Utgående TCP: 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.

Dricks

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.

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 ditt maskininlärningsprojekt. 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 det finns några, 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 baserade 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 Visual Studio Code Desktop. Detta krävs inte för Visual Studio Code Web.
update.code.visualstudio.com
*.vo.msecnd.net
Används för att hämta Visual Studio 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 Visual Studio Code-tillägg. Dessa värdar aktiverar fjärranslutningen till Beräkningsinstanser som tillhandahålls av Azure ML-tillägget för Visual Studio 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 (skrivbordsprogrammet) till Visual Studio Code-servern som körs på beräkningsinstansen.

Kommentar

När du använder Azure Machine Learning VS Code-tillägget kräver fjärrberäkningsinstansen åtkomst till offentliga lagringsplatser för att installera de paket som krävs av tillägget. Om beräkningsinstansen kräver en proxy för att få åtkomst till dessa offentliga lagringsplatser eller Internet måste du ange och exportera miljövariablerna HTTP_PROXY och HTTPS_PROXY i ~/.bashrc-filen för beräkningsinstansen. Den här processen kan automatiseras vid etablering med hjälp av ett anpassat skript.

När du använder Azure Kubernetes Service (AKS) med Azure Machine Learning tillåter du 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 en privat slutpunkt

Med 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 endast sker via 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 din lösning. 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ända privata slutpunkter för Azure Storage för att lägga till privata slutpunkter för följande lagringsresurser:

    • Blob
    • Arkiv
    • – 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

    Dricks

    När du konfigurerar ett lagringskonto som inte är standardlagringen väljer du den underresurstyp för 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.

    Dricks

    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 konfiguration.

Dricks

När du använder en privat slutpunkt kan du också inaktivera anonym åtkomst. Mer information finns i Tillåt inte anonym åtkomst.

Skydda Azure Key Vault

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

  • Det associerade lagringskontot anslutningssträng
  • 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 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:

Dricks

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)

Dricks

Om du inte använde ett befintligt Azure Container Registry när du skapade arbetsytan kanske det inte finns något. Som standard skapar arbetsytan inte en ACR-instans förrän den behöver en. Om du vill tvinga fram 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-tillägget v1

    Om du har installerat Machine Learning-tillägget v1 för Azure CLI kan du använda az ml workspace show kommandot för att visa information om arbetsytan.

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

    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 ett 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 finns 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 inte har konfigurerats för 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 som är 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 NAT för virtuellt nätverk med en offentlig IP-adress. Mer information finns i Träna på ett säkert sätt 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 Azure CLI-tilläggen v1 och v2 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
    

Dricks

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

Datalager och datauppsättningar

I följande tabell visas de tjänster som du behöver hoppa över validering för:

Tjänst Vill du hoppa över verifieringen som krävs?
Azure Blob Storage Ja
Azure-filresurs Ja
Azure Data Lake Store Gen1 Nej
Azure Data Lake Store Gen2 Nej
Azure SQL Database Ja
PostgreSql Ja

Kommentar

Azure Data Lake Store Gen1 och Azure Data Lake Store Gen2 hoppar över valideringen som standard, så du behöver inte göra något.

Följande kodexempel skapar ett nytt Azure Blob-datalager och anger skip_validation=True.

blob_datastore = Datastore.register_azure_blob_container(workspace=ws,  

                                                         datastore_name=blob_datastore_name,  

                                                         container_name=container_name,  

                                                         account_name=account_name, 

                                                         account_key=account_key, 

                                                         skip_validation=True ) // Set skip_validation to true

Använda datauppsättningar

Syntaxen för att hoppa över datamängdsverifiering liknar följande datauppsättningstyper:

  • Avgränsad fil
  • JSON
  • Parquet
  • SQL
  • Fil

Följande kod skapar en ny JSON-datauppsättning och anger validate=False.

json_ds = Dataset.Tabular.from_json_lines_files(path=datastore_paths, 

validate=False) 

Skydda Azure Monitor och Application Insights

Använd följande steg för att aktivera nätverksisolering för Azure Monitor och Application Insights-instansen för arbetsytan:

  1. Öppna din Application Insights-resurs i Azure-portalen. Fliken Översikt kanske eller kanske inte har en egenskap för Arbetsyta. Om den inte har egenskapen utför du steg 2. Om det gör det kan du gå direkt till steg 3.

    Dricks

    Nya arbetsytor skapar som standard en arbetsytebaserad Application Insights-resurs. Om din arbetsyta nyligen har skapats behöver du inte utföra steg 2.

  2. Uppgradera Application Insights-instansen för din arbetsyta. Anvisningar om hur du uppgraderar finns i Migrera till arbetsytebaserade Application Insights-resurser.

  3. Skapa ett Azure Monitor Private Link-omfång och lägg till Application Insights-instansen från steg 1 till omfånget. Anvisningar om hur du gör detta finns i Konfigurera din privata Azure Monitor-länk.

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 via en privat anslutning. Anslutningen görs via det offentliga Internet. Det finns två typer av VPN-gatewayer som du kan använda:

    • Punkt-till-plats: Varje klientdator använder en VPN-klient för att ansluta till det virtuella nätverket.
    • Plats-till-plats: En VPN-enhet ansluter det virtuella nätverket till ditt lokala nätverk.
  • ExpressRoute – Ansluter lokala nätverk till molnet via en privat anslutning. Anslutningen görs med hjälp av en anslutningsprovider.

  • 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 den finns i det virtuella nätverket kan den 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 namnmatchningen fungerar mellan dina lokala resurser och dem 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: