Configurare un endpoint privato per un'area di lavoro di Azure Machine Learning
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
Questo documento illustra come configurare un endpoint privato per l'area di lavoro di Azure Machine Learning. Per ulteriori informazioni sulla creazione di una rete virtuale per Azure Machine Learning, consultare Panoramica di isolamento e privacy della rete virtuale.
Il collegamento privato di Azure consente di limitare le connessioni all'area di lavoro da una rete virtuale di Azure. È possibile limitare un'area di lavoro in modo che accetti solo le connessioni da una rete virtuale creando un endpoint privato. L'endpoint privato è un set di indirizzi IP privati all'interno della rete virtuale. Quindi è possibile limitare l'accesso all'area di lavoro solo tramite gli indirizzi IP privati. Un endpoint privato consente di ridurre il rischio di esfiltrazione di dati. Per altre informazioni sugli endpoint privati, vedere l'articolo Collegamento privato di Azure.
Avviso
La protezione di un'area di lavoro tramite endpoint privati non garantisce di per sé la sicurezza end-to-end. È necessario proteggere tutti i singoli componenti della soluzione. Ad esempio, se si usa un endpoint privato per l'area di lavoro, ma l'account di archiviazione di Azure non si trova dietro la rete virtuale, il traffico tra l'area di lavoro e l'archiviazione non usa la rete virtuale per la sicurezza.
Per ulteriori informazioni sulla protezione delle risorse usate da Azure Machine Learning, consultare i seguenti articoli:
Prerequisiti
È necessario avere una rete virtuale esistente in cui creare l'endpoint privato.
Avviso
Non usare l'intervallo di indirizzi IP 172.17.0.0/16 per la rete virtuale. Questo è l'intervallo di subnet predefinito utilizzato dalla rete bridge Docker e, se usato per la rete virtuale, genererà errori. Anche altri intervalli possono essere in conflitto, a seconda di ciò che si vuole collegare alla rete virtuale. Ad esempio, se si intende connettere la propria rete locale alla rete virtuale e la rete locale usa l'intervallo 172.16.0.0/16, è possibile che si verifichi un conflitto. In definitiva, è necessario pianificare personalmente l'infrastruttura di rete.
Disabilitare i criteri di rete per gli endpoint privati prima di aggiungere l'endpoint privato.
Limiti
Se si abilita l'accesso pubblico per un'area di lavoro protetta con un endpoint privato e si usa studio di Azure Machine Learning tramite Internet pubblico, alcune funzionalità, ad esempio la finestra di progettazione, potrebbero non riuscire ad accedere ai dati. Questo problema si verifica quando i dati vengono archiviati in un servizio protetto dalla rete virtuale, ad esempio un account di archiviazione di Azure.
Se si usa Mozilla Firefox, è possibile che si verifichino problemi durante il tentativo di accedere all'endpoint privato per l'area di lavoro. Questo problema può essere correlato al DNS su HTTPS in Mozilla Firefox. È consigliabile usare Microsoft Edge o Google Chrome.
L'uso di un endpoint privato non influisce sul piano di controllo di Azure (operazioni di gestione), ad esempio l'eliminazione dell'area di lavoro o la gestione delle risorse di calcolo. Ad esempio, la creazione, l'aggiornamento o l'eliminazione della destinazione di calcolo. Queste operazioni vengono eseguite su Internet pubblico come di consueto. Le operazioni del piano dati, ad esempio tramite studio di Azure Machine Learning, API (incluse le pipeline pubblicate) o SDK, usano l'endpoint privato.
Quando si crea un'istanza di ambiente di calcolo o un cluster di elaborazione in un'area di lavoro con un endpoint privato, l'istanza di ambiente di calcolo e il cluster di elaborazione devono essere nella stessa area di Azure dell'area di lavoro.
Se si collega un cluster del servizio Azure Kubernetes a un'area di lavoro con un endpoint privato, è necessario che il cluster si trovi nella stessa area dell'area di lavoro.
Se si usa un'area di lavoro con più endpoint privati, uno di questi deve trovarsi nella stessa rete virtuale dei servizi di dipendenza seguenti:
- Account di archiviazione di Azure che fornisce la risorsa di archiviazione predefinita per l'area di lavoro
- Azure Key Vault per l'area di lavoro
- Registro Azure Container per l'area di lavoro.
Ad esempio, un'unica rete virtuale ('services') conterrà un endpoint privato per i servizi di dipendenza e l'area di lavoro. Questa configurazione consente le comunicazioni tra l'area di lavoro e i servizi. Un'altra rete virtuale ('clients') potrebbe contenere solo un endpoint privato per l'area di lavoro e può essere usata solo per le comunicazioni tra i computer di sviluppo client e l'area di lavoro.
Creare un'area di lavoro che usa un endpoint privato
Usare uno dei metodi seguenti per creare un'area di lavoro con un endpoint privato. Ognuno di questi metodi richiede una rete virtuale esistente:
Suggerimento
Per creare contemporaneamente un'area di lavoro, un endpoint privato e una rete virtuale, vedere Usare un modello di Azure Resource Manager per creare un'area di lavoro per Azure Machine Learning.
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
Se si usa l'estensione 2.0 per Machine Learning dell'interfaccia della riga di comando di Azure, viene usato un documento YAML per configurare l'area di lavoro. L'esempio seguente illustra la creazione di una nuova area di lavoro usando una configurazione YAML:
Suggerimento
Se si usa un collegamento privato, l'area di lavoro non può usare le risorse di calcolo di Attività del Registro Azure Container per la creazione di immagini. Per impostazione predefinita, l'area di lavoro usa un cluster di calcolo serverless per creare immagini. Questa operazione funziona solo quando le risorse dipendenti dall'area di lavoro, ad esempio l'account di archiviazione e il Registro Container, non rientrano in alcuna restrizione di rete (endpoint privato). Se le dipendenze dell'area di lavoro sono sottoposte a restrizioni di rete, usare la proprietà image_build_compute
per specificare un cluster di elaborazione da usare per la compilazione di immagini.
La proprietà image_build_compute
in questa configurazione specifica un nome del cluster di elaborazione basato su CPU da usare per la creazione dell'ambiente di immagini Docker. È anche possibile specificare se l'area di lavoro del collegamento privato deve essere o meno accessibile via Internet usando la proprietà public_network_access
.
In questo esempio è necessario creare l'ambiente di calcolo a cui fa riferimento image_build_compute
prima di creare immagini.
$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
Dopo aver creato l'area di lavoro, usare i comandi dell'interfaccia della riga di comando di rete di Azure per creare un endpoint collegamento privato.
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>
Per creare le voci della zona DNS privato per l'area di lavoro, usare i comandi seguenti:
# 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
Aggiungere un endpoint privato a un'area di lavoro
Usare uno dei metodi seguenti per creare un endpoint privato a un'area di lavoro esistente:
Avviso
Le eventuali destinazioni di calcolo esistenti associate a questa area di lavoro, che non si trovano dietro la stessa rete virtuale in cui viene creato l'endpoint privato, non funzioneranno.
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
Se si usa l'estensione 2.0 per Machine Learning dell'interfaccia della riga di comando di Azure, usare i comandi dell'interfaccia della riga di comando della rete di Azure per creare un endpoint collegamento privato per l'area di lavoro.
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>
Per creare le voci della zona DNS privato per l'area di lavoro, usare i comandi seguenti:
# 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'
Rimuovere un endpoint privato
È possibile rimuovere uno o tutti gli endpoint privati per un'area di lavoro. La rimozione di un endpoint privato rimuove l'area di lavoro dalla rete virtuale a cui è associato l'endpoint. La rimozione dell'endpoint privato potrebbe impedire all’area di lavoro di accedere alle risorse nella rete virtuale o alle risorse nella rete virtuale di accedere all'area di lavoro. Ad esempio, se la rete virtuale non consente l'accesso a, o dalla, rete Internet pubblica.
Avviso
La rimozione degli endpoint privati per un'area di lavoro non la rende accessibile pubblicamente. Per rendere l'area di lavoro accessibile pubblicamente, seguire la procedura descritta nella sezione Abilitare l'accesso pubblico.
Per rimuovere un endpoint privato, usare le informazioni seguenti:
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
Se si usa l'estensione 2.0 per Machine Learning dell'interfaccia della riga di comando di Azure, usare il comando seguente per rimuovere l'endpoint privato:
az network private-endpoint delete \
--name <private-endpoint-name> \
--resource-group <resource-group-name> \
Abilitare l'accesso pubblico
In alcune situazioni, è possibile consentire a un utente di connettersi all'area di lavoro protetta tramite un endpoint pubblico, anziché tramite la rete virtuale. In alternativa, è possibile rimuovere l'area di lavoro dalla rete virtuale e riabilitare l'accesso pubblico.
Importante
L'abilitazione dell'accesso pubblico non rimuove gli endpoint privati esistenti. Tutte le comunicazioni tra i componenti dietro la rete virtuale a cui si connettono gli endpoint privati rimangono protette. L'accesso pubblico viene abilitato solo all'area di lavoro, in aggiunta all'accesso privato tramite gli endpoint privati.
Avviso
Quando ci si connette tramite l'endpoint pubblico mentre l'area di lavoro usa un endpoint privato per comunicare con altre risorse:
- Alcune funzionalità di studio non riusciranno ad accedere ai dati.. Questo problema si verifica quando i dati vengono archiviati in un servizio protetto dalla rete virtuale. ad esempio un account di archiviazione di Azure. Per risolvere il problema, aggiungere l'indirizzo IP del dispositivo client al firewall dell'account di archiviazione di Azure.
- L'uso di Jupyter, JupyterLab, RStudio o Posit Workbench (in precedenza RStudio Workbench) in un'istanza di ambiente di calcolo, inclusi i notebook in esecuzione, non è supportato.
Per abilitare l'accesso pubblico, seguire questa procedura:
Suggerimento
Esistono due proprietà che è possibile configurare:
allow_public_access_when_behind_vnet
: usata da Python SDK v1public_network_access
: usata dall'interfaccia della riga di comando e da Python SDK v2 Ogni proprietà sostituisce l'altra. Ad esempio, l'impostazione dipublic_network_access
sostituirà qualsiasi impostazione precedente suallow_public_access_when_behind_vnet
.
Microsoft consiglia di usare public_network_access
per abilitare o disabilitare l'accesso pubblico a un'area di lavoro.
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
Se si usa l'estensione 2.0 per Machine Learning dell'interfaccia della riga di comando di Azure, usare il comando az ml update
per abilitare public_network_access
per l'area di lavoro:
az ml workspace update \
--set public_network_access=Enabled \
-n <workspace-name> \
-g <resource-group-name>
È anche possibile abilitare l'accesso pubblico alla rete usando un file YAML. Per altre informazioni, vedere le informazioni di riferimento su YAML nell'area di lavoro.
Abilitare l'accesso pubblico solo da intervalli IP Internet (anteprima)
È possibile usare le regole di rete IP per consentire l'accesso all'area di lavoro e all'endpoint da specifici intervalli di indirizzi IP di Internet pubblico creando regole di rete IP. Ogni area di lavoro di Azure Machine Learning supporta fino a 200 regole. Queste regole concedono l'accesso a servizi specifici basati su Internet e alle reti locali e blocca il traffico Internet generale.
Avviso
- Abilitare il flag di accesso pubblico alla rete dell'endpoint se si vuole consentire l'accesso all'endpoint da specifici intervalli di indirizzi IP di Internet pubblico.
- Se abilitata, questa funzionalità influisce su tutti gli endpoint pubblici esistenti associati all'area di lavoro. Ciò può limitare l'accesso a endpoint nuovi o esistenti. Se si accede a qualsiasi endpoint da un indirizzo IP non consentito, viene visualizzato un errore 403.
- È possibile usare solo indirizzi IPv4.
- Per usare questa funzionalità con la rete virtuale gestita di Azure Machine Learning, vedere Rete virtuale gestita di Azure Machine Learning.
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
L'interfaccia della riga di comando di Azure non supporta l'abilitazione dell'accesso pubblico dagli intervalli di indirizzi IP.
Restrizioni per le regole di rete IP
Agli intervalli di indirizzi IP si applicano le restrizioni seguenti:
Le regole di rete IP sono consentite solo per gli indirizzi IP di Internet pubblico.
Nelle regole IP nono sono consentiti intervalli di indirizzi IP riservati, ad esempio indirizzi privati che iniziano con 10, l'intervallo 172.16 - 172.31 e 192.168.
È necessario specificare intervalli di indirizzi Internet consentiti usando notazione CIDR nel formato 16.17.18.0/24 o come indirizzi IP singoli, ad esempio 16.17.18.19.
Per la configurazione delle regole del firewall di archiviazione sono supportati solo gli indirizzi IPv4.
Quando questa funzionalità è abilitata, è possibile testare gli endpoint pubblici usando qualsiasi strumento client, ad esempio Curl, ma lo strumento di test degli endpoint nel portale non è supportato.
Connettersi in modo sicuro all'area di lavoro
Per connettersi a un'area di lavoro protetta dietro una rete virtuale, utilizzare uno dei metodi seguenti:
Gateway VPN di Azure - Connette le reti locali alla rete virtuale tramite una connessione privata. La connessione viene stabilita nella rete Internet pubblica. Ci sono due tipi di gateway VPN che è possibile usare:
- Da punto a sito: ogni computer client usa un client VPN per connettersi alla rete virtuale.
- Da sito a sito: un dispositivo VPN connette la rete virtuale alla rete locale.
ExpressRoute - Connette le reti locali al cloud tramite una connessione privata. La connessione viene stabilita usando un provider di connettività.
Azure Bastion - In questo scenario si crea una macchina virtuale di Azure (talvolta denominata jump box) nella rete virtuale. Si stabilisce quindi la connessione alla macchina virtuale usando Azure Bastion. Bastion consente di connettersi alla macchina virtuale usando una sessione RDP o SSH dal Web browser locale. Usare quindi il dispositivo jump box come ambiente di sviluppo. Poiché si trova all'interno della rete virtuale, può accedere direttamente all'area di lavoro. Per un esempio di utilizzo di una jump box, vedere Esercitazione - Creare un'area di lavoro sicura.
Importante
Quando si utilizza un gateway VPN o ExpressRoute, è necessario pianificare il funzionamento della risoluzione dei nomi tra le risorse locali e quelle presenti nella rete virtuale. Per altre informazioni, vedere Usare un server DNS personalizzato.
In caso di problemi di connessione all'area di lavoro, consultare Risolvere i problemi di connettività sicura dell'area di lavoro.
Più endpoint privati
Azure Machine Learning supporta più endpoint privati per un'area di lavoro. In genere vengono usati più endpoint privati per mantenere separati ambienti diversi. Di seguito sono riportati alcuni scenari resi possibili con l'uso di più endpoint privati:
Ambienti di sviluppo client in una rete virtuale separata.
Cluster del servizio Azure Kubernetes (AKS) in una rete virtuale separata.
Altri servizi di Azure in una rete virtuale separata. Ad esempio, Azure Synapse e Azure Data Factory possono usare una rete virtuale gestita da Microsoft. In entrambi i casi, è possibile aggiungere un endpoint privato per l'area di lavoro alla rete virtuale gestita usata da tali servizi. Per altre informazioni sull'uso di una rete virtuale gestita con questi servizi, vedere gli articoli seguenti:
Importante
La protezione da esfiltrazione dei dati di Synapse non è supportata con Azure Machine Learning.
Importante
Ogni rete virtuale che contiene un endpoint privato per l'area di lavoro deve anche essere in grado di accedere all'account di archiviazione di Azure, ad Azure Key Vault e a Registro Azure Container usati dall'area di lavoro. Ad esempio, è possibile creare un endpoint privato per i servizi in ogni rete virtuale.
L'aggiunta di più endpoint privati prevede gli stessi passaggi descritti nella sezione Aggiungere un endpoint privato a un'area di lavoro.
Scenario: client isolati
Se si vogliono isolare i client di sviluppo, in modo che non abbiano accesso diretto alle risorse di calcolo usate da Azure Machine Learning, seguire questa procedura:
Nota
Questi passaggi presuppongono che si disponga di un'area di lavoro esistente, di un account di archiviazione di Azure, di Azure Key Vault e di Registro Azure Container. Ognuno di questi servizi ha endpoint privati in una rete virtuale esistente.
- Creare un'altra rete virtuale per i client. Questa rete virtuale potrebbe contenere macchine virtuali di Azure che fungono da client oppure un gateway VPN usato dai client locali per connettersi alla rete virtuale.
- Aggiungere un nuovo endpoint privato per l'account di archiviazione di Azure, Azure Key Vault e Registro Azure Container usati dall'area di lavoro. Questi endpoint privati devono esistere nella rete virtuale client.
- Se si dispone di un'altra risorsa di archiviazione usata dall'area di lavoro, aggiungere un nuovo endpoint privato per tale risorsa. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Aggiungere un nuovo endpoint privato all'area di lavoro. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Per consentire a studio di Azure Maching Learning di accedere agli account di archiviazione, vedere l’articolo Usare studio in una rete virtuale.
Il diagramma seguente illustra questa configurazione. La rete virtuale Carico di lavoro contiene le risorse di calcolo create dall'area di lavoro per le attività di training e distribuzione. La rete virtuale Client contiene client o connessioni ExpressRoute/VPN client. Entrambe le reti virtuali contengono endpoint privati per l'area di lavoro, l'account di archiviazione di Azure, Azure Key Vault e Registro Azure Container usati dall'area di lavoro.
Scenario: servizio Azure Kubernetes isolato
Per creare un servizio Azure Kubernetes isolato usato dall'area di lavoro, seguire questa procedura:
Nota
Questi passaggi presuppongono che si disponga di un'area di lavoro esistente, di un account di archiviazione di Azure, di Azure Key Vault e di Registro Azure Container. Ognuno di questi servizi ha endpoint privati in una rete virtuale esistente.
- Creare un'istanza del servizio Azure Kubernetes. Durante la creazione, il servizio Azure Kubernetes crea una rete virtuale che contiene il cluster del servizio Azure Kubernetes.
- Aggiungere un nuovo endpoint privato per l'account di archiviazione di Azure, Azure Key Vault e Registro Azure Container usati dall'area di lavoro. Questi endpoint privati devono esistere nella rete virtuale client.
- Se si dispone di un'altra risorsa di archiviazione usata dall'area di lavoro, aggiungere un nuovo endpoint privato per tale risorsa. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Aggiungere un nuovo endpoint privato all'area di lavoro. L'endpoint privato deve esistere nella rete virtuale client e deve avere l'integrazione della zona DNS privato abilitata.
- Collegare un cluster del servizio Azure Kubernetes all'area di lavoro di Azure Machine Learning. Per ulteriori informazioni, consultare Creare e collegare un cluster del servizio Azure Kubernetes.