Een werkruimte Azure Machine Learning beveiligen met virtuele netwerken

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

Tip

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

Zie Zelfstudie: Een beveiligde werkruimte maken of Zelfstudie: Een beveiligde werkruimte maken met behulp van een sjabloon voor een zelfstudie over het maken van een beveiligde werkruimte.

In dit artikel leert u hoe u de volgende werkruimte-resources in een virtueel netwerk kunt inschakelen:

  • Azure Machine Learning-werkruimte
  • Azure Storage-accounts
  • Azure Machine Learning en gegevenssets maken
  • 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 Azure Machine Learning best practices for enterprise security (Best practices voor bedrijfsbeveiliging) voor meer informatie over best practices.

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

    Tip

    Als u van plan bent om Azure Container Instances te gebruiken in het virtuele netwerk (om modellen te implementeren), moeten de werkruimte en het virtuele netwerk zich in dezelfde resourcegroep. Anders kunnen ze zich in verschillende groepen.

  • 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' op de resource van het virtuele netwerk.
    • 'Microsoft.Network/virtualNetworks/subnet/join/action' op de subnetresource.

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

Azure Container Registry

Beperkingen

Azure Storage-account

  • Als u van plan bent om Azure Machine Learning Studio en het opslagaccount zich ook in het VNet, zijn er extra validatievereisten:

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

Azure Container Registry

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

Belangrijk

Het rekencluster dat wordt gebruikt om Docker-afbeeldingen te bouwen, moet toegang hebben tot de pakket-opslagplaatsen die worden gebruikt om uw modellen te trainen en te implementeren. Mogelijk moet u netwerkbeveiligingsregels toevoegen die toegang tot openbare repatriëring toestaan, persoonlijke Python-pakkettengebruiken of aangepaste Docker-afbeeldingen gebruiken die al de pakketten bevatten.

Waarschuwing

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

Azure Monitor

Waarschuwing

Azure Monitor ondersteunt het gebruik Azure Private Link verbinding te maken met een VNet. De Azure Machine Learning echter geen ondersteuning voor het gebruik van een private link-Azure Monitor (inclusief Azure-toepassing Insights). Do _configureer geen private link voor de Azure Monitor of Azure-toepassing Insights u wilt gebruiken met Azure Machine Learning.

Vereiste openbare internettoegang

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

Richting Poorten Servicetag Doel
Inkomend 29876-29877 BatchNodeManagement Een reken-exemplaar en rekencluster Azure Machine Learning, bijwerken en verwijderen.
Inkomend 44224 AzureMachineLearning Een reken-exemplaar maken, bijwerken Azure Machine Learning verwijderen.
Uitgaand 443 AzureMonitor Wordt gebruikt om bewaking en metrische gegevens te loggen in App Insights en Azure Monitor.
Uitgaand 80, 443 AzureActiveDirectory Verificatie met behulp van Azure AD.
Uitgaand 443 AzureMachineLearning Het gebruik Azure Machine Learning services.
Uitgaand 443 AzureResourceManager Het maken van Azure-resources met Azure Machine Learning.
Uitgaand 443 Storage.region Toegang tot gegevens die zijn opgeslagen in Azure Storage-account voor de Azure Batch service.
Uitgaand 443 AzureFrontDoor.FrontEnd
* Niet nodig in Azure China.
Wereldwijd toegangspunt voor Azure Machine Learning Studio.
Uitgaand 443 ContainerRegistry.region Toegang tot Docker-afbeeldingen die worden geleverd door Microsoft.
Uitgaand 443 MicrosoftContainerRegistry.region Toegang tot Docker-afbeeldingen die worden geleverd door Microsoft. Installatie van de Azure Machine Learning router voor Azure Kubernetes Service.
Uitgaand 443 Keyvault.region Toegang tot de sleutelkluis voor de Azure Batch service. Alleen nodig als uw werkruimte is gemaakt met de 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.

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 gegevens van de repo op te halen.
pypi.org Wordt gebruikt om afhankelijkheden van de standaardindex weer te bieden, indien vandaan, en de index wordt niet overschreven door de gebruikersinstellingen. Als de index wordt overschreven, moet u ook *.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.
update.code.visualstudio.com

Wordt gebruikt om VS Code-serverbits op te halen, die zijn geïnstalleerd op het reken-exemplaar via een installatiescript.
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 reken-exemplaar. De websocket-server wordt gebruikt voor het verzenden van aanvragen van Visual Studio Code-client (bureaubladtoepassing) naar Visual Studio Code-server die wordt uitgevoerd op het reken-exemplaar.

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

  • Algemene vereisten voor uitgaand/uitgaand verkeer voor AKS, zoals beschreven in het artikel Uitgaand verkeer in Azure Kubernetes Service AKS.
  • Uitgaand naar mcr.microsoft.com.
  • Wanneer u een model implementeert in een AKS-cluster, gebruikt u de richtlijnen in het artikel ML implementeren om Azure Kubernetes Service implementeren.

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 via een privé-eindpunt. Het privé-eindpunt is een set privé-IP-adressen in uw virtuele netwerk. Vervolgens kunt u de toegang tot uw werkruimte beperken tot alleen de privé-IP-adressen. Een privé-eindpunt vermindert het risico op gegevens exfiltratie.

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 op zichzelf. 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, maakt verkeer tussen de werkruimte en opslag geen gebruik van het VNet voor beveiliging.

Azure-opslagaccounts beveiligen

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

  1. Selecteer in Azure Portal de Azure Storage Account.

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

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

    Screenshot showing private endpoint configuration page with blob and file options

    Tip

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

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

  4. Selecteer Geselecteerde netwerkenen selecteer vervolgens onder Resource-exemplarenals resourcetype. Selecteer uw werkruimte met de exemplaarnaam. Zie Vertrouwde toegang op basis van door het systeem toegewezen beheerde identiteit voor meer informatie.

    Tip

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

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

  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 verlenen voor meer informatie.

Beveiligde Azure Key Vault

Azure Machine Learning gebruikt een gekoppelde Key Vault voor het opslaan van de volgende referenties:

  • Het gekoppelde opslagaccount connection string
  • Wachtwoorden voor exemplaren van Azure Container Repository
  • Verbindingsreeksen met gegevensopslag

Azure Key Vault kan worden geconfigureerd voor het gebruik van een privé-eindpunt of een service-eindpunt. Gebruik de Azure Machine Learning om te experimenteren 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 als het privé-eindpunt van de werkruimte.

Zie Integrate Key Vault with Azure Private Link (Integratie van Key Vault met Azure Private Link) voor meer informatie over het gebruik van een privé-Azure Key Vault.

ACR (Azure Container Registry) inschakelen

Tip

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

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

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

    Azure-portal

    In de overzichtssectie van uw werkruimte wordt de waarde Register aan de Azure Container Registry.

    Azure Container Registry for the workspace

    Azure-CLI

    Als u de extensie Machine Learning Azure CLIhebt geïnstalleerd, kunt u de opdracht gebruiken om de werkruimtegegevens weer te geven.

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

    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 Verbinding maken privétoegang tot 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 wordt gebruikt voor het bouwen van Docker-afbeeldingen wanneer ACR zich achter een VNet in een VNet bebouwt. Zie Een rekencluster maken voor meer informatie.

  5. Gebruik de python Azure Machine Learning-SDK om de werkruimte te configureren voor het bouwen van Docker-afbeeldingen met behulp van het rekencluster. Het volgende codefragment laat zien hoe u de werkruimte bijwerkt om een build-rekenkracht in te stellen. Vervang mycomputecluster door de naam van het cluster dat moet worden gebruikt:

    from azureml.core import Workspace
    # Load workspace from an existing config file
    ws = Workspace.from_config()
    # Update the workspace to use an existing compute cluster
    ws.update(image_build_compute = 'mycomputecluster')
    # To switch back to using ACR to build (if ACR is not in the VNet):
    # ws.update(image_build_compute = '')
    

    Belangrijk

    Alleen het AzureML Compute-cluster van de CPU-SKU wordt ondersteund voor de build van de afbeelding op rekenkracht.

    Uw opslagaccount, rekencluster en Azure Container Registry moeten zich allemaal in hetzelfde subnet van het virtuele netwerk.

    Zie de naslaginformatie over de update()-methode voor meer informatie.

Tip

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

Gegevensstores en gegevenssets

De volgende tabel bevat de services die u nodig hebt om de validatie voor over te slaan:

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 validatie standaard over, zodat u niets hoeft te doen.

Met het volgende codevoorbeeld maakt u een nieuw Azure Blob-gegevensopslag en stelt u skip_validation=True in.

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

Met de volgende code maakt u een nieuwe JSON-gegevensset en stelt u validate=False in.

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

validate=False) 

Veilig verbinding maken met uw werkruimte

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

  • Azure VPN-gateway: verbindt on-premises netwerken met het VNet via een privéverbinding. De verbinding wordt 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. De verbinding wordt gemaakt met behulp van een connectiviteitsprovider.

  • Azure Bastion: in dit scenario maakt u een virtuele Azure-machine (ook wel jumpbox genoemd) in het VNet. Vervolgens maakt u verbinding met de virtuele Azure Bastion. Met Bastion kunt u vanuit uw lokale webbrowser verbinding maken met de VM via een RDP- of SSH-sessie. Vervolgens gebruikt u de jumpbox als uw ontwikkelomgeving. Omdat het zich in het VNet in het VNet, 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 ExpressRoutegebruikt, moet u plannen hoe naamsresolutie werkt tussen uw on-premises resources en die in het VNet. Zie Een aangepaste DNS-servergebruiken voor meer informatie.

Werkruimtediagnose

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

Volgende stappen

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