Delen via


Een Azure Machine Learning-werkruimte beveiligen met virtuele netwerken (v1)

VAN TOEPASSING OP: Azure CLI ml-extensie v1Python SDK azureml v1

In dit artikel leert u hoe u een Azure Machine Learning-werkruimte en de bijbehorende resources in een virtueel Azure-netwerk beveiligt.

Tip

U kunt beheerde virtuele netwerken van Azure Machine Learning gebruiken in plaats van de stappen in dit artikel. Met een beheerd virtueel netwerk verwerkt Azure Machine Learning de taak van netwerkisolatie voor uw werkruimte en beheerde berekeningen. U kunt ook privé-eindpunten toevoegen voor resources die nodig zijn voor de werkruimte, zoals een Azure Storage-account. Zie Werkruimte-beheerd netwerkisolatie voor meer informatie.

Dit artikel maakt deel uit van een reeks over het beveiligen van een Azure Machine Learning-werkstroom. Zie de andere artikelen in deze reeks:

Zie Zelfstudie: Een beveiligde werkruimte, Bicep-sjabloon of Terraform-sjabloon maken voor een zelfstudie over het maken van een beveiligde werkruimte.

In dit artikel leert u hoe u de volgende werkruimtebronnen in een virtueel netwerk inschakelt:

  • Azure Machine Learning-werkruimte
  • Azure Storage-accounts
  • Azure Machine Learning-gegevensarchieven en gegevenssets
  • Azure Key Vault
  • Azure Container Registry

Vereisten

  • Lees het artikel Netwerkbeveiligingsoverzicht voor meer informatie over algemene scenario's voor virtuele netwerken en de algehele architectuur van virtuele netwerken.

  • Lees het artikel over aanbevolen procedures voor Azure Machine Learning voor bedrijfsbeveiliging voor meer informatie over aanbevolen procedures.

  • Een bestaand virtueel netwerk en subnet dat u met uw rekenresources kunt gebruiken.

    Waarschuwing

    Gebruik het IP-adresbereik 172.17.0.0/16 niet voor uw VNet. Dit is het standaardsubnetbereik dat wordt gebruikt door het Docker Bridge-netwerk en resulteert in fouten als deze worden gebruikt voor uw VNet. Andere bereiken kunnen ook conflict veroorzaken, afhankelijk van wat je wilt verbinden met het virtuele netwerk. Als je bijvoorbeeld van plan bent om je on-premises netwerk te verbinden met het VNet en je on-premises netwerk ook het bereik 172.16.0.0/16 gebruikt. Uiteindelijk is het aan u om uw netwerkinfrastructuur te plannen.

  • Als u resources wilt implementeren in een virtueel netwerk of subnet, moet uw gebruikersaccount machtigingen hebben voor de volgende acties in op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC):

    • 'Microsoft.Network/*/read' in de resource van het virtuele netwerk. Deze machtiging is niet nodig voor arm-sjabloonimplementaties (Azure Resource Manager).
    • 'Microsoft.Network/virtualNetworks/join/action' in de resource van het virtuele netwerk.
    • 'Microsoft.Network/virtualNetworks/subnetten/join/action' in de subnetresource.

    Zie de ingebouwde netwerkrollen voor meer informatie over Azure RBAC met netwerken

Azure Container Registry

  • Uw Azure Container Registry moet de Premium-versie zijn. Zie Veranderende SKU's voor meer informatie over het upgraden.

  • Als uw Azure Container Registry een privé-eindpunt gebruikt, moet het zich in hetzelfde virtuele netwerk bevinden als het opslagaccount en rekendoelen die worden gebruikt voor training of deductie. Als het een service-eindpunt gebruikt, moet het zich in hetzelfde virtuele netwerk en subnet bevinden als het opslagaccount en rekendoelen.

  • Uw Azure Machine Learning-werkruimte moet een Azure Machine Learning-rekencluster bevatten.

Beperkingen

Azure-opslagaccount

  • Als u van plan bent om Azure Machine Learning-studio te gebruiken en het opslagaccount zich ook in het VNet bevindt, zijn er extra validatievereisten:

    • Als het opslagaccount een service-eindpunt gebruikt, moeten het privé-eindpunt van de werkruimte en het eindpunt van de opslagservice zich in hetzelfde subnet van het VNet bevinden.
    • Als het opslagaccount een privé-eindpunt gebruikt, moeten het privé-eindpunt van de werkruimte en het privé-eindpunt van de opslag zich in hetzelfde VNet bevinden. In dit geval kunnen ze zich in verschillende subnetten bevinden.

Azure Container Instances

Wanneer uw Azure Machine Learning-werkruimte is geconfigureerd met een privé-eindpunt, wordt implementeren naar Azure Container Instances in een VNet niet ondersteund. Overweeg in plaats daarvan het gebruik van een beheerd online-eindpunt met netwerkisolatie.

Azure Container Registry

Wanneer ACR zich achter een virtueel netwerk bevindt, kan Azure Machine Learning het niet gebruiken om rechtstreeks Docker-installatiekopieën te bouwen. In plaats daarvan wordt het rekencluster gebruikt om de installatiekopieën te bouwen.

Belangrijk

Het rekencluster dat wordt gebruikt om Docker-installatiekopieën te bouwen, moet toegang hebben tot de pakketopslagplaatsen die worden gebruikt voor het trainen en implementeren van uw modellen. Mogelijk moet u netwerkbeveiligingsregels toevoegen die toegang tot openbare opslagplaatsen toestaan, persoonlijke Python-pakketten gebruiken of aangepaste Docker-installatiekopieën gebruiken die al de pakketten bevatten.

Waarschuwing

Als uw Azure Container Registry een privé-eindpunt of service-eindpunt gebruikt om te communiceren met het virtuele netwerk, kunt u geen beheerde identiteit gebruiken met een Azure Machine Learning-rekencluster.

Azure Monitor

Waarschuwing

Azure Monitor ondersteunt het gebruik van Azure Private Link om verbinding te maken met een VNet. U moet echter de open Private Link-modus gebruiken in Azure Monitor. Zie Private Link-toegangsmodi: Alleen privé versus Openen voor meer informatie.

Openbare netwerktoegang blokkeren

Azure Machine Learning vereist zowel binnenkomende als uitgaande toegang tot het openbare internet. De volgende tabellen bieden een overzicht van de vereiste toegang en welk doel het dient. Voor servicetags die eindigen .region, vervangt u door region de Azure-regio die uw werkruimte bevat. Bijvoorbeeld Storage.westus:

Tip

Het vereiste tabblad bevat de vereiste configuratie voor inkomend en uitgaand verkeer. Het tabblad Situatie bevat optionele inkomende en uitgaande configuraties die vereist zijn voor specifieke configuraties die u mogelijk wilt inschakelen.

Richting Protocol &
poorten
Servicetag Doel
Uitgaand TCP: 80, 443 AzureActiveDirectory Verificatie met behulp van Microsoft Entra ID.
Uitgaand TCP: 443, 18881
UDP: 5831
AzureMachineLearning Azure Machine Learning Services gebruiken.
Python intellisense in notebooks maakt gebruik van poort 18881.
Het maken, bijwerken en verwijderen van een Azure Machine Learning-rekenproces maakt gebruik van poort 5831.
Uitgaand ELKE: 443 BatchNodeManagement.region Communicatie met Azure Batch-back-end voor Azure Machine Learning-rekeninstanties/-clusters.
Uitgaand TCP: 443 AzureResourceManager Het maken van Azure-resources met Azure Machine Learning, Azure CLI en Azure Machine Learning SDK.
Uitgaand TCP: 443 Storage.region Bekijk gegevens die zijn opgeslagen in het Azure Storage-account voor het rekencluster en rekenproces. Zie Gegevensexfiltratiebeveiliging voor informatie over het voorkomen van gegevensexfiltratie via deze uitgaande gegevens.
Uitgaand TCP: 443 AzureFrontDoor.FrontEnd
* Niet nodig in Microsoft Azure beheerd door 21Vianet.
Globaal toegangspunt voor Azure Machine Learning-studio. Afbeeldingen en omgevingen opslaan voor AutoML. Zie Gegevensexfiltratiebeveiliging voor informatie over het voorkomen van gegevensexfiltratie via deze uitgaande gegevens.
Uitgaand TCP: 443 MicrosoftContainerRegistry.region
Houd er rekening mee dat deze tag afhankelijk is van de AzureFrontDoor.FirstParty tag
Toegang tot Docker-installatiekopieën van Microsoft. Installatie van de Azure Machine Learning-router voor Azure Kubernetes Service.

Tip

Als u de IP-adressen nodig hebt in plaats van servicetags, gebruikt u een van de volgende opties:

De IP-adressen kunnen periodiek worden gewijzigd.

Mogelijk moet u uitgaand verkeer naar Visual Studio Code- en niet-Microsoft-sites toestaan voor de installatie van pakketten die vereist zijn voor uw machine learning-project. De volgende tabel bevat veelgebruikte opslagplaatsen voor machine learning:

Hostnaam Doel
anaconda.com
*.anaconda.com
Wordt gebruikt om standaardpakketten te installeren.
*.anaconda.org Wordt gebruikt om opslagplaatsgegevens op te halen.
pypi.org Wordt gebruikt om afhankelijkheden van de standaardindex weer te geven, indien aanwezig, en de index wordt niet overschreven door gebruikersinstellingen. Als de index wordt overschreven, moet u ook toestaan *.pythonhosted.org.
cloud.r-project.org Wordt gebruikt bij het installeren van CRAN-pakketten voor R-ontwikkeling.
*.pytorch.org Wordt gebruikt door enkele voorbeelden op basis van PyTorch.
*.tensorflow.org Wordt gebruikt door enkele voorbeelden op basis van Tensorflow.
code.visualstudio.com Vereist voor het downloaden en installeren van visual Studio Code-bureaublad. Dit is niet vereist voor Visual Studio Code Web.
update.code.visualstudio.com
*.vo.msecnd.net
Wordt gebruikt voor het ophalen van Visual Studio Code-serverbits die zijn geïnstalleerd op het rekenproces via een installatiescript.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
Vereist voor het downloaden en installeren van Visual Studio Code-extensies. Deze hosts maken de externe verbinding mogelijk met compute-exemplaren die worden geleverd door de Azure ML-extensie voor Visual Studio Code. Zie Verbinding maken met een Azure Machine Learning-rekenproces in Visual Studio Code voor meer informatie.
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* Wordt gebruikt voor het ophalen van websocket-server-bits, die zijn geïnstalleerd op het rekenproces. De WebSocket-server wordt gebruikt voor het verzenden van aanvragen van de Visual Studio Code-client (desktoptoepassing) naar de Visual Studio Code-server die wordt uitgevoerd op het rekenproces.

Notitie

Wanneer u de Azure Machine Learning VS Code-extensie gebruikt, heeft het externe rekenproces toegang nodig tot openbare opslagplaatsen om de pakketten te installeren die vereist zijn voor de extensie. Als voor het rekenproces een proxy is vereist voor toegang tot deze openbare opslagplaatsen of internet, moet u de HTTP_PROXY en HTTPS_PROXY omgevingsvariabelen instellen en exporteren in het bestand van het ~/.bashrc rekenproces. Dit proces kan tijdens het inrichten worden geautomatiseerd met behulp van een aangepast script.

Wanneer u Azure Kubernetes Service (AKS) gebruikt met Azure Machine Learning, staat u het volgende verkeer naar het AKS-VNet toe:

Zie Een firewall gebruiken met Azure Machine Learning voor meer informatie over het gebruik van een firewalloplossing.

De werkruimte beveiligen met een privé-eindpunt

Met Azure Private Link kunt u verbinding maken met uw werkruimte met behulp van een privé-eindpunt. Het privé-eindpunt is een set privé-IP-adressen binnen uw virtuele netwerk. Vervolgens kunt u de toegang tot uw werkruimte beperken tot alleen de privé-IP-adressen. Een privé-eindpunt helpt het risico op gegevensexfiltratie te verminderen.

Zie Een privé-eindpunt configureren voor meer informatie over het configureren van een privé-eindpunt voor uw werkruimte.

Waarschuwing

Het beveiligen van een werkruimte met privé-eindpunten zorgt niet voor end-to-end beveiliging zelf. U moet de stappen in de rest van dit artikel en de VNet-serie volgen om afzonderlijke onderdelen van uw oplossing te beveiligen. Als u bijvoorbeeld een privé-eindpunt voor de werkruimte gebruikt, maar uw Azure Storage-account zich niet achter het VNet bevindt, gebruikt verkeer tussen de werkruimte en opslag het VNet niet voor beveiliging.

Azure-opslagaccounts beveiligen

Azure Machine Learning ondersteunt opslagaccounts die zijn geconfigureerd voor het gebruik van een privé-eindpunt of service-eindpunt.

  1. Selecteer in Azure Portal het Azure Storage-account.

  2. Gebruik de informatie in Privé-eindpunten gebruiken voor Azure Storage om privé-eindpunten toe te voegen voor de volgende opslagbronnen:

    • Blob
    • Bestand
    • Wachtrij: alleen nodig als u Van plan bent Om ParallelRunStep te gebruiken in een Azure Machine Learning-pijplijn.
    • Tabel: alleen nodig als u ParallelRunStep wilt gebruiken in een Azure Machine Learning-pijplijn.

    Schermopname van de configuratiepagina voor privé-eindpunten met blob- en bestandsopties

    Tip

    Wanneer u een opslagaccount configureert dat niet de standaardopslag is, selecteert u het type doelsubresource dat overeenkomt met het opslagaccount dat u wilt toevoegen.

  3. Nadat u de privé-eindpunten voor de opslagresources hebt gemaakt, selecteert u het tabblad Firewalls en virtuele netwerken onder Netwerken voor het opslagaccount.

  4. Selecteer Geselecteerde netwerken en selecteer vervolgens onder Resource-exemplaren de optie Microsoft.MachineLearningServices/Workspace Als het resourcetype. Selecteer uw werkruimte met de naam van het exemplaar. Zie Vertrouwde toegang op basis van door het systeem toegewezen beheerde identiteit voor meer informatie.

    Tip

    U kunt ook Azure-services in de lijst met vertrouwde services toestaan selecteren om toegang te krijgen tot dit opslagaccount om toegang te verlenen vanuit vertrouwde services. Raadpleeg Firewalls en virtuele netwerken voor Azure Storage configureren voor meer informatie.

    Het netwerkgebied op de pagina Azure Storage in Azure Portal wanneer u een privé-eindpunt gebruikt

  5. Selecteer Opslaan om de configuratie op te slaan.

Tip

Wanneer u een privé-eindpunt gebruikt, kunt u ook anonieme toegang uitschakelen. Zie anonieme toegang niet toestaan voor meer informatie.

Azure Key Vault beveiligen

Azure Machine Learning maakt gebruik van een gekoppeld Key Vault-exemplaar om de volgende referenties op te slaan:

  • Het gekoppelde opslagaccount verbindingsreeks
  • Wachtwoorden voor Azure Container Repository-exemplaren
  • Verbindingsreeksen voor gegevensarchieven

Azure Key Vault kan worden geconfigureerd voor gebruik van een privé-eindpunt of service-eindpunt. Gebruik de volgende stappen om azure Machine Learning-experimenten te gebruiken met Azure Key Vault achter een virtueel netwerk:

Tip

Ongeacht of u een privé-eindpunt of service-eindpunt gebruikt, moet de sleutelkluis zich in hetzelfde netwerk bevinden als het privé-eindpunt van de werkruimte.

Zie Key Vault integreren met Azure Private Link voor meer informatie over het gebruik van een privé-eindpunt met Azure Key Vault.

Azure Container Registry (ACR) inschakelen

Tip

Als u geen bestaande Azure Container Registry hebt gebruikt bij het maken van de werkruimte, bestaat deze mogelijk niet. Standaard maakt de werkruimte geen ACR-exemplaar totdat deze er een nodig heeft. Als u het maken van een model wilt afdwingen, traint of implementeert u een model met behulp van uw werkruimte voordat u de stappen in deze sectie gebruikt.

Azure Container Registry kan worden geconfigureerd voor het gebruik van een privé-eindpunt. Gebruik de volgende stappen om uw werkruimte te configureren voor het gebruik van ACR wanneer deze zich in het virtuele netwerk bevindt:

  1. Zoek de naam van azure Container Registry voor uw werkruimte met behulp van een van de volgende methoden:

    VAN TOEPASSING OP: Azure CLI ml-extensie v1

    Als u de Machine Learning-extensie v1 voor Azure CLI hebt geïnstalleerd, kunt u de az ml workspace show opdracht gebruiken om de werkruimtegegevens weer te geven.

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

    Met deze opdracht wordt een waarde geretourneerd die vergelijkbaar is met "/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}". Het laatste deel van de tekenreeks is de naam van het Azure Container Registry voor de werkruimte.

  2. Beperk de toegang tot uw virtuele netwerk met behulp van de stappen in Privé verbinden met een Azure Container Registry. Wanneer u het virtuele netwerk toevoegt, selecteert u het virtuele netwerk en het subnet voor uw Azure Machine Learning-resources.

  3. Configureer de ACR voor de werkruimte om toegang door vertrouwde services toe te staan.

  4. Maak een Azure Machine Learning-rekencluster. Dit cluster wordt gebruikt om Docker-installatiekopieën te bouwen wanneer ACR zich achter een VNet bevindt. Zie Een rekencluster maken voor meer informatie.

  5. Gebruik een van de volgende methoden om de werkruimte te configureren voor het bouwen van Docker-installatiekopieën met behulp van het rekencluster.

    Belangrijk

    De volgende beperkingen gelden wanneer u een rekencluster gebruikt voor builds van installatiekopieën:

    • Alleen een CPU-SKU wordt ondersteund.
    • Als u een rekencluster gebruikt dat is geconfigureerd voor geen openbaar IP-adres, moet u het cluster op een of andere manier toegang geven tot het openbare internet. Internettoegang is vereist bij het openen van installatiekopieën die zijn opgeslagen in Het Microsoft Container Registry, pakketten die zijn geïnstalleerd op Pypi, Conda, enzovoort. U moet door de gebruiker gedefinieerde routering (UDR) configureren om toegang te krijgen tot een openbaar IP-adres voor toegang tot internet. U kunt bijvoorbeeld het openbare IP-adres van uw firewall gebruiken of u kunt Virtual Network NAT gebruiken met een openbaar IP-adres. Zie Hoe u veilig traint in een VNet voor meer informatie.

    U kunt de az ml workspace update opdracht gebruiken om een build-rekenproces in te stellen. De opdracht is hetzelfde voor zowel de Azure CLI-extensies v1 als v2 voor machine learning. Vervang in de volgende opdracht door myworkspace de naam van uw werkruimte, myresourcegroup door de resourcegroep die de werkruimte bevat en mycomputecluster door de naam van het rekencluster:

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

Tip

Wanneer ACR zich achter een VNet bevindt, kunt u ook openbare toegang tot het netwerk uitschakelen.

Gegevensarchieven en gegevenssets

De volgende tabel bevat de services waarvoor u validatie moet overslaan:

Service Validatie overslaan vereist?
Azure Blob Storage Ja
Azure-bestandsshare Ja
Azure Data Lake Store Gen1 Nee
Azure Data Lake Store Gen2 Nee
Azure SQL-database Ja
PostgreSql Ja

Notitie

Azure Data Lake Store Gen1 en Azure Data Lake Store Gen2 slaan standaard validatie over, dus u hoeft niets te doen.

Met het volgende codevoorbeeld maakt u een nieuw Azure Blob-gegevensarchief en stelt u deze in 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

Gegevenssets gebruiken

De syntaxis voor het overslaan van gegevenssetvalidatie is vergelijkbaar voor de volgende typen gegevenssets:

  • Bestand met scheidingstekens
  • JSON
  • Parquet
  • SQL
  • Bestand

Met de volgende code wordt een nieuwe JSON-gegevensset en sets gemaakt validate=False.

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

validate=False) 

Azure Monitor en Application Insights beveiligen

Gebruik de volgende stappen om netwerkisolatie in te schakelen voor Azure Monitor en het Application Insights-exemplaar voor de werkruimte:

  1. Open uw Application Insights-resource in Azure Portal. Het tabblad Overzicht heeft mogelijk of geen eigenschap Werkruimte. Als de eigenschap niet is ingesteld, voert u stap 2 uit. Als dit het geval is, kunt u rechtstreeks doorgaan naar stap 3.

    Tip

    Nieuwe werkruimten maken standaard een Application Insights-resource op basis van een werkruimte. Als uw werkruimte onlangs is gemaakt, hoeft u stap 2 niet uit te voeren.

  2. Voer een upgrade uit van het Application Insights-exemplaar voor uw werkruimte. Zie Migreren naar Application Insights-resources op basis van een werkruimte voor stappen voor het upgraden.

  3. Maak een Azure Monitor Private Link-bereik en voeg het Application Insights-exemplaar van stap 1 toe aan het bereik. Zie De privékoppeling van Azure Monitor configureren voor stappen voor meer informatie over hoe u dit doet.

Veilig verbinding maken met uw werkruimte

Gebruik een van de volgende methoden om verbinding te maken met een werkruimte die wordt beveiligd achter een VNet:

  • Azure VPN-gateway : verbindt on-premises netwerken met het VNet via een privéverbinding. Er wordt verbinding gemaakt via het openbare internet. Er zijn twee typen VPN-gateways die u kunt gebruiken:

    • Punt-naar-site: elke clientcomputer gebruikt een VPN-client om verbinding te maken met het VNet.
    • Site-naar-site: een VPN-apparaat verbindt het VNet met uw on-premises netwerk.
  • ExpressRoute : verbindt on-premises netwerken met de cloud via een privéverbinding. Verbinding wordt gemaakt met behulp van een connectiviteitsprovider.

  • Azure Bastion : in dit scenario maakt u een virtuele Azure-machine (ook wel een jump box genoemd) in het VNet. Vervolgens maakt u verbinding met de virtuele machine met behulp van Azure Bastion. Met Bastion kunt u verbinding maken met de virtuele machine met behulp van een RDP- of SSH-sessie vanuit uw lokale webbrowser. Vervolgens gebruikt u de jumpbox als uw ontwikkelomgeving. Omdat het zich in het VNet bevindt, heeft het rechtstreeks toegang tot de werkruimte. Zie Zelfstudie: Een beveiligde werkruimte maken voor een voorbeeld van het gebruik van een jumpbox.

Belangrijk

Wanneer u een VPN-gateway of ExpressRoute gebruikt, moet u plannen hoe naamomzetting werkt tussen uw on-premises resources en die in het VNet. Zie Een aangepaste DNS-server gebruiken voor meer informatie.

Als u problemen ondervindt bij het maken van verbinding met de werkruimte, raadpleegt u Problemen met beveiligde werkruimteconnectiviteit oplossen.

Werkruimtediagnose

U kunt diagnostische gegevens uitvoeren in uw werkruimte vanuit Azure Machine Learning-studio of de Python SDK. Nadat diagnostische gegevens zijn uitgevoerd, wordt een lijst met gedetecteerde problemen geretourneerd. Deze lijst bevat koppelingen naar mogelijke oplossingen. Zie Diagnostische gegevens over werkruimten gebruiken voor meer informatie.

Volgende stappen

Dit artikel maakt deel uit van een reeks over het beveiligen van een Azure Machine Learning-werkstroom. Zie de andere artikelen in deze reeks: