Een werkruimte Azure Machine Learning beveiligen met virtuele netwerken

VAN TOEPASSING OP:Azure CLI ml-extensie v2 (huidig)Python SDK azure-ai-ml v2 (huidige)

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

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

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

Vereisten

  • Lees het overzichtsartikel over netwerkbeveiliging voor meer informatie over algemene scenario's voor virtuele netwerken en de algemene architectuur van het virtuele netwerk.

  • Lees het best practices 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.

    Belangrijk

    We raden u niet aan om het IP-adresbereik 172.17.0.0/16 voor uw VNet te gebruiken. Dit is het standaardsubnetbereik dat wordt gebruikt door het Docker-brugnetwerk. Andere bereiken kunnen ook conflicterende bereiken veroorzaken, afhankelijk van wat u wilt verbinden met het virtuele netwerk. Als u bijvoorbeeld van plan bent uw on-premises netwerk te verbinden met het VNet en uw on-premises netwerk maakt ook gebruik van het bereik 172.16.0.0/16. 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/virtualNetworks/join/action' in de virtuele netwerkresource.
    • '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 dit zich in hetzelfde virtuele netwerk bevinden als het opslagaccount en de rekendoelen die worden gebruikt voor training of deductie. Als er een service-eindpunt wordt 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 Storage-account

  • 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 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 in Azure Container Instances in een VNet niet ondersteund. Overweeg in plaats daarvan een beheerd online-eindpunt te gebruiken met netwerkisolatie.

Azure Container Registry

Wanneer ACR zich achter een virtueel netwerk bevindt, kan Azure Machine Learning dit niet gebruiken om docker-installatiekopieën rechtstreeks 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 de pakketten al 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 in Azure Monitor gebruiken. Zie Private Link toegangsmodi: Alleen privé versus Openen voor meer informatie.

Vereiste openbare internettoegang

Azure Machine Learning vereist zowel binnenkomende als uitgaande toegang tot het openbare internet. De volgende tabellen bieden een overzicht van de toegang die nodig is en waarvoor deze is bedoeld. Het protocol voor alle items is TCP. Voor servicetags die eindigen .region, vervangt u region door de Azure-regio die uw werkruimte bevat. Bijvoorbeeld Storage.westus:

Richting Poorten Servicetag Doel
Inkomend 29876-29877 BatchNodeManagement Een Azure Machine Learning-rekenproces en rekencluster maken, bijwerken en verwijderen. Dit is niet vereist als u geen openbare IP-optie gebruikt.
Inkomend 44224 AzureMachineLearning Een Azure Machine Learning-rekenproces maken, bijwerken en verwijderen. Dit is niet vereist als u geen openbare IP-optie gebruikt.
Uitgaand 80, 443 AzureActiveDirectory Verificatie met behulp van Azure AD.
Uitgaand 443, 8787, 18881 AzureMachineLearning Azure Machine Learning-services gebruiken.
Uitgaand 443 BatchNodeManagement.region Communicatie met Azure Batch back-end voor berekeningen. Vervang region door de Azure-regio van uw werkruimte.
Uitgaand 443 AzureResourceManager Het maken van Azure-resources met Azure Machine Learning.
Uitgaand 443, 445 (*) Storage.region Toegang tot gegevens die zijn opgeslagen in het Azure Storage-account voor het rekencluster en het rekenproces. Deze uitgaande gegevens kunnen worden gebruikt om gegevens te exfiltreren. Zie Gegevensexfiltratiebeveiliging voor meer informatie.
(*) 445 is alleen vereist als u een firewall hebt tussen uw virtuele netwerk voor Azure ML en een privé-eindpunt voor uw opslagaccounts.
Uitgaand 443 AzureFrontDoor.FrontEnd
* Niet nodig in Azure China.
Globaal toegangspunt voor Azure Machine Learning-studio. Sla afbeeldingen en omgevingen op voor AutoML.
Uitgaand 443 MicrosoftContainerRegistry.region
Houd er rekening mee dat deze tag een afhankelijkheid heeft van de tag AzureFrontDoor.FirstParty
Toegang tot docker-installatiekopieën van Microsoft. Installatie van de Azure Machine Learning-router voor Azure Kubernetes Service.
Uitgaand 443 AzureMonitor Wordt gebruikt om bewaking en metrische gegevens te registreren bij App Insights en Azure Monitor.
Uitgaand 443 Keyvault.region Toegang tot de sleutelkluis voor de Azure Batch-service. Alleen nodig als uw werkruimte is gemaakt met de vlag hbi_workspace ingeschakeld.

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.

Belangrijk

Wanneer u een rekencluster gebruikt dat is geconfigureerd voor geen openbaar IP-adres, moet u het volgende verkeer toestaan:

  • Binnenkomend van de bron van VirtualNetwork en elke poortbron naar de bestemming van VirtualNetwork en de doelpoort van 29876, 29877.
  • Binnenkomend van bron AzureLoadBalancer en elke poortbron naar de bestemming VirtualNetwork en poort 44224-bestemming .

Mogelijk moet u ook uitgaand verkeer naar Visual Studio Code en niet-Microsoft-sites toestaan voor de installatie van pakketten die zijn vereist 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 *.pythonhosted.org toestaan.
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 VS Code Desktop. Dit is niet vereist voor VS Code Web.

update.code.visualstudio.com *.vo.msecnd.net
Wordt gebruikt om VS Code-serverbits op te halen 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 VS Code-extensies. Hiermee kunt u de externe verbinding met compute-exemplaren van de Azure ML-extensie voor VS Code inschakelen. 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 om websocket-serverbits op te halen, die zijn geïnstalleerd op het rekenproces. De websocket-server wordt gebruikt voor het verzenden van aanvragen van de Visual Studio Code-client (bureaubladtoepassing) naar de Visual Studio Code-server die wordt uitgevoerd op het rekenproces.

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

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 uw werkruimte voor meer informatie over het configureren van een privé-eindpunt.

Waarschuwing

Het beveiligen van een werkruimte met privé-eindpunten garandeert zelf geen end-to-end beveiliging. 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 Storage-accounts beveiligen

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

  1. Selecteer in de 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
    • File
    • Wachtrij : alleen nodig als u ParallelRunStep wilt 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/WorkspaceAls 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 Toestaan van Azure-services selecteren in de lijst met vertrouwde services 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 Azure Storage-pagina in de 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 openbare toegang uitschakelen. Zie openbare leestoegang 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 connection string
  • Wachtwoorden voor Instanties van Azure Container Repository
  • Verbindingsreeksen met gegevensarchieven

Azure Key Vault kan worden geconfigureerd voor het 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 er mogelijk geen. De werkruimte maakt standaard 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 de Azure Container Registry voor uw werkruimte met behulp van een van de volgende methoden:

    VAN TOEPASSING OP:Azure CLI ml-extensie v2 (actueel)

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

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

    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 de 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 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 Veilig trainen 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 myworkspace in de volgende opdracht 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.

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. Verbinding wordt gemaakt via het openbare internet. Er zijn twee typen VPN-gateways die u kunt gebruiken:

  • 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 jump box als uw ontwikkelomgeving. Omdat het zich in het VNet bevindt, heeft deze 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 met 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: