Een werkruimte Azure Machine Learning beveiligen met virtuele netwerken

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

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

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

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

Vereisten

  • Lees het artikel Overzicht van netwerkbeveiliging voor meer informatie over veelvoorkomende scenario's voor virtuele netwerken en de algehele architectuur van virtuele netwerken.

  • Lees het artikel Best practices voor azure Machine Learning voor bedrijfsbeveiliging voor meer informatie over best practices.

  • Een bestaand virtueel netwerk en subnet voor gebruik met uw rekenresources.

    Belangrijk

    Het is niet raadzaam om het IP-adresbereik 172.17.0.0/16 voor uw VNet te gebruiken. Dit is het standaardsubnetbereik dat wordt gebruikt door het Docker Bridge-netwerk. Andere bereiken kunnen ook conflicterende bereiken zijn, afhankelijk van wat u wilt verbinden met het virtuele netwerk. Als u bijvoorbeeld van plan bent om uw on-premises netwerk te verbinden met het VNet en uw 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/virtualNetworks/join/action' in de resource van het virtuele netwerk.
    • 'Microsoft.Network/virtualNetworks/subnets/join/action' op de subnetresource.

    Zie Ingebouwde rollen voor netwerken voor meer informatie over Azure RBAC met netwerken

Azure Container Registry

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

  • Als uw Azure Container Registry gebruikmaakt van een privé-eindpunt, moet het zich in hetzelfde virtuele netwerk bevinden als het opslagaccount en de 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 de 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 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 dit 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 voor het bouwen van Docker-installatiekopieën, 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 modus open Private Link 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 welke toegang vereist is en welk doel deze dient. Voor servicetags die eindigen op .region, vervangt u door region de Azure-regio die uw werkruimte bevat. Bijvoorbeeld Storage.westus:

Tip

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

Richting Protocol &
ports
Servicetag Doel
Uitgaand TCP: 80, 443 AzureActiveDirectory Verificatie met behulp van Azure AD.
Uitgaand TCP: 443, 18881
UDP: 5831
AzureMachineLearning Azure Machine Learning-services gebruiken.
Poort 18881 wordt gebruikt voor Python IntelliSense in notebooks.
Poort 5831 wordt gebruikt om een Azure Machine Learning-rekenproces te maken, bij te werken en te verwijderen.
Uitgaand ALLE: 443 BatchNodeManagement.region Communicatie met Azure Batch back-end voor Azure Machine Learning-rekeninstanties/-clusters.
Uitgaand TCP: 443 AzureResourceManager Azure-resources maken met Azure Machine Learning, Azure CLI en Azure Machine Learning SDK.
Uitgaand TCP: 443 Storage.region Toegang tot gegevens die zijn opgeslagen in het Azure Storage-account voor het rekencluster en rekenproces. Deze uitgaande gegevens kunnen worden gebruikt om gegevens te exfiltreren. Zie Bescherming tegen gegevensexfiltratie voor meer informatie.
Uitgaand TCP: 443 AzureFrontDoor.FrontEnd
* Niet nodig in Azure China.
Globaal toegangspunt voor Azure Machine Learning-studio. Afbeeldingen en omgevingen opslaan voor AutoML. Deze uitgaande gegevens kunnen worden gebruikt om gegevens te exfiltreren. Zie Bescherming tegen gegevensexfiltratie voor meer informatie.
Uitgaand TCP: 443 MicrosoftContainerRegistry.region
Houd er rekening mee dat deze tag afhankelijk is van de AzureFrontDoor.FirstParty tag
Toegang tot docker-installatiekopieën die door Microsoft worden geleverd. 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.

Belangrijk

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

  • Inkomend van de bron van VirtualNetwork en een poortbron naar de bestemming van VirtualNetwork en de doelpoort 29876, 29877.
  • Inkomend van bron AzureLoadBalancer en een poortbron naar doel VirtualNetwork en doel 44224 .

Mogelijk moet u ook 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 van toepassing, 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 Gebruikt door enkele voorbeelden op basis van PyTorch.
*.tensorflow.org 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. Deze maken de externe verbinding met rekeninstanties mogelijk die worden geleverd door de Azure ML-extensie voor VS 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-serverbits, 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, moet u het volgende verkeer naar het AKS-VNet toestaan:

Zie Vereiste in- en uitvoercommunicatie configureren 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 via een privé-eindpunt. Het privé-eindpunt is een set privé-IP-adressen in uw virtuele netwerk. U kunt vervolgens de toegang tot uw werkruimte beperken tot alleen via 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 op zichzelf niet voor end-to-end-beveiliging. U moet de stappen in de rest van dit artikel en de VNet-reeks 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 de 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 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 opslagresources:

    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/WorkspaceResourcetype. Selecteer uw werkruimte met exemplaarnaam. Zie Vertrouwde toegang op basis van door het systeem toegewezen beheerde identiteit voor meer informatie.

    Tip

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

    Het netwerkgebied op de pagina Azure Storage in de Azure Portal bij gebruik van een privé-eindpunt

  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 Azure Container Repository-exemplaren
  • Verbindingsreeksen met gegevensarchieven

Azure Key Vault kan worden geconfigureerd voor het gebruik van een privé-eindpunt of service-eindpunt. Voer de volgende stappen uit als u de mogelijkheden van Azure Machine Learning-experimenten wilt 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 Integreren Key Vault 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. 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 uitvoert.

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 (huidig)

    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 -n yourworkspacename -g resourcegroupname --query 'container_registry'
    

    Deze opdracht retourneert een waarde 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é verbinding maken met een Azure Container Registry. Wanneer u het virtuele netwerk toevoegt, selecteert u het virtuele netwerk en subnet voor uw Azure Machine Learning-resources.

  3. Configureer de ACR voor de werkruimte op Toegang door vertrouwde services toestaan.

  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 zijn van toepassing 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 Veilig trainen in een VNet voor meer informatie.

    U kunt de az ml workspace update opdracht gebruiken om een build-berekening in te stellen. De opdracht is hetzelfde voor zowel de v1- als v2 Azure CLI-extensies 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 VNet uitschakelen.

Veilig verbinding maken met uw werkruimte

Als u verbinding wilt maken met een werkruimte die is beveiligd achter een VNet, gebruikt u een van de volgende methoden:

  • 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:

  • ExpressRoute : verbindt on-premises netwerken met de cloud via een privéverbinding. Er wordt verbinding gemaakt met behulp van een connectiviteitsprovider.

  • Azure Bastion : in dit scenario maakt u een virtuele Azure-machine (ook wel een jumpbox 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 VM 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 op uw werkruimte vanuit Azure Machine Learning-studio of de Python SDK. Nadat de diagnose is 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: