Proteggere un ambiente di training di Azure Machine Learning con reti virtuali
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
Suggerimento
È possibile usare reti virtuali gestite di Azure Machine Learning anziché i passaggi descritti in questo articolo. Con una rete virtuale gestita, Azure Machine Learning gestisce il processo di isolamento della rete per l'area di lavoro e gli ambienti di calcolo gestito. È anche possibile aggiungere endpoint privati per le risorse necessarie per l'area di lavoro, ad esempio l'account di archiviazione di Azure. Per altre informazioni vedere Isolamento rete gestito dall'area di lavoro.
È possibile usare l'istanza di calcolo di Azure Machine Learning, l’elaborazione serverless e il cluster di elaborazione per eseguire il training sicuro dei modelli in una rete virtuale di Azure. Quando si pianifica l'ambiente è possibile configurare l'istanza di ambiente di calcolo, il cluster di elaborazione o l’elaborazione serverless con o senza un indirizzo IP pubblico. Le differenze generali tra i due sono:
- Senza IP pubblico: riduce i costi perché non ha gli stessi requisiti delle risorse di rete. Migliora la sicurezza rimuovendo il requisito per il traffico in ingresso da Internet. Tuttavia, sono necessarie modifiche di configurazione aggiuntive per abilitare l'accesso in uscita alle risorse necessarie (Microsoft Entra ID, Azure Resource Manager e così via).
- IP pubblico: funziona per impostazione predefinita, ma costa di più a causa delle risorse di rete aggiuntive di Azure. Richiede la comunicazione in ingresso dal servizio Azure Machine Learning tramite Internet pubblico.
La tabella seguente mostra le differenze tra queste configurazioni:
Impostazione | Con IP pubblico | Senza IP pubblico |
---|---|---|
Traffico in ingresso | AzureMachineLearning tag del servizio. |
None |
Traffico in uscita | Per impostazione predefinita può accedere a Internet pubblico senza restrizioni. È possibile limitarne gli accessi usando un gruppo di sicurezza di rete o un firewall. |
Per impostazione predefinita può accedere alla rete pubblica usando l' Accesso in uscita predefinito fornito da Azure. Invece, si consiglia di usare un gateway NAT di rete virtuale o un firewall, se è necessario instradare il traffico in uscita alle risorse necessarie su Internet. |
Risorse di rete di Azure | Indirizzo IP pubblico, bilanciamento del carico, interfaccia di rete | None |
È anche possibile usare Azure Databricks o HDInsight per eseguire il training dei modelli in una rete virtuale.
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. La versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Il presente articolo fa parte di una serie di articoli sulla protezione del flusso di lavoro di Azure Machine Learning. Vedi gli altri articoli di questa serie:
- Panoramica della rete virtuale
- Proteggere le risorse dell'area di lavoro
- Proteggere l'ambiente di inferenza
- Abilitare la funzionalità di Studio
- Usare DNS personalizzato
- Usare un firewall
Per un'esercitazione sulla creazione di un'area di lavoro sicura, vedere Esercitazione: Creare un'area di lavoro sicura, Modello Bicep o Terraform template (Modello Terraform).
Il presente articolo illustra come proteggere le seguenti risorse di calcolo di training in una rete virtuale:
- Cluster di calcolo di Azure Machine Learning
- Istanza di calcolo di Azure Machine Learning
- Elaborazione serverless di Azure Machine Learning
- Azure Databricks
- Macchina virtuale
- Cluster HDInsight
Prerequisiti
Per comprendere gli scenari di rete virtuale comuni e l'architettura complessiva della rete virtuale leggere l'articolo Panoramica della sicurezza di rete.
Una rete virtuale e una subnet esistenti da usare con le risorse di calcolo. Questa rete virtuale deve trovarsi nella stessa sottoscrizione dell'area di lavoro di Azure Machine Learning.
- Si consiglia di inserire gli account di archiviazione usati dall'area di lavoro e dai processi di training nella stessa area di Azure che si prevede di usare per le istanze di ambiente di calcolo, l’elaborazione serverless e i cluster di elaborazione. Se non si trovano nella stessa area di Azure, è possibile incorrere in costi di trasferimento dei dati e in una maggiore latenza di rete.
- Assicurarsi che la comunicazione WebSocket sia consentita per
*.instances.azureml.net
e*.instances.azureml.ms
nella rete virtuale. I WebSocket vengono usati da Jupyter nelle istanze di calcolo.
Una subnet esistente nella rete virtuale. Questa subnet viene usata durante la creazione di istanze di ambiente di calcolo, cluster di elaborazione e nodi per l’elaborazione serverless.
- Assicurarsi che la subnet non sia delegata ad altri servizi di Azure.
- Assicurarsi che la subnet contenga un numero sufficiente di indirizzi IP liberi. Ogni istanza di ambiente di calcolo richiede un indirizzo IP. Ciascun nodo all'interno di un cluster di elaborazione e ciascun nodo per l’elaborazione serverless richiede un indirizzo IP.
Se si dispone di un proprio server DNS, si consiglia di usare l'inoltro DNS per risolvere i nomi di dominio completi (FQDN) delle istanze di ambiente di calcolo e dei cluster di elaborazione. Per altre informazioni vedere Usare un DNS personalizzato con Azure Machine Learning.
Per distribuire le risorse in una rete virtuale o in una subnet, l'account utente deve disporre delle autorizzazioni per eseguire le azioni seguenti nel controllo degli accessi in base al ruolo di Azure:
- "Microsoft.Network/*/read" nella risorsa della rete virtuale. Questa autorizzazione non è necessaria per le distribuzioni di modelli di Azure Resource Manager (ARM).
- "Microsoft.Network/virtualNetworks/join/action" nella risorsa della rete virtuale.
- "Microsoft.Network/virtualNetworks/subnets/join/action" nella risorsa della subnet.
Per altre informazioni sul controllo degli accessi in base al ruolo di Azure nella rete vedere Ruoli predefiniti di rete
Limiti
Il cluster di elaborazione o l'istanza e la distribuzione di elaborazione serverless nella rete virtuale non sono supportati con Azure Lighthouse.
La porta 445 deve essere aperta per le comunicazioni di rete privata tra le istanze di calcolo e l'account di archiviazione predefinito durante il training. Ad esempio, se i calcoli si trovano in una rete virtuale e l'account di archiviazione si trova in un altro, non bloccare la porta 445 nella rete virtuale dell'account di archiviazione.
Cluster di elaborazione in una rete virtuale/area diversa dall'area di lavoro
Importante
Non è possibile creare un’ istanza di ambiente di calcolo in un'area o in una rete virtuale diversa, ma solo in un cluster di elaborazione.
Per creare un cluster di elaborazione in una rete virtuale di Azure in un'area diversa dalla rete virtuale dell'area di lavoro sono disponibili due opzioni per abilitare la comunicazione tra le due reti virtuali.
- Peering di reti virtuali.
- Aggiungere un endpoint privato per l'area di lavoro nella rete virtuale che conterrà il cluster di elaborazione.
Importante
Indipendentemente dal metodo selezionato, è anche necessario creare la rete virtuale per il cluster di elaborazione; Azure Machine Learning non la creerà automaticamente.
È anche necessario consentire all'account di archiviazione predefinito, al Registro Azure Container e ad Azure Key Vault di accedere alla rete virtuale per il cluster di elaborazione. Esistono diversi modi per eseguire questa operazione. Ad esempio, è possibile creare un endpoint privato per ogni risorsa nella rete virtuale per il cluster di elaborazione oppure usare il peering di reti virtuali per consentire alla rete virtuale dell'area di lavoro di accedere alla rete virtuale del cluster di elaborazione.
Scenario: peering di reti virtuali
Configurare l'area di lavoro per usare una rete virtuale di Azure. Per altre informazioni vedere Proteggere le risorse dell'area di lavoro.
Creare una seconda rete virtuale di Azure che verrà usata per i cluster di elaborazione. Può trovarsi in un'area di Azure diversa da quella usata per l'area di lavoro.
Configurare il Peering di reti virtuali tra le due reti virtuali.
Suggerimento
Attendere che lo stato del peering di reti virtuali sia Connesso prima di continuare.
Modificare la
privatelink.api.azureml.ms
zona DNS per aggiungere un collegamento alla rete virtuale per il cluster di elaborazione. Questa zona viene creata dall'area di lavoro di Azure Machine Learning quando usa un endpoint privato per partecipare a una rete virtuale.Aggiungere un nuovo collegamento di rete virtuale alla zona DNS. Esistono diversi modi per eseguire questa operazione:
- Nel portale di Azure passare alla zona DNS e selezionare Collegamenti di rete virtuale. Poi selezionare + Aggiungi e selezionare la rete virtuale creata per i cluster di elaborazione.
- Dall’interfaccia della riga di comando di Azure usare il comando
az network private-dns link vnet create
. Per altre informazioni vedere az network private-dns link vnet create. - In Azure PowerShell usare il comando
New-AzPrivateDnsVirtualNetworkLink
. Per altre informazioni vedere New-AzPrivateDnsVirtualNetworkLink.
Ripetere il passaggio precedente e i passaggi secondari per la zona DNS
privatelink.notebooks.azure.net
.Configurare le risorse di Azure seguenti per consentire l'accesso da entrambe le reti virtuali.
- Account di archiviazione predefinito per l'area di lavoro.
- Registro Azure Container per l'area di lavoro.
- Azure Key Vault per l'area di lavoro.
Suggerimento
Esistono diversi modi per configurare questi servizi per consentire l'accesso alle reti virtuali. Ad esempio, è possibile creare un endpoint privato per ogni risorsa in entrambe le reti virtuali. In alternativa, è possibile configurare le risorse per consentire l'accesso da entrambe le reti virtuali.
Creare un cluster di elaborazione come di consueto quando si usa una rete virtuale, ma selezionare la rete virtuale creata per il cluster di elaborazione. Se la rete virtuale si trova in un'area diversa, selezionare tale area durante la creazione del cluster di elaborazione.
Avviso
Quando si imposta l'area, se si tratta di un'area diversa rispetto all'area di lavoro o agli archivi dati, è possibile incorrere in un aumento della latenza di rete e dei costi di trasferimento dei dati. La latenza e i costi possono aumentare durante la creazione del cluster e durante l'esecuzione di processi in tale cluster.
Scenario: endpoint privato
Configurare l'area di lavoro per usare una rete virtuale di Azure. Per altre informazioni vedere Proteggere le risorse dell'area di lavoro.
Creare una seconda rete virtuale di Azure che verrà usata per i cluster di elaborazione. Può trovarsi in un'area di Azure diversa da quella usata per l'area di lavoro.
Creare un nuovo endpoint privato per l'area di lavoro nella rete virtuale che conterrà il cluster di elaborazione.
Per aggiungere un nuovo endpoint privato usando il portale di Azure, selezionare l'area di lavoro e quindi selezionare Rete. Selezionare Connessioni a endpoint privato, + Endpoint privato e usare i campi per creare un nuovo endpoint privato.
- Nel campo Area selezionare la stessa area della rete virtuale.
- Nel campo Tipo di risorsa usare Microsoft.MachineLearningServices/workspaces.
- Impostare Risorsa sul nome dell'area di lavoro.
- Impostare la Rete virtuale e la Subnet sulla rete virtuale e sulla subnet create per il cluster di elaborazione.
Infine, selezionare Crea per creare l'endpoint privato.
Per aggiungere un nuovo endpoint privato usando l'interfaccia della riga di comando di Azure usare
az network private-endpoint create
. Per un esempio di come usare questo comando vedere Configurare un endpoint privato per l'area di lavoro di Azure Machine Learning.
Creare un cluster di elaborazione come di consueto quando si usa una rete virtuale, ma selezionare la rete virtuale creata per il cluster di elaborazione. Se la rete virtuale si trova in un'area diversa, selezionare tale area durante la creazione del cluster di elaborazione.
Avviso
Quando si imposta l'area, se si tratta di un'area diversa rispetto all'area di lavoro o agli archivi dati, è possibile incorrere in un aumento della latenza di rete e dei costi di trasferimento dei dati. La latenza e i costi possono aumentare durante la creazione del cluster e durante l'esecuzione di processi in tale cluster.
Istanza di ambiente di calcolo, cluster di elaborazione o elaborazione serverless senza IP pubblico
Importante
Queste informazioni sono valide solo quando si usa una Rete virtuale di Azure. Se si usa una rete virtuale gestita, le risorse di calcolo non possono essere distribuite nella Rete virtuale di Azure. Per informazioni sull’utilizzo della rete virtuale gestita, vedere Ambiente di calcolo gestito con una rete gestita.
Importante
Se sono state usate istanze di ambiente di calcolo e cluster di elaborazione configurati senza IP pubblico e senza acconsentire esplicitamente all'anteprima, sarà necessario eliminarli e ricrearli dopo il 20 gennaio 2023 (quando la funzionalità sarà disponibile a livello generale).
Poiché i requisiti sono stati modificati per la disponibilità generale, se in precedenza si usava l'anteprima senza IP pubblico, potrebbe essere necessario modificare anche il traffico consentito in ingresso e in uscita:
- Requisiti in uscita: due uscite aggiuntive, che vengono usate solo per la gestione di istanze di ambiente di calcolo e di cluster di elaborazione. La destinazione di questi tag del servizio è di proprietà di Microsoft:
AzureMachineLearning
tag del servizio sulla porta UDP 5831.BatchNodeManagement
tag del servizio sulla porta TCP 443.
Le configurazioni seguenti sono aggiunte a quelle elencate nella sezione Prerequisiti e sono specifiche per la creazione di istanze di ambiente di calcolo e di cluster di elaborazione configurati senza IP pubblico. Si applicano anche all’elaborazione serverless:
È necessario usare un endpoint privato dell'area di lavoro, affinché la risorsa di calcolo comunichi con i servizi di Azure Machine Learning dalla rete virtuale. Per altre informazioni vedere Configurare un endpoint privato per l'area di lavoro di Azure Machine Learning.
Nella rete virtuale consentire il traffico in uscita ai tag di servizio seguenti o ai nomi di dominio completi (FQDN):
Tag di servizio Protocollo Port Note AzureMachineLearning
TCP
UDP443/8787/18881
5831Comunicazione con il servizio Azure Machine Learning. BatchNodeManagement.<region>
QUALSIASI 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Comunicazione con Azure Batch. L'istanza di calcolo e il cluster di elaborazione vengono implementati usando il servizio Azure Batch.Storage.<region>
TCP 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Questo tag del servizio viene usato per comunicare con l'account di archiviazione di Azure usato da Azure Batch.Importante
L'accesso in uscita a
Storage.<region>
può essere potenzialmente usato per esfiltrare i dati dall'area di lavoro. Usando i criteri dell’endpoint di servizio è possibile attenuare questa vulnerabilità. Per altre informazioni vedere l'articolo Prevenzione dell'esfiltrazione dei dati di Azure Machine Learning.FQDN Protocollo Port Note <region>.tundra.azureml.ms
UDP 5831 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning.graph.windows.net
TCP 443 Comunicazione con l'API Microsoft Graph. *.instances.azureml.ms
TCP 443/8787/18881 Comunicazione con Azure Machine Learning. *.<region>.batch.azure.com
QUALSIASI 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Comunicazione con Azure Batch.*.<region>.service.batch.azure.com
QUALSIASI 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Comunicazione con Azure Batch.*.blob.core.windows.net
TCP 443 Comunicazione con archiviazione BLOB di Azure. *.queue.core.windows.net
TCP 443 Comunicazione con archiviazione code di Azure. *.table.core.windows.net
TCP 443 Comunicazione con archiviazione tabelle di Azure. Per impostazione predefinita, un'istanza di calcolo o un cluster configurato per nessun indirizzo IP pubblico non ha accesso in uscita a Internet. Se invece è possibile accedervi a Internet, ciò avviene per l'accesso in uscita predefinito di Azure e perché si dispone di NSG che consente l'accesso in uscita a Internet. Tuttavia, non è consigliabile usare l'accesso in uscita predefinito. Se è necessario l'accesso in uscita a Internet, è consigliabile usare invece un firewall e regole in uscita o un gateway NAT e i gruppi di servizi di rete per consentire il traffico in uscita.
Per altre informazioni sul traffico in uscita usato da Azure Machine Learning, vedere gli articoli seguenti:
Per altre informazioni sui tag di servizio che possono essere usati con Firewall di Azure vedere l'articolo Tag del servizio di rete virtuale.
Usare le informazioni seguenti per creare un'istanza di ambiente di calcolo o un cluster di elaborazione senza indirizzo IP pubblico:
Nel comando az ml compute create
sostituire i valori seguenti:
rg
: gruppo di risorse in cui verrà creato il calcolo.ws
: nome dell'area di lavoro di Azure Machine Learning.yourvnet
: rete virtuale di Azure.yoursubnet
: subnet da usare per il calcolo.AmlCompute
oComputeInstance
: specificandoAmlCompute
crea un cluster di elaborazione.ComputeInstance
crea un' istanza di ambiente di calcolo.
# 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
Usare le informazioni seguenti per configurare i nodi dell’ elaborazione serverless senza indirizzo IP pubblico nella rete virtuale per una determinata area di lavoro:
Importante
Se non si usa un ambiente di calcolo serverless IP pubblico e l'area di lavoro usa un elenco di indirizzi IP consentiti, è necessario aggiungere un endpoint privato in uscita all'area di lavoro. L'ambiente di calcolo serverless deve comunicare con l'area di lavoro, ma quando configurato per nessun indirizzo IP pubblico usa l'istanza predefinita di Azure in uscita per l'accesso a Internet. L'indirizzo IP pubblico per questo in uscita è dinamico e non può essere aggiunto all'elenco indirizzi IP consentiti. La creazione di un endpoint privato in uscita nell'area di lavoro consente il traffico dal calcolo serverless associato per l'area di lavoro per ignorare l'elenco di indirizzi IP consentiti.
Creare un'area di lavoro:
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
Aggiornare l'area di lavoro:
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
Istanza di ambiente di calcolo, cluster di elaborazione o elaborazione serverless con IP pubblico
Importante
Queste informazioni sono valide solo quando si usa una Rete virtuale di Azure. Se si usa una rete virtuale gestita, le risorse di calcolo non possono essere distribuite nella Rete virtuale di Azure. Per informazioni sull’utilizzo della rete virtuale gestita, vedere Ambiente di calcolo gestito con una rete gestita.
Le configurazioni seguenti sono aggiunte a quelle elencate nella sezione Prerequisiti e sono specifiche per la creazione di istanze di ambiente di calcolo e di cluster di elaborazione con IP pubblico. Si applicano anche all’elaborazione serverless:
Se si inseriscono più istanze di ambiente di calcolo e cluster di elaborazione in una rete virtuale, potrebbe essere necessario richiedere un aumento di quota per una o più risorse. L'istanza di ambiente di calcolo o il cluster di elaborazione di Machine Learning allocano automaticamente le risorse di rete nel gruppo di risorse contenente la rete virtuale. Per ogni istanza o cluster, il servizio alloca le risorse seguenti:
Viene creato automaticamente un gruppo di sicurezza di rete. Questo gruppo di sicurezza di rete consente il traffico TCP in ingresso sulla porta 44224 dal tag di servizio
AzureMachineLearning
.Importante
L'istanza di ambiente di calcolo e il cluster di elaborazione creano automaticamente un gruppo di sicurezza di rete con le regole necessarie.
Se si dispone di un altro gruppo di sicurezza di rete a livello di subnet, le regole nel gruppo di sicurezza di rete a livello di subnet non devono essere in conflitto con le regole nel gruppo di sicurezza di rete creato automaticamente.
Per informazioni su come i gruppi di sicurezza di rete filtrano il traffico di rete vedere Come i gruppi di sicurezza di rete filtrano il traffico di rete.
Un bilanciamento del carico
Per i cluster di elaborazione queste risorse vengono eliminate ogni volta che il cluster si ridimensiona a 0 nodi e create con l’aumento delle dimensioni del cluster.
Per un'istanza di calcolo, queste risorse vengono mantenute fino a quando l'istanza non viene eliminata. L'arresto dell'istanza non rimuove le risorse.
Importante
Queste risorse sono limitate in base alle quote delle risorse della sottoscrizione. Se il gruppo di risorse della rete virtuale è bloccato, l'eliminazione del cluster di elaborazione o dell'istanza di ambiente di calcolo avrà esito negativo. Non è possibile eliminare il bilanciamento del carico, finché non viene eliminato il cluster di elaborazione o l'istanza di ambiente di calcolo. Assicurarsi anche che non vi sia un’assegnazione dei Criteri di Azure ad impedire la creazione di gruppi di sicurezza di rete.
Nella rete virtuale consentire il traffico TCP in ingresso sulla porta 44224 dal tag di servizio
AzureMachineLearning
.Importante
All'istanza di ambiente di calcolo e al cluster di elaborazione viene assegnato dinamicamente un indirizzo IP al momento della creazione. Poiché l'indirizzo non è noto prima della creazione e l'accesso in ingresso è obbligatorio come parte del processo di creazione, non è possibile assegnarlo in modo statico nel firewall. Se, invece, si usa un firewall con la rete virtuale, è necessario creare una route definita dall'utente per consentire il traffico in ingresso.
Nella rete virtuale consentire il traffico in uscita ai seguenti tag del servizio:
Tag di servizio Protocollo Port Note AzureMachineLearning
TCP
UDP443/8787/18881
5831Comunicazione con il servizio Azure Machine Learning. BatchNodeManagement.<region>
QUALSIASI 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Comunicazione con Azure Batch. L'istanza di calcolo e il cluster di elaborazione vengono implementati usando il servizio Azure Batch.Storage.<region>
TCP 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Questo tag del servizio viene usato per comunicare con l'account di archiviazione di Azure usato da Azure Batch.Importante
L'accesso in uscita a
Storage.<region>
può essere potenzialmente usato per esfiltrare i dati dall'area di lavoro. Usando i criteri dell’endpoint di servizio è possibile attenuare questa vulnerabilità. Per altre informazioni vedere l'articolo Prevenzione dell'esfiltrazione dei dati di Azure Machine Learning.FQDN Protocollo Port Note <region>.tundra.azureml.ms
UDP 5831 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning.graph.windows.net
TCP 443 Comunicazione con l'API Microsoft Graph. *.instances.azureml.ms
TCP 443/8787/18881 Comunicazione con Azure Machine Learning. *.<region>.batch.azure.com
QUALSIASI 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Comunicazione con Azure Batch.*.<region>.service.batch.azure.com
QUALSIASI 443 Sostituire <region>
con l'area di Azure che contiene l'area di lavoro di Azure Machine Learning. Comunicazione con Azure Batch.*.blob.core.windows.net
TCP 443 Comunicazione con archiviazione BLOB di Azure. *.queue.core.windows.net
TCP 443 Comunicazione con archiviazione code di Azure. *.table.core.windows.net
TCP 443 Comunicazione con archiviazione tabelle di Azure.
Usare le informazioni seguenti per creare un'istanza di ambiente di calcolo o un cluster di elaborazione con un indirizzo IP pubblico nella rete virtuale:
Nel comando az ml compute create
sostituire i valori seguenti:
rg
: gruppo di risorse in cui verrà creato il calcolo.ws
: nome dell'area di lavoro di Azure Machine Learning.yourvnet
: rete virtuale di Azure.yoursubnet
: subnet da usare per il calcolo.AmlCompute
oComputeInstance
: specificandoAmlCompute
crea un cluster di elaborazione.ComputeInstance
crea un' istanza di ambiente di calcolo.
# 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
Usare le informazioni seguenti per configurare i nodi dell’ elaborazione serverless con un indirizzo IP pubblico nella rete virtuale per una determinata area di lavoro:
Creare un'area di lavoro:
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
Aggiornare l'area di lavoro:
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
- La rete virtuale deve trovarsi nella stessa sottoscrizione e area dell'area di lavoro di Azure Machine Learning.
- Se anche gli account di archiviazione di Azure per l'area di lavoro sono protetti in una rete virtuale, devono trovarsi nella stessa rete virtuale del cluster di Azure Databricks.
- Oltre alle subnet databricks-private e databricks-public usate da Azure Databricks, è necessaria anche la subnet predefinita creata per la rete virtuale.
- Azure Databricks non utilizza un endpoint privato per comunicare con la rete virtuale.
Per informazioni specifiche sull'uso di Azure Databricks con una rete virtuale, vedere Distribuire Azure Databricks nella rete virtuale di Azure.
Macchina virtuale o cluster HDInsight
In questa sezione viene mostrato come usare una macchina virtuale o un cluster Azure HDInsight in una rete virtuale con l'area di lavoro.
Creare la macchina virtuale o il cluster HDInsight
Importante
Azure Machine Learning supporta solo macchine virtuali che eseguono Ubuntu.
Creare una macchina virtuale o un cluster HDInsight usando il portale di Azure o l'interfaccia della riga di comando di Azure e inserire il cluster in una rete virtuale di Azure. Per altre informazioni, vedere gli articoli seguenti:
Configurare le porte di rete
Per consentire ad Azure Machine Learning di comunicare con la porta SSH nella macchina virtuale o nel cluster, configurare una voce di origine per il gruppo di sicurezza di rete. La porta SSH è in genere la porta 22. Per consentire il traffico da questa origine, eseguire queste operazioni:
Nell'elenco a discesa Origine selezionare Tag del servizio.
Nell'elenco a discesa Tag del servizio di origine selezionare AzureMachineLearning.
Nell'elenco a discesa Intervalli di porte di origine selezionare *.
Nell'elenco a discesa Destinazione selezionare Qualsiasi.
Nell'elenco a discesa Intervalli di porte di destinazione selezionare 22.
In Protocollo selezionare Qualsiasi.
In Azione selezionare Consenti.
Mantenere le regole in ingresso per il gruppo di sicurezza di rete. Per altre informazioni, vedere le regole di sicurezza predefinite in Gruppi di sicurezza.
Se non si vogliono usare le regole in uscita predefinite e si vuole limitare l'accesso in uscita della rete virtuale, vedere la sezione accesso a Internet pubblico obbligatorio.
Collegare la macchina virtuale o il cluster HDInsight
Collegare la macchina virtuale o il cluster HDInsight all'area di lavoro di Azure Machine Learning. Per altre informazioni vedere Gestire le risorse di calcolo per il training dei modelli e la distribuzione in Studio.
L'accesso a Internet pubblico è obbligatorio per l'esecuzione del training dei modelli
Importante
Mentre le sezioni precedenti di questo articolo descrivono le configurazioni richieste per creare le risorse di calcolo, le informazioni di configurazione presenti in questa sezione sono obbligatorie per utilizzare queste risorse per eseguire il training dei modelli.
Azure Machine Learning richiede l'accesso in ingresso e in uscita alla rete Internet pubblica. Le tabelle seguenti offrono una panoramica dell’accesso obbligatorio e del relativo scopo. Per i tag di servizio che terminano in .region
, sostituire region
con l'area di Azure che contiene l'area di lavoro. Ad esempio, Storage.westus
:
Suggerimento
La scheda Obbligatorio elenca la configurazione in ingresso e in uscita obbligatoria. La scheda Situazionale elenca le configurazioni in ingresso e in uscita facoltative richieste da configurazioni specifiche che si desidera abilitare.
Direzione | Protocollo e ports |
Tag di servizio | Scopo |
---|---|---|---|
In uscita | TCP: 80, 443 | AzureActiveDirectory |
Autenticazione usando Microsoft Entra ID. |
In uscita | TCP: 443, 18881 UDP: 5831 |
AzureMachineLearning |
Uso dei servizi Azure Machine Learning. Nei notebook Python IntelliSense utilizza la porta 18881. La creazione, l'aggiornamento e l'eliminazione di un'istanza di ambiente di calcolo di Azure Machine Learning usa la porta 5831. |
In uscita | ANY: 443 | BatchNodeManagement.region |
Comunicazione con il back-end di Azure Batch per istanze di ambiente di calcolo e cluster di elaborazione di Azure Machine Learning. |
In uscita | TCP: 443 | AzureResourceManager |
Creazione di risorse di Azure con Azure Machine Learning, l’interfaccia della riga di comando di Azure e Azure Machine Learning SDK. |
In uscita | TCP: 443 | Storage.region |
Accedere ai dati archiviati nell'account di archiviazione di Azure per il cluster di calcolo e l'istanza di calcolo. Per informazioni sulla prevenzione dall'esfiltrazione di dati in uscita vedere Protezione dall'esfiltrazione di dati. |
In uscita | TCP: 443 | AzureFrontDoor.FrontEnd * Non necessario in Microsoft Azure gestito da 21Vianet. |
Punto di ingresso globale per studio di Azure Machine Learning. Archiviare immagini e ambienti per AutoML. Per informazioni sulla prevenzione dall'esfiltrazione di dati in uscita vedere Protezione dall'esfiltrazione di dati. |
In uscita | TCP: 443 | MicrosoftContainerRegistry.region Nota: questo tag ha una dipendenza dal tag AzureFrontDoor.FirstParty |
Accedere alle immagini Docker fornite da Microsoft. Configurare il router di Azure Machine Learning per il servizio Azure Kubernetes. |
Suggerimento
Se sono necessari gli indirizzi IP al posto dei tag di servizio, scegliere una delle opzioni seguenti:
- Scaricare un elenco da Intervalli IP e tag di servizio di Azure.
- Usare il comando az network list-service-tags dell'interfaccia della riga di comando di Azure.
- Usare il comando Get-AzNetworkServiceTag di Azure PowerShell.
Gli indirizzi IP possono cambiare periodicamente.
Potrebbe anche essere necessario consentire il traffico in uscita verso Visual Studio Code e siti non Microsoft per l'installazione di pacchetti richiesti dal progetto di apprendimento automatico. La tabella seguente elenca i repository comunemente usati per l'apprendimento automatico:
Nome host | Scopo |
---|---|
anaconda.com *.anaconda.com |
Usato per installare i pacchetti predefiniti. |
*.anaconda.org |
Usato per ricevere i dati del repository. |
pypi.org |
Usato per elencare le dipendenze dall'indice predefinito, se presenti e se l'indice non viene sovrascritto dalle impostazioni utente. Se l'indice viene sovrascritto, è necessario consentire anche *.pythonhosted.org . |
cloud.r-project.org |
Usato durante l'installazione di pacchetti CRAN per lo sviluppo di R. |
*.pytorch.org |
Usato da alcuni esempi basati su PyTorch. |
*.tensorflow.org |
Usato da alcuni esempi basati su Tensorflow. |
code.visualstudio.com |
Obbligatorio per scaricare e installare Visual Studio Code per desktop. Questa operazione non è obbligatoria per Visual Studio Code per il Web. |
update.code.visualstudio.com *.vo.msecnd.net |
Usato per recuperare i bit del server di Visual Studio Code installati nell'istanza di ambiente di calcolo tramite uno script di installazione. |
marketplace.visualstudio.com vscode.blob.core.windows.net *.gallerycdn.vsassets.io |
Obbligatorio per scaricare e installare le estensioni di Visual Studio Code. Questi host abilitano la connessione remota alle istanze di ambiente di calcolo fornite dall'estensione Azure ML per Visual Studio Code. Per altre informazioni, vedere Connettersi a un'istanza di ambiente di calcolo di Azure Machine Learning in Visual Studio Code. |
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* |
Usato per recuperare i bit del server Websocket, installati nell'istanza di ambiente di calcolo. Il server WebSocket viene usato per trasmettere le richieste dal client Visual Studio Code (applicazione desktop) al server Visual Studio Code in esecuzione nell'istanza di calcolo. |
Nota
Quando si usa l'estensione VS Code di Azure Machine Learning, l'istanza di ambiente di calcolo remota richiederà l'accesso ai repository pubblici per installare i pacchetti richiesti dall'estensione. Se l'istanza di ambiente di calcolo richiede un proxy per accedere a questi repository pubblici o a Internet, sarà necessario impostare ed esportare le variabili di ambiente HTTP_PROXY
e HTTPS_PROXY
nel file ~/.bashrc
dell'istanza di ambiente di calcolo. Questo processo può essere automatizzato in fase di provisioning utilizzando uno script personalizzato.
Quando si usa il servizio Azure Kubernetes con Azure Machine Learning, consentire il traffico seguente alla rete virtuale del servizio Azure Kubernetes:
- Requisiti generali in ingresso/in uscita per il servizio Azure Kubernetes come descritti nell'articolo Limitare il traffico in uscita nel servizio Azure Kubernetes.
- In uscita verso mcr.microsoft.com.
- Quando si distribuisce un modello in un cluster del servizio Azure Kubernetes, utilizzare le linee guida nell'articolo Distribuire modelli di apprendimento automatico nel servizio Azure Kubernetes.
Per informazioni sull'uso di una soluzione firewall vedere Usare un firewall con Azure Machine Learning.
Passaggi successivi
Il presente articolo fa parte di una serie di articoli sulla protezione del flusso di lavoro di Azure Machine Learning. Vedi gli altri articoli di questa serie: