Condividi tramite


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:

Per un'esercitazione sulla creazione di un'area di lavoro sicura vedere Esercitazione: creare un'area di lavoro sicura o Esercitazione: creare un'area di lavoro sicura usando un modello.

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

  1. Configurare l'area di lavoro per usare una rete virtuale di Azure. Per altre informazioni vedere Proteggere le risorse dell'area di lavoro.

  2. 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.

  3. 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.

  4. 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.

    1. 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.
  5. Ripetere il passaggio precedente e i passaggi secondari per la zona DNS privatelink.notebooks.azure.net.

  6. 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.

  7. 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

  1. Configurare l'area di lavoro per usare una rete virtuale di Azure. Per altre informazioni vedere Proteggere le risorse dell'area di lavoro.

  2. 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.

  3. 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.

  4. 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
    UDP
    443/8787/18881
    5831
    Comunicazione 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 o ComputeInstance: specificando AmlCompute 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:

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
    UDP
    443/8787/18881
    5831
    Comunicazione 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 o ComputeInstance: specificando AmlCompute 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:

  1. Nell'elenco a discesa Origine selezionare Tag del servizio.

  2. Nell'elenco a discesa Tag del servizio di origine selezionare AzureMachineLearning.

    Screenshot delle regole in ingresso per la sperimentazione in una macchina virtuale o un cluster HDInsight in una rete virtuale.

  3. Nell'elenco a discesa Intervalli di porte di origine selezionare *.

  4. Nell'elenco a discesa Destinazione selezionare Qualsiasi.

  5. Nell'elenco a discesa Intervalli di porte di destinazione selezionare 22.

  6. In Protocollo selezionare Qualsiasi.

  7. 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:

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:

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: