Een privé-eindpunt configureren voor een Azure Machine Learning werkruimte
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
In dit document leert u hoe u een privé-eindpunt configureert voor uw Azure Machine Learning-werkruimte. Zie het overzicht van isolatie en privacy van virtuele netwerken voor meer informatie over het maken van een virtueel netwerk voor Azure Machine Learning.
Met Azure Private Link kunt u verbindingen met uw werkruimte beperken tot een virtueel Azure-netwerk. U beperkt een werkruimte om alleen verbindingen van een virtueel netwerk te accepteren door een privé-eindpunt te maken. 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 het Artikel over Azure Private Link voor meer informatie over privé-eindpunten.
Waarschuwing
Het beveiligen van een werkruimte met privé-eindpunten zorgt niet voor end-to-end beveiliging zelf. U moet alle afzonderlijke onderdelen van uw oplossing 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.
Zie de volgende artikelen voor meer informatie over het beveiligen van resources die worden gebruikt door Azure Machine Learning:
Vereisten
U moet een bestaand virtueel netwerk hebben om het privé-eindpunt in te maken.
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.
Schakel netwerkbeleid voor privé-eindpunten uit voordat u het privé-eindpunt toevoegt.
Beperkingen
Als u openbare toegang inschakelt voor een werkruimte die is beveiligd met een privé-eindpunt en Azure Machine Learning-studio via het openbare internet gebruikt, hebben sommige functies zoals de ontwerper mogelijk geen toegang tot uw gegevens. Dit probleem treedt op wanneer de gegevens worden opgeslagen in een service die is beveiligd achter het virtuele netwerk. Bijvoorbeeld een Azure-opslagaccount.
Als u Mozilla Firefox gebruikt, kunt u problemen ondervinden bij het openen van het privé-eindpunt voor uw werkruimte. Dit probleem kan te maken hebben met DNS via HTTPS in Mozilla Firefox. We raden u aan Microsoft Edge of Google Chrome te gebruiken.
Het gebruik van een privé-eindpunt heeft geen invloed op het Azure-besturingsvlak (beheerbewerkingen), zoals het verwijderen van de werkruimte of het beheren van rekenresources. Bijvoorbeeld het maken, bijwerken of verwijderen van een rekendoel. Deze bewerkingen worden normaal uitgevoerd via het openbare internet. Gegevensvlakbewerkingen, zoals het gebruik van Azure Machine Learning-studio, API's (inclusief gepubliceerde pijplijnen) of de SDK maken gebruik van het privé-eindpunt.
Wanneer u een rekenproces of rekencluster maakt in een werkruimte met een privé-eindpunt, moeten het rekenproces en het rekencluster zich in dezelfde Azure-regio bevinden als de werkruimte.
Wanneer u een Azure Kubernetes Service-cluster koppelt aan een werkruimte met een privé-eindpunt, moet het cluster zich in dezelfde regio bevinden als de werkruimte.
Wanneer u een werkruimte met meerdere privé-eindpunten gebruikt, moet een van de privé-eindpunten zich in hetzelfde virtuele netwerk bevinden als de volgende afhankelijkheidsservices:
- Azure Storage-account dat de standaardopslag voor de werkruimte biedt
- Azure Key Vault voor de werkruimte
- Azure Container Registry voor de werkruimte.
Eén virtueel netwerk ('services') bevat bijvoorbeeld een privé-eindpunt voor de afhankelijkheidsservices en de werkruimte. Met deze configuratie kan de werkruimte communiceren met de services. Een ander virtueel netwerk ('clients') bevat mogelijk alleen een privé-eindpunt voor de werkruimte en wordt alleen gebruikt voor communicatie tussen clientontwikkelingsmachines en de werkruimte.
Een werkruimte maken die gebruikmaakt van een privé-eindpunt
Gebruik een van de volgende methoden om een werkruimte met een privé-eindpunt te maken. Voor elk van deze methoden is een bestaand virtueel netwerk vereist:
Tip
Als u tegelijkertijd een werkruimte, privé-eindpunt en virtueel netwerk wilt maken, raadpleegt u Een Azure Resource Manager-sjabloon gebruiken om een werkruimte te maken voor Azure Machine Learning.
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
Wanneer u de Azure CLI-extensie 2.0 CLI voor machine learning gebruikt, wordt een YAML-document gebruikt om de werkruimte te configureren. In het volgende voorbeeld ziet u hoe u een nieuwe werkruimte maakt met behulp van een YAML-configuratie:
Tip
Wanneer u een privékoppeling gebruikt, kan uw werkruimte geen rekenkracht van Azure Container Registry-taken gebruiken voor het bouwen van installatiekopieën. In plaats daarvan wordt in de werkruimte standaard een serverloos rekencluster gebruikt om installatiekopieën te maken. Dit werkt alleen wanneer de werkruimte-deependent resources, zoals het opslagaccount en het containerregister, zich niet onder netwerkbeperkingen (privé-eindpunt) bevinden. Als uw werkruimteafhankelijkheden onder netwerkbeperkingen vallen, gebruikt u de image_build_compute
eigenschap om een rekencluster op te geven dat moet worden gebruikt voor het bouwen van installatiekopieën.
De image_build_compute
eigenschap in deze configuratie geeft de naam van een CPU-rekencluster op die moet worden gebruikt voor het bouwen van de Docker-installatiekopieënomgeving. U kunt ook opgeven of de private link-werkruimte toegankelijk moet zijn via internet met behulp van de public_network_access
eigenschap.
In dit voorbeeld moet de berekening waarnaar wordt verwezen image_build_compute
, worden gemaakt voordat u installatiekopieën bouwt.
$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
purpose: demonstration
az ml workspace create \
-g <resource-group-name> \
--file privatelink.yml
Nadat u de werkruimte hebt gemaakt, gebruikt u de CLI-opdrachten voor Azure-netwerken om een privékoppelingseindpunt voor de werkruimte te maken.
az network private-endpoint create \
--name <private-endpoint-name> \
--vnet-name <vnet-name> \
--subnet <subnet-name> \
--private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
--group-id amlworkspace \
--connection-name workspace -l <location>
Gebruik de volgende opdrachten om de privé-DNS-zonevermeldingen voor de werkruimte te maken:
# Add privatelink.api.azureml.ms
az network private-dns zone create \
-g <resource-group-name> \
--name privatelink.api.azureml.ms
az network private-dns link vnet create \
-g <resource-group-name> \
--zone-name privatelink.api.azureml.ms \
--name <link-name> \
--virtual-network <vnet-name> \
--registration-enabled false
az network private-endpoint dns-zone-group create \
-g <resource-group-name> \
--endpoint-name <private-endpoint-name> \
--name myzonegroup \
--private-dns-zone privatelink.api.azureml.ms \
--zone-name privatelink.api.azureml.ms
# Add privatelink.notebooks.azure.net
az network private-dns zone create \
-g <resource-group-name> \
--name privatelink.notebooks.azure.net
az network private-dns link vnet create \
-g <resource-group-name> \
--zone-name privatelink.notebooks.azure.net \
--name <link-name> \
--virtual-network <vnet-name> \
--registration-enabled false
az network private-endpoint dns-zone-group add \
-g <resource-group-name> \
--endpoint-name <private-endpoint-name> \
--name myzonegroup \
--private-dns-zone privatelink.notebooks.azure.net \
--zone-name privatelink.notebooks.azure.net
Een privé-eindpunt toevoegen aan een werkruimte
Gebruik een van de volgende methoden om een privé-eindpunt toe te voegen aan een bestaande werkruimte:
Waarschuwing
Als er bestaande rekendoelen zijn gekoppeld aan deze werkruimte en ze zich niet achter hetzelfde virtuele netwerk bevinden waarin het privé-eindpunt is gemaakt, werken ze niet.
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
Wanneer u de Azure CLI-extensie 2.0 CLI voor machine learning gebruikt, gebruikt u de Azure-netwerk-CLI-opdrachten om een private link-eindpunt voor de werkruimte te maken.
az network private-endpoint create \
--name <private-endpoint-name> \
--vnet-name <vnet-name> \
--subnet <subnet-name> \
--private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
--group-id amlworkspace \
--connection-name workspace -l <location>
Gebruik de volgende opdrachten om de privé-DNS-zonevermeldingen voor de werkruimte te maken:
# Add privatelink.api.azureml.ms
az network private-dns zone create \
-g <resource-group-name> \
--name 'privatelink.api.azureml.ms'
az network private-dns link vnet create \
-g <resource-group-name> \
--zone-name 'privatelink.api.azureml.ms' \
--name <link-name> \
--virtual-network <vnet-name> \
--registration-enabled false
az network private-endpoint dns-zone-group create \
-g <resource-group-name> \
--endpoint-name <private-endpoint-name> \
--name myzonegroup \
--private-dns-zone 'privatelink.api.azureml.ms' \
--zone-name 'privatelink.api.azureml.ms'
# Add privatelink.notebooks.azure.net
az network private-dns zone create \
-g <resource-group-name> \
--name 'privatelink.notebooks.azure.net'
az network private-dns link vnet create \
-g <resource-group-name> \
--zone-name 'privatelink.notebooks.azure.net' \
--name <link-name> \
--virtual-network <vnet-name> \
--registration-enabled false
az network private-endpoint dns-zone-group add \
-g <resource-group-name> \
--endpoint-name <private-endpoint-name> \
--name myzonegroup \
--private-dns-zone 'privatelink.notebooks.azure.net' \
--zone-name 'privatelink.notebooks.azure.net'
Een privé-eindpunt verwijderen
U kunt een of alle privé-eindpunten voor een werkruimte verwijderen. Als u een privé-eindpunt verwijdert, wordt de werkruimte verwijderd uit het virtuele netwerk waaraan het eindpunt is gekoppeld. Als u het privé-eindpunt verwijdert, kan de werkruimte geen toegang krijgen tot resources in dat virtuele netwerk of resources in het virtuele netwerk toegang krijgen tot de werkruimte. Als het virtuele netwerk bijvoorbeeld geen toegang tot of vanaf het openbare internet toestaat.
Waarschuwing
Als u de privé-eindpunten voor een werkruimte verwijdert, is deze niet openbaar toegankelijk. Als u de werkruimte openbaar toegankelijk wilt maken, gebruikt u de stappen in de sectie Openbare toegang inschakelen.
Als u een privé-eindpunt wilt verwijderen, gebruikt u de volgende informatie:
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
Wanneer u de Azure CLI-extensie 2.0 CLI voor machine learning gebruikt, gebruikt u de volgende opdracht om het privé-eindpunt te verwijderen:
az network private-endpoint delete \
--name <private-endpoint-name> \
--resource-group <resource-group-name> \
Openbare toegang inschakelen
In sommige situaties wilt u mogelijk toestaan dat iemand via een openbaar eindpunt verbinding kan maken met uw beveiligde werkruimte in plaats van via het virtuele netwerk. Of misschien wilt u de werkruimte uit het virtuele netwerk verwijderen en openbare toegang opnieuw inschakelen.
Belangrijk
Als u openbare toegang inschakelt, worden geen privé-eindpunten verwijderd die bestaan. Alle communicatie tussen onderdelen achter het VNet waarmee de privé-eindpunten verbinding maken, worden nog steeds beveiligd. Hiermee is alleen openbare toegang tot de werkruimte mogelijk, naast de privétoegang via privé-eindpunten.
Waarschuwing
Wanneer u verbinding maakt via het openbare eindpunt terwijl de werkruimte een privé-eindpunt gebruikt om te communiceren met andere resources:
- Sommige functies van Studio hebben geen toegang tot uw gegevens. Dit probleem treedt op wanneer de gegevens worden opgeslagen op een service die wordt beveiligd achter het VNet. Bijvoorbeeld een Azure-opslagaccount. U kunt dit probleem oplossen door het IP-adres van uw clientapparaat toe te voegen aan de firewall van het Azure Storage-account.
- Het gebruik van Jupyter, JupyterLab, RStudio of Posit Workbench (voorheen RStudio Workbench) op een rekenproces, inclusief het uitvoeren van notebooks, wordt niet ondersteund.
Gebruik de volgende stappen om openbare toegang in te schakelen:
Tip
Er zijn twee mogelijke eigenschappen die u kunt configureren:
allow_public_access_when_behind_vnet
- gebruikt door de Python SDK v1public_network_access
- wordt gebruikt door de CLI en Python SDK v2 Elke eigenschap overschrijft de andere. Als upublic_network_access
bijvoorbeeld een eerdere instelling overschrijft naarallow_public_access_when_behind_vnet
.
Microsoft raadt aan public_network_access
om openbare toegang tot een werkruimte in of uit te schakelen.
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
Wanneer u de Azure CLI-extensie 2.0 voor machine learning gebruikt, gebruikt u de az ml update
opdracht om de werkruimte in te schakelen public_network_access
:
az ml workspace update \
--set public_network_access=Enabled \
-n <workspace-name> \
-g <resource-group-name>
U kunt ook openbare netwerktoegang inschakelen met behulp van een YAML-bestand. Zie de YAML-verwijzing voor de werkruimte voor meer informatie.
Openbare toegang alleen inschakelen vanuit INTERNET-IP-bereiken (preview)
U kunt IP-netwerkregels gebruiken om toegang tot uw werkruimte en eindpunt toe te staan vanuit specifieke IP-adresbereiken voor openbaar internet door IP-netwerkregels te maken. Elke Azure Machine Learning-werkruimte ondersteunt maximaal 200 regels. Deze regels verlenen toegang tot specifieke internetservices en on-premises netwerken en blokkeren algemeen internetverkeer.
Waarschuwing
- Schakel de vlag voor openbare netwerktoegang van uw eindpunt in als u toegang tot uw eindpunt wilt toestaan vanuit specifieke IP-adresbereiken voor openbaar internet.
- Wanneer u deze functie inschakelt, heeft dit gevolgen voor alle bestaande openbare eindpunten die zijn gekoppeld aan uw werkruimte. Hierdoor kan de toegang tot nieuwe of bestaande eindpunten worden beperkt. Als u eindpunten opent vanaf een niet-toegestaan IP-adres, krijgt u een 403-fout.
- U kunt alleen IPv4-adressen gebruiken.
- Als u deze functie wilt gebruiken met een beheerd virtueel azure Machine Learning-netwerk, raadpleegt u het beheerde virtuele netwerk van Azure Machine Learning.
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
Azure CLI biedt geen ondersteuning voor het inschakelen van openbare toegang vanuit IP-bereiken.
Beperkingen voor IP-netwerkregels
De volgende beperkingen zijn van toepassing op IP-adresbereiken:
IP-netwerkregels zijn alleen toegestaan voor openbare internet-IP-adressen .
Gereserveerde IP-adresbereiken zijn niet toegestaan in IP-regels, zoals privéadressen die beginnen met 10, 172.16 tot 172.31 en 192.168.
U moet toegestane internetadresbereiken opgeven met cidr-notatie in de vorm 16.17.18.0/24 of als afzonderlijke IP-adressen zoals 16.17.18.19.
Alleen IPv4-adressen worden ondersteund voor de configuratie van firewallregels voor opslag.
Wanneer deze functie is ingeschakeld, kunt u openbare eindpunten testen met behulp van een clienthulpprogramma zoals Curl, maar het hulpprogramma Eindpunttest in de portal wordt niet ondersteund.
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.
Meerdere privé-eindpunten
Azure Machine Learning ondersteunt meerdere privé-eindpunten voor een werkruimte. Meerdere privé-eindpunten worden vaak gebruikt wanneer u verschillende omgevingen gescheiden wilt houden. Hier volgen enkele scenario's die zijn ingeschakeld met behulp van meerdere privé-eindpunten:
Clientontwikkelingsomgevingen in een afzonderlijk virtueel netwerk.
Een AKS-cluster (Azure Kubernetes Service) in een afzonderlijk virtueel netwerk.
Andere Azure-services in een afzonderlijk virtueel netwerk. Azure Synapse en Azure Data Factory kunnen bijvoorbeeld een door Microsoft beheerd virtueel netwerk gebruiken. In beide gevallen kan een privé-eindpunt voor de werkruimte worden toegevoegd aan het beheerde virtuele netwerk dat door deze services wordt gebruikt. Zie de volgende artikelen voor meer informatie over het gebruik van een beheerd virtueel netwerk met deze services:
- Door Synapse beheerde privé-eindpunten
- Beheerd virtueel netwerk van Azure Data Factory.
Belangrijk
De beveiliging van gegevensexfiltratie van Synapse wordt niet ondersteund met Azure Machine Learning.
Belangrijk
Elk VNet dat een privé-eindpunt voor de werkruimte bevat, moet ook toegang hebben tot het Azure Storage-account, Azure Key Vault en Azure Container Registry dat door de werkruimte wordt gebruikt. U kunt bijvoorbeeld een privé-eindpunt maken voor de services in elk VNet.
Als u meerdere privé-eindpunten toevoegt, worden dezelfde stappen gebruikt als beschreven in het gedeelte Een privé-eindpunt toevoegen aan een werkruimte .
Scenario: Geïsoleerde clients
Als u de ontwikkelclients wilt isoleren, zodat ze geen directe toegang hebben tot de rekenresources die door Azure Machine Learning worden gebruikt, voert u de volgende stappen uit:
Notitie
Bij deze stappen wordt ervan uitgegaan dat u een bestaande werkruimte, Een Azure Storage-account, Azure Key Vault en Azure Container Registry hebt. Elk van deze services heeft een privé-eindpunt in een bestaand VNet.
- Maak een ander virtueel netwerk voor de clients. Dit virtuele netwerk kan Azure Virtual Machines bevatten die fungeren als uw clients, of het kan een VPN Gateway bevatten die wordt gebruikt door on-premises clients om verbinding te maken met het virtuele netwerk.
- Voeg een nieuw privé-eindpunt toe voor het Azure Storage-account, Azure Key Vault en Azure Container Registry dat door uw werkruimte wordt gebruikt. Deze privé-eindpunten moeten aanwezig zijn in het virtuele clientnetwerk.
- Als u een andere opslag hebt die door uw werkruimte wordt gebruikt, voegt u een nieuw privé-eindpunt voor die opslag toe. Het privé-eindpunt moet aanwezig zijn in het virtuele clientnetwerk en er moet privé-DNS-zoneintegratie zijn ingeschakeld.
- Voeg een nieuw privé-eindpunt toe aan uw werkruimte. Dit privé-eindpunt moet aanwezig zijn in het virtuele clientnetwerk en er moet privé-DNS-zoneintegratie zijn ingeschakeld.
- Als u Azure Machine Learning-studio toegang wilt geven tot de opslagaccounts, gaat u naar de studio in een artikel over een virtueel netwerk.
In het volgende diagram ziet u deze configuratie. Het virtuele netwerk Workload bevat rekenresources die zijn gemaakt door de werkruimte voor training en implementatie. Het virtuele clientnetwerk bevat clients of client ExpressRoute/VPN-verbindingen. Beide VNets bevatten privé-eindpunten voor de werkruimte, Azure Storage-account, Azure Key Vault en Azure Container Registry.
Scenario: Geïsoleerde Azure Kubernetes Service
Als u een geïsoleerde Azure Kubernetes Service wilt maken die wordt gebruikt door de werkruimte, gebruikt u de volgende stappen:
Notitie
Bij deze stappen wordt ervan uitgegaan dat u een bestaande werkruimte, Een Azure Storage-account, Azure Key Vault en Azure Container Registry hebt. Elk van deze services heeft een privé-eindpunt in een bestaand VNet.
- Maak een Azure Kubernetes Service-exemplaar. Tijdens het maken maakt AKS een virtueel netwerk dat het AKS-cluster bevat.
- Voeg een nieuw privé-eindpunt toe voor het Azure Storage-account, Azure Key Vault en Azure Container Registry dat door uw werkruimte wordt gebruikt. Deze privé-eindpunten moeten aanwezig zijn in het virtuele clientnetwerk.
- Als u andere opslag hebt die door uw werkruimte wordt gebruikt, voegt u een nieuw privé-eindpunt voor die opslag toe. Het privé-eindpunt moet aanwezig zijn in het virtuele clientnetwerk en er moet privé-DNS-zoneintegratie zijn ingeschakeld.
- Voeg een nieuw privé-eindpunt toe aan uw werkruimte. Dit privé-eindpunt moet aanwezig zijn in het virtuele clientnetwerk en er moet privé-DNS-zoneintegratie zijn ingeschakeld.
- Koppel het AKS-cluster aan de Azure Machine Learning-werkruimte. Zie Een Azure Kubernetes Service-cluster maken en koppelen voor meer informatie.