Een Azure Machine Learning-trainingsomgeving beveiligen met virtuele netwerken
VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)
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.
Azure Machine Learning-rekenproces, serverloze rekenkracht en rekencluster kunnen worden gebruikt om modellen veilig te trainen in een virtueel Azure-netwerk. Wanneer u uw omgeving plant, kunt u het rekenproces/cluster of serverloze berekening configureren met of zonder een openbaar IP-adres. De algemene verschillen tussen de twee zijn:
- Geen openbaar IP-adres: verlaagt de kosten omdat deze niet dezelfde netwerkresourcevereisten heeft. Verbetert de beveiliging door de vereiste voor binnenkomend verkeer van internet te verwijderen. Er zijn echter aanvullende configuratiewijzigingen vereist om uitgaande toegang tot vereiste resources in te schakelen (Microsoft Entra-id, Azure Resource Manager, enzovoort).
- Openbaar IP-adres: werkt standaard, maar kost meer vanwege extra Azure-netwerkresources. Voor binnenkomende communicatie van de Azure Machine Learning-service via het openbare internet is vereist.
De volgende tabel bevat de verschillen tussen deze configuraties:
Configuratie | Met openbaar IP-adres | Zonder openbaar IP-adres |
---|---|---|
Binnenkomend verkeer | AzureMachineLearning servicetag. |
Geen |
Uitgaand verkeer | Standaard heeft u zonder beperkingen toegang tot het openbare internet. U kunt beperken waartoe deze toegang heeft met behulp van een netwerkbeveiligingsgroep of firewall. |
Standaard heeft u toegang tot het openbare netwerk met behulp van de standaard uitgaande toegang van Azure. U wordt aangeraden in plaats daarvan een NAT-gateway of firewall van een virtueel netwerk te gebruiken als u uitgaand verkeer moet routeren naar de vereiste resources op internet. |
Azure-netwerkresources | Openbaar IP-adres, load balancer, netwerkinterface | Geen |
U kunt ook Azure Databricks of HDInsight gebruiken om modellen in een virtueel netwerk te trainen.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. De preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews 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:
- Overzicht van virtueel netwerk
- De werkruimtebronnen beveiligen
- De deductieomgeving beveiligen
- Studio-functionaliteit inschakelen
- Aangepaste DNS gebruiken
- Een firewall gebruiken
Zie Zelfstudie: Een beveiligde werkruimte of zelfstudie maken: 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 trainingsresources in een virtueel netwerk kunt beveiligen:
- Azure Machine Learning-rekenclusters
- Azure Machine Learning-rekeninstantie
- Serverloze rekenkracht van Azure Machine Learning
- Azure Databricks
- Virtuele machine
- HDInsight-cluster
Vereisten
Lees het artikel Netwerkbeveiligingsoverzicht voor meer informatie over algemene scenario's voor virtuele netwerken en de algehele architectuur van virtuele netwerken.
Een bestaand virtueel netwerk en subnet dat u met uw rekenresources kunt gebruiken. Dit VNet moet zich in hetzelfde abonnement bevinden als uw Azure Machine Learning-werkruimte.
- U wordt aangeraden de opslagaccounts die worden gebruikt door uw werkruimte en trainingstaken in dezelfde Azure-regio te plaatsen die u wilt gebruiken voor rekeninstanties, serverloze berekeningen en clusters. Als ze zich niet in dezelfde Azure-regio bevinden, kunnen er kosten voor gegevensoverdracht en een hogere netwerklatentie in rekening worden gebracht.
- Zorg ervoor dat WebSocket-communicatie naar
*.instances.azureml.net
en*.instances.azureml.ms
in uw VNet is toegestaan. WebSockets worden door Jupyter gebruikt voor rekenprocessen.
Een bestaand subnet in het virtuele netwerk. Dit subnet wordt gebruikt bij het maken van rekeninstanties, clusters en knooppunten voor serverloze berekeningen.
- Zorg ervoor dat het subnet niet is gedelegeerd aan andere Azure-services.
- Zorg ervoor dat het subnet voldoende vrije IP-adressen bevat. Voor elk rekenproces is één IP-adres vereist. Elk knooppunt in een rekencluster en elk serverloos rekenknooppunt vereist één IP-adres.
Als u uw eigen DNS-server hebt, raden we u aan dns-doorsturen te gebruiken om de FQDN's (Fully Qualified Domain Names) van rekeninstanties en -clusters om te zetten. Zie Een aangepaste DNS gebruiken met Azure Machine Learning voor meer informatie.
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
Beperkingen
Rekencluster/exemplaar en serverloze rekenimplementatie in een virtueel netwerk wordt niet ondersteund met Azure Lighthouse.
Poort 445 moet zijn geopend voor persoonlijke netwerkcommunicatie tussen uw rekeninstanties en het standaardopslagaccount tijdens de training. Als uw berekeningen zich bijvoorbeeld in het ene VNet bevinden en het opslagaccount zich in het andere bevindt, blokkeert u poort 445 niet naar het VNet van het opslagaccount.
Rekencluster in een ander VNet/regio van werkruimte
Belangrijk
U kunt geen rekenproces maken in een andere regio/VNet, alleen een rekencluster.
Als u een rekencluster wilt maken in een virtueel Azure-netwerk in een andere regio dan het virtuele netwerk van uw werkruimte, hebt u een aantal opties om communicatie tussen de twee VNets mogelijk te maken.
- VNet-peering gebruiken.
- Voeg een privé-eindpunt toe voor uw werkruimte in het virtuele netwerk dat het rekencluster bevat.
Belangrijk
Ongeacht de geselecteerde methode moet u ook het VNet voor het rekencluster maken; Azure Machine Learning maakt deze niet voor u.
U moet ook het standaardopslagaccount, Azure Container Registry en Azure Key Vault toegang geven tot het VNet voor het rekencluster. Er zijn meerdere manieren om dit te bereiken. U kunt bijvoorbeeld een privé-eindpunt maken voor elke resource in het VNet voor het rekencluster of VNet-peering gebruiken om het werkruimte-VNet toegang te geven tot het rekencluster-VNet.
Scenario: VNet-peering
Configureer uw werkruimte voor het gebruik van een virtueel Azure-netwerk. Zie Uw werkruimteresources beveiligen voor meer informatie.
Maak een tweede virtueel Azure-netwerk dat wordt gebruikt voor uw rekenclusters. Deze kan zich in een andere Azure-regio bevinden dan de regio die wordt gebruikt voor uw werkruimte.
VNet-peering tussen de twee VNets configureren.
Tip
Wacht totdat de status van de VNet-peering is verbonden voordat u doorgaat.
Wijzig de
privatelink.api.azureml.ms
DNS-zone om een koppeling naar het VNet voor het rekencluster toe te voegen. Deze zone wordt gemaakt door uw Azure Machine Learning-werkruimte wanneer er een privé-eindpunt wordt gebruikt om deel te nemen aan een VNet.Voeg een nieuwe virtuele netwerkkoppeling toe aan de DNS-zone. U kunt dit op meerdere manieren doen:
- Navigeer in Azure Portal naar de DNS-zone en selecteer koppelingen naar het virtuele netwerk. Selecteer vervolgens + Toevoegen en selecteer het VNet dat u voor uw rekenclusters hebt gemaakt.
- Gebruik de
az network private-dns link vnet create
opdracht vanuit de Azure CLI. Zie az network private-dns link vnet create voor meer informatie. - Gebruik de
New-AzPrivateDnsVirtualNetworkLink
opdracht vanuit Azure PowerShell. Zie New-AzPrivateDnsVirtualNetworkLink voor meer informatie.
Herhaal de vorige stap en substappen voor de
privatelink.notebooks.azure.net
DNS-zone.Configureer de volgende Azure-resources om toegang vanuit beide VNets toe te staan.
- Het standaardopslagaccount voor de werkruimte.
- Het Azure Container Registry voor de werkruimte.
- De Azure Key Vault voor de werkruimte.
Tip
Er zijn meerdere manieren waarop u deze services kunt configureren om toegang tot de VNets toe te staan. U kunt bijvoorbeeld een privé-eindpunt maken voor elke resource in beide VNets. U kunt ook de resources configureren om toegang vanuit beide VNets toe te staan.
Maak een rekencluster zoals u normaal gesproken zou doen bij het gebruik van een VNet, maar selecteer het VNet dat u voor het rekencluster hebt gemaakt. Als het VNet zich in een andere regio bevindt, selecteert u die regio bij het maken van het rekencluster.
Waarschuwing
Bij het instellen van de regio, als het een andere regio is dan uw werkruimte of gegevensarchieven, ziet u mogelijk een verhoogde netwerklatentie en kosten voor gegevensoverdracht. De latentie en kosten kunnen optreden bij het maken van het cluster en bij het uitvoeren van taken.
Scenario: Privé-eindpunt
Configureer uw werkruimte voor het gebruik van een virtueel Azure-netwerk. Zie Uw werkruimteresources beveiligen voor meer informatie.
Maak een tweede virtueel Azure-netwerk dat wordt gebruikt voor uw rekenclusters. Deze kan zich in een andere Azure-regio bevinden dan de regio die wordt gebruikt voor uw werkruimte.
Maak een nieuw privé-eindpunt voor uw werkruimte in het VNet dat het rekencluster bevat.
Als u een nieuw privé-eindpunt wilt toevoegen met behulp van Azure Portal, selecteert u uw werkruimte en selecteert u Vervolgens Netwerken. Selecteer Privé-eindpuntverbindingen, + Privé-eindpunt en gebruik de velden om een nieuw privé-eindpunt te maken.
- Wanneer u de regio selecteert, selecteert u dezelfde regio als uw virtuele netwerk.
- Wanneer u resourcetype selecteert, gebruikt u Microsoft.MachineLearningServices/werkruimten.
- Stel de resource in op de naam van uw werkruimte.
- Stel het virtuele netwerk en subnet in op het VNet en het subnet dat u hebt gemaakt voor uw rekenclusters.
Selecteer Ten slotte Maken om het privé-eindpunt te maken.
Als u een nieuw privé-eindpunt wilt toevoegen met behulp van de Azure CLI, gebruikt u de
az network private-endpoint create
. Zie Een privé-eindpunt configureren voor een Azure Machine Learning-werkruimte voor een voorbeeld van het gebruik van deze opdracht.
Maak een rekencluster zoals u normaal gesproken zou doen bij het gebruik van een VNet, maar selecteer het VNet dat u voor het rekencluster hebt gemaakt. Als het VNet zich in een andere regio bevindt, selecteert u die regio bij het maken van het rekencluster.
Waarschuwing
Bij het instellen van de regio, als het een andere regio is dan uw werkruimte of gegevensarchieven, ziet u mogelijk een verhoogde netwerklatentie en kosten voor gegevensoverdracht. De latentie en kosten kunnen optreden bij het maken van het cluster en bij het uitvoeren van taken.
Rekenproces/cluster of serverloze rekenkracht zonder openbaar IP-adres
Belangrijk
Deze informatie is alleen geldig wanneer u een virtueel Azure-netwerk gebruikt. Als u een beheerd virtueel netwerk gebruikt, kunnen rekenresources niet worden geïmplementeerd in uw virtuele Azure-netwerk. Zie beheerde berekeningen met een beheerd netwerk voor informatie over het gebruik van een beheerd virtueel netwerk.
Belangrijk
Als u rekeninstanties of rekenclusters hebt gebruikt die zijn geconfigureerd voor geen openbaar IP-adres zonder u in te schakelen voor de preview, moet u deze verwijderen en opnieuw maken na 20 januari 2023 (wanneer de functie algemeen beschikbaar is).
Als u eerder de preview van geen openbaar IP-adres gebruikte, moet u mogelijk ook wijzigen welk verkeer u inkomende en uitgaande verkeer toestaat, omdat de vereisten voor algemene beschikbaarheid zijn gewijzigd:
- Uitgaande vereisten: twee extra uitgaande vereisten, die alleen worden gebruikt voor het beheer van rekeninstanties en clusters. Het doel van deze servicetags is eigendom van Microsoft:
AzureMachineLearning
servicetag op UDP-poort 5831.BatchNodeManagement
servicetag op TCP-poort 443.
De volgende configuraties zijn naast de configuraties die worden vermeld in de sectie Vereisten en zijn specifiek voor het maken van rekeninstanties/clusters die zijn geconfigureerd voor geen openbaar IP-adres. Ze zijn ook van toepassing op serverloze berekeningen:
U moet een privé-eindpunt voor een werkruimte gebruiken voor de rekenresource om te communiceren met Azure Machine Learning-services vanuit het VNet. Zie Een privé-eindpunt configureren voor een Azure Machine Learning-werkruimte voor meer informatie.
Sta in uw VNet uitgaand verkeer toe naar de volgende servicetags of FQDN's (Fully Qualified Domain Names):
Servicetag Protocol Port Opmerkingen AzureMachineLearning
TCP
UDP443/8787/18881
5831Communicatie met de Azure Machine Learning-service. BatchNodeManagement.<region>
WILLEKEURIG 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Communicatie met Azure Batch. Rekenproces en rekencluster worden geïmplementeerd met behulp van de Azure Batch-service.Storage.<region>
TCP 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Deze servicetag wordt gebruikt om te communiceren met het Azure Storage-account dat wordt gebruikt door Azure Batch.Belangrijk
De uitgaande toegang kan
Storage.<region>
mogelijk worden gebruikt om gegevens uit uw werkruimte te exfiltreren. Met behulp van een service-eindpuntbeleid kunt u dit beveiligingsprobleem beperken. Zie het artikel over preventie van exfiltratie van Azure Machine Learning-gegevens voor meer informatie.FQDN Protocol Port Opmerkingen <region>.tundra.azureml.ms
UDP 5831 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat.graph.windows.net
TCP 443 Communicatie met de Microsoft Graph API. *.instances.azureml.ms
TCP 443/8787/18881 Communicatie met Azure Machine Learning. *.<region>.batch.azure.com
WILLEKEURIG 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Communicatie met Azure Batch.*.<region>.service.batch.azure.com
WILLEKEURIG 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Communicatie met Azure Batch.*.blob.core.windows.net
TCP 443 Communicatie met Azure Blob Storage. *.queue.core.windows.net
TCP 443 Communicatie met Azure Queue Storage. *.table.core.windows.net
TCP 443 Communicatie met Azure Table Storage. Een rekenproces/cluster dat is geconfigureerd voor geen openbaar IP-adres heeft standaard geen uitgaande toegang tot internet. Als u toegang hebt tot internet via internet, komt dit door de standaard uitgaande toegang van Azure en hebt u een NSG die uitgaand verkeer naar internet toestaat. Toch raden we u niet aan de standaard uitgaande toegang te gebruiken. Als u uitgaande toegang tot internet nodig hebt, raden we u aan een firewall en uitgaande regels of een NAT-gateway en netwerkservicegroepen te gebruiken om uitgaand verkeer toe te staan.
Zie de volgende artikelen voor meer informatie over het uitgaande verkeer dat wordt gebruikt door Azure Machine Learning:
- Binnenkomend en uitgaand netwerkverkeer configureren.
- De methoden voor uitgaande connectiviteit van Azure.
Zie het artikel servicetags voor virtuele netwerken voor meer informatie over servicetags die kunnen worden gebruikt met Azure Firewall.
Gebruik de volgende informatie om een rekenproces of cluster te maken zonder openbaar IP-adres:
Vervang in de az ml compute create
opdracht de volgende waarden:
rg
: De resourcegroep waarin de berekening wordt gemaakt.ws
: de naam van de Azure Machine Learning-werkruimte.yourvnet
: het virtuele Azure-netwerk.yoursubnet
: het subnet dat moet worden gebruikt voor de berekening.AmlCompute
ofComputeInstance
: Als uAmlCompute
opgeeft, wordt een rekencluster gemaakt.ComputeInstance
maakt een rekenproces.
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False
# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False
Gebruik de volgende informatie om serverloze rekenknooppunten te configureren zonder openbaar IP-adres in het VNet voor een bepaalde werkruimte:
Belangrijk
Als u geen serverloze openbare IP-adressen gebruikt en de werkruimte een acceptatielijst voor IP-adressen gebruikt, moet u een uitgaand privé-eindpunt toevoegen aan de werkruimte. De serverloze berekening moet communiceren met de werkruimte, maar wanneer deze is geconfigureerd voor geen openbaar IP-adres, wordt de standaard-uitgaande azure-verbinding voor internettoegang gebruikt. Het openbare IP-adres voor dit uitgaande verkeer is dynamisch en kan niet worden toegevoegd aan de lijst met toegestane IP-adressen. Door een uitgaand privé-eindpunt naar de werkruimte te maken, kan verkeer van de serverloze rekenkracht voor de werkruimte de acceptatielijst voor IP-adressen omzeilen.
Een werkruimte maken:
az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: true
Werkruimte bijwerken:
az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: true
Rekenproces/cluster of serverloze berekening met openbaar IP-adres
Belangrijk
Deze informatie is alleen geldig wanneer u een virtueel Azure-netwerk gebruikt. Als u een beheerd virtueel netwerk gebruikt, kunnen rekenresources niet worden geïmplementeerd in uw virtuele Azure-netwerk. Zie beheerde berekeningen met een beheerd netwerk voor informatie over het gebruik van een beheerd virtueel netwerk.
De volgende configuraties zijn naast de configuraties die worden vermeld in de sectie Vereisten en zijn specifiek voor het maken van rekeninstanties/clusters met een openbaar IP-adres. Ze zijn ook van toepassing op serverloze berekeningen:
Als u meerdere rekeninstanties/clusters in één virtueel netwerk plaatst, moet u mogelijk een quotumverhoging aanvragen voor een of meer van uw resources. Het Machine Learning-rekenproces of -cluster wijst automatisch netwerkresources toe in de resourcegroep die het virtuele netwerk bevat. Voor elk rekenproces of elk cluster wijst de service de volgende resources toe:
Er wordt automatisch een netwerkbeveiligingsgroep (NSG) gemaakt. Deze NSG staat binnenkomend TCP-verkeer toe op poort 44224 vanuit de
AzureMachineLearning
servicetag.Belangrijk
Rekenproces en rekencluster maken automatisch een NSG met de vereiste regels.
Als u een andere NSG op subnetniveau hebt, mogen de regels op subnetniveau NSG niet conflicteren met de regels in de automatisch gemaakte NSG.
Zie Hoe netwerkbeveiligingsgroepen netwerkverkeer filteren voor meer informatie over hoe de NSG's uw netwerkverkeer filteren.
Eén load balancer
Voor rekenclusters worden deze resources telkens verwijderd wanneer het cluster wordt geschaald naar 0 knooppunten en wordt gemaakt bij het omhoog schalen.
Voor een reken-exemplaar worden deze resources bewaard totdat het exemplaar wordt verwijderd. Als u het exemplaar stopt, worden de resources niet verwijderd.
Belangrijk
De beperkingen die voor deze resources gelden, worden bepaald door de resourcequota van het abonnement. Als de resourcegroep van het virtuele netwerk is vergrendeld, mislukt het verwijderen van het rekencluster/exemplaar. Load balancer kan pas worden verwijderd als het rekencluster/-exemplaar is verwijderd. Zorg er ook voor dat er geen Azure Policy-toewijzing is die het maken van netwerkbeveiligingsgroepen verbiedt.
Sta in uw VNet binnenkomend TCP-verkeer toe op poort 44224 vanuit de
AzureMachineLearning
servicetag.Belangrijk
Aan het rekenproces/cluster wordt dynamisch een IP-adres toegewezen wanneer het wordt gemaakt. Omdat het adres niet bekend is voordat het wordt gemaakt en binnenkomende toegang is vereist als onderdeel van het aanmaakproces, kunt u het niet statisch toewijzen aan uw firewall. Als u in plaats daarvan een firewall met het VNet gebruikt, moet u een door de gebruiker gedefinieerde route maken om dit binnenkomende verkeer toe te staan.
Sta in uw VNet uitgaand verkeer toe naar de volgende servicetags:
Servicetag Protocol Port Opmerkingen AzureMachineLearning
TCP
UDP443/8787/18881
5831Communicatie met de Azure Machine Learning-service. BatchNodeManagement.<region>
WILLEKEURIG 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Communicatie met Azure Batch. Rekenproces en rekencluster worden geïmplementeerd met behulp van de Azure Batch-service.Storage.<region>
TCP 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Deze servicetag wordt gebruikt om te communiceren met het Azure Storage-account dat wordt gebruikt door Azure Batch.Belangrijk
De uitgaande toegang kan
Storage.<region>
mogelijk worden gebruikt om gegevens uit uw werkruimte te exfiltreren. Met behulp van een service-eindpuntbeleid kunt u dit beveiligingsprobleem beperken. Zie het artikel over preventie van exfiltratie van Azure Machine Learning-gegevens voor meer informatie.FQDN Protocol Port Opmerkingen <region>.tundra.azureml.ms
UDP 5831 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat.graph.windows.net
TCP 443 Communicatie met de Microsoft Graph API. *.instances.azureml.ms
TCP 443/8787/18881 Communicatie met Azure Machine Learning. *.<region>.batch.azure.com
WILLEKEURIG 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Communicatie met Azure Batch.*.<region>.service.batch.azure.com
WILLEKEURIG 443 Vervang <region>
door de Azure-regio die uw Azure Machine Learning-werkruimte bevat. Communicatie met Azure Batch.*.blob.core.windows.net
TCP 443 Communicatie met Azure Blob Storage. *.queue.core.windows.net
TCP 443 Communicatie met Azure Queue Storage. *.table.core.windows.net
TCP 443 Communicatie met Azure Table Storage.
Gebruik de volgende informatie om een rekenproces of cluster te maken met een openbaar IP-adres in het VNet:
Vervang in de az ml compute create
opdracht de volgende waarden:
rg
: De resourcegroep waarin de berekening wordt gemaakt.ws
: de naam van de Azure Machine Learning-werkruimte.yourvnet
: het virtuele Azure-netwerk.yoursubnet
: het subnet dat moet worden gebruikt voor de berekening.AmlCompute
ofComputeInstance
: Als uAmlCompute
opgeeft, wordt een rekencluster gemaakt.ComputeInstance
maakt een rekenproces.
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute
# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance
Gebruik de volgende informatie om serverloze rekenknooppunten te configureren met een openbaar IP-adres in het VNet voor een bepaalde werkruimte:
Een werkruimte maken:
az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: false
Werkruimte bijwerken:
az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: false
Azure Databricks
- Het virtuele netwerk moet zich in hetzelfde abonnement en dezelfde regio bevinden als de Azure Machine Learning-werkruimte.
- Als de Azure Storage-accounts voor de werkruimte ook zijn beveiligd in een virtueel netwerk, moeten ze zich in hetzelfde virtuele netwerk bevinden als het Azure Databricks-cluster.
- Naast de databricks-privé - en databricks-openbare subnetten die worden gebruikt door Azure Databricks, is ook het standaardsubnet vereist dat voor het virtuele netwerk is gemaakt.
- Azure Databricks gebruikt geen privé-eindpunt om te communiceren met het virtuele netwerk.
Zie Azure Databricks implementeren in uw virtuele Azure-netwerk voor specifieke informatie over het gebruik van Azure Databricks met een virtueel netwerk.
Virtuele machine of HDInsight-cluster
In deze sectie leert u hoe u een virtuele machine of Een Azure HDInsight-cluster gebruikt in een virtueel netwerk met uw werkruimte.
Het VM- of HDInsight-cluster maken
Belangrijk
Azure Machine Learning ondersteunt alleen virtuele machines waarop Ubuntu wordt uitgevoerd.
Maak een VM- of HDInsight-cluster met behulp van Azure Portal of de Azure CLI en plaats het cluster in een virtueel Azure-netwerk. Raadpleeg voor meer informatie de volgende artikelen:
Virtuele Azure-netwerken maken en beheren voor Virtuele Linux-machines
HDInsight uitbreiden met behulp van een virtueel Azure-netwerk
Netwerkpoorten configureren
Sta Azure Machine Learning toe om te communiceren met de SSH-poort op de VIRTUELE machine of het cluster, en configureer een bronvermelding voor de netwerkbeveiligingsgroep. De SSH-poort is meestal poort 22. Ga als volgt te werk om verkeer van deze bron toe te staan:
Selecteer servicetag in de vervolgkeuzelijst Bron.
Selecteer AzureMachineLearning in de vervolgkeuzelijst Bronservicetag.
Selecteer in de vervolgkeuzelijst Bronpoortbereiken de optie *.
Selecteer Any in de vervolgkeuzelijst Bestemming.
Selecteer 22 in de vervolgkeuzelijst Doelpoortbereiken.
Selecteer Alle onder Protocol.
Selecteer Onder Actie de optie Toestaan.
Behoud de standaardregels voor uitgaand verkeer voor de netwerkbeveiligingsgroep. Zie de standaardbeveiligingsregels in beveiligingsgroepen voor meer informatie.
Als u de standaardregels voor uitgaand verkeer niet wilt gebruiken en u de uitgaande toegang van uw virtuele netwerk wilt beperken, raadpleegt u de vereiste sectie voor openbare internettoegang .
Het VM- of HDInsight-cluster koppelen
Koppel het VM- of HDInsight-cluster aan uw Azure Machine Learning-werkruimte. Zie Rekenresources beheren voor modeltraining en -implementatie in studio voor meer informatie.
Vereiste openbare internettoegang om modellen te trainen
Belangrijk
In eerdere secties van dit artikel worden configuraties beschreven die nodig zijn voor het maken van rekenresources, maar de configuratie-informatie in deze sectie is vereist om deze resources te gebruiken om modellen te trainen.
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:
- Download een lijst van Azure IP-bereiken en servicetags.
- Gebruik de azure CLI az network list-service-tags command.
- Gebruik de opdracht Azure PowerShell Get-AzNetworkServiceTag .
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:
- Algemene vereisten voor inkomend/uitgaand verkeer voor AKS, zoals beschreven in het artikel Uitgaand verkeer beperken in Azure Kubernetes Service .
- Uitgaand naar mcr.microsoft.com.
- Wanneer u een model implementeert in een AKS-cluster, gebruikt u de richtlijnen in het artikel ML-modellen implementeren in Azure Kubernetes Service .
Zie Een firewall gebruiken met Azure Machine Learning voor meer informatie over het gebruik van een firewalloplossing.
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: