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

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 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 Azure Machine Learning bästa praxis 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.

    Tips

    Om du planerar att använda Azure Container Instances i det virtuella nätverket (för att distribuera modeller) måste arbetsytan och det virtuella nätverket finnas i samma resursgrupp. Annars kan de finnas i olika grupper.

  • 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 de inbyggda rollerna 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 valideringskrav:

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

Azure Container Registry

När ACR finns 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 paketlagringsplatserna 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 läget öppna Private Link i Azure Monitor. Mer information finns i Private Link åtkomstlägen: 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 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 du region 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äkningsinstans och beräkningskluster.
Inkommande 44224 AzureMachineLearning Skapa, uppdatera och ta bort Azure Machine Learning beräkningsinstans.
Utgående 443 AzureMonitor Används för att logga övervakning och mått till App Insights och Azure Monitor.
Utgående 80, 443 AzureActiveDirectory Autentisering med Azure AD.
Utgående 443 AzureMachineLearning Använda Azure Machine Learning tjänster.
Utgående 443 AzureResourceManager Skapa Azure-resurser med Azure Machine Learning.
Utgående 443 Storage.region Komma åt data som lagras i Azure Storage-kontot för Azure Batch-tjänsten.
Utgående 443 AzureFrontDoor.FrontEnd
* Behövs inte i Azure Kina.
Global startpunkt för Azure Machine Learning-studio.
Utgående 443 ContainerRegistry.region Få åtkomst till Docker-avbildningar från Microsoft.
Utgående 443 MicrosoftContainerRegistry.region Få åtkomst till Docker-avbildningar från Microsoft. Installation av Azure Machine Learning router för Azure Kubernetes Service.
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.

Du kan också behöva tillåta utgående trafik till Visual Studio Code- och icke-Microsoft-webbplatser 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 även 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.


update.code.visualstudio.com *.vo.msecnd.net
Används för att hämta VS Code-serverbitar som installeras på beräkningsinstansen via ett installationsskript.
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-server 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 bidrar till att minska risken för dataexfiltrering.

Mer information om hur du konfigurerar en privat slutpunkt för din arbetsyta finns i Så här konfigurerar du en privat slutpunkt.

Varning

Att skydda en arbetsyta med privata slutpunkter säkerställer inte själva säkerheten från slutpunkt till slutpunkt. 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 trafiken mellan arbetsytan och lagringen inte det virtuella nätverket för säkerhet.

Skydda Azure Storage-konton

Azure Machine Learning har stöd för lagringskonton som konfigurerats för att använda antingen en privat slutpunkt eller 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.
    • Table – behövs bara om du planerar att använda ParallelRunStep i en Azure Machine Learning pipeline.

    Screenshot showing private endpoint configuration page with blob and file options

    Tips

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

    The networking area on the Azure Storage page in the Azure portal when using private endpoint

  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 att använda antingen en privat slutpunkt eller en tjänstslutpunkt. Använd följande steg för att använda Azure Machine Learning experimenteringsfunktioner 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-tillägg v1 v2 (förhandsversion)

    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.
    • Du kan inte använda ett beräkningskluster som konfigurerats utan någon offentlig IP-adress.

    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.

Datalager och datauppsättningar

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

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

Anteckning

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 validering av datauppsättningar 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) 

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.

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: