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 altre informazioni sulla creazione di una rete virtuale per Azure Machine Learning, vedere Panoramica di isolamento e privacy della rete virtuale.

Collegamento privato di Azure consente di connettersi all'area di lavoro usando 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 consentendolo 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 altre informazioni sulla protezione delle risorse usate da Azure Machine Learning, vedere gli articoli seguenti:

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 genererà errori se usato per la rete virtuale. 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 lo 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 del 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. 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 comporta la rimozione dell'area di lavoro dalla rete virtuale a cui è stato associato. La rimozione dell'endpoint privato può impedire all'area di lavoro di accedere alle risorse in tale rete virtuale oppure alle risorse della rete virtuale di accedere all'area di lavoro. Ad esempio, la rete virtuale non consente l'accesso a o da Internet pubblico.

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, può essere necessario consentire a qualcuno di connettersi all'area di lavoro protetta tramite un endpoint pubblico, invece che attraverso la rete virtuale. Oppure può essere necessario 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 v1
  • public_network_access: usata dall'interfaccia della riga di comando e da Python SDK v2 Ogni proprietà sostituisce l'altra. Ad esempio, l'impostazione di public_network_access sostituirà qualsiasi impostazione precedente su allow_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.
  • 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 questa funzionalità.

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.

  • Se questa funzionalità è abilitata, è possibile testare gli endpoint pubblici usando qualsiasi strumento client, ad esempio Postman o altri, ma lo strumento di test degli endpoint del portale non è supportato.

Connettersi in modo sicuro all'area di lavoro

Per connettersi a un'area di lavoro protetta dietro una rete virtuale, usare 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 uso di un jump box, vedere Esercitazione: Creare un'area di lavoro sicura.

Importante

Quando si usa 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, vedere 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 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Usare la procedura descritta nell'articolo Usare studio in una rete virtuale per consentire a studio di accedere agli account di archiviazione.

Il diagramma seguente illustra questa configurazione. Il carico di lavoro Workload 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.

Diagram of isolated client VNet

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Collegare un cluster del servizio Azure Kubernetes all'area di lavoro di Azure Machine Learning. Per altre informazioni, vedere Creare e collegare un cluster del servizio Azure Kubernetes.

Diagram of isolated AKS VNet

Passaggi successivi