Esercitazione: come creare un'area di lavoro sicura usando un modello

I modelli offrono un modo pratico per creare distribuzioni di servizi riproducibili. Il modello definisce ciò che verrà creato, con alcune informazioni fornite dall'utente quando si usa il modello. Ad esempio, specificando un nome univoco per l'area di lavoro di Azure Machine Learning.

Questa esercitazione illustra come usare un modello di Microsoft Bicep e Hashicorp Terraform per creare le risorse di Azure seguenti:

  • Rete virtuale di Azure. Le risorse seguenti sono protette dietro questa rete virtuale:
    • Area di lavoro di Azure Machine Learning
      • Istanza di calcolo di Azure Machine Learning
      • Cluster di calcolo di Azure Machine Learning
    • Account di archiviazione di Azure
    • Azure Key Vault
    • Azure Application Insights
    • Registro Azure Container
    • Host Azure Bastion
    • Azure Machine Learning Virtual Machine (Data Science Virtual Machine)
    • Il modello Bicep crea anche un cluster del servizio Azure Kubernetes e un gruppo di risorse separato.

Suggerimento

Microsoft consiglia di 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 i calcoli gestiti. È 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 network gestito dell'area di lavoro.

Prerequisiti

Prima di usare la procedura descritta in questo articolo, è necessario disporre di una sottoscrizione di Azure. Se non hai una sottoscrizione di Azure, crea un account gratuito.

È anche necessario disporre di una riga di comando Bash o Azure PowerShell.

Suggerimento

Quando si legge questo articolo, usare le schede di ogni sezione per selezionare se visualizzare le informazioni sull'uso dei modelli Bicep o Terraform.

  1. Per installare gli strumenti a riga di comando, vedere Configurare ambienti di sviluppo e distribuzione di Bicep.

  2. Il modello Bicep usato in questo articolo si trova in https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure. Usare i comandi seguenti per clonare il repository GitHub nell'ambiente di sviluppo:

    Suggerimento

    Se non si dispone del comando git nell'ambiente di sviluppo, è possibile installarlo da https://git-scm.com/.

    git clone https://github.com/Azure/azure-quickstart-templates
    cd azure-quickstart-templates/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure
    

Informazioni sul modello

Il modello Bicep è costituito da main.bicep e dai file di .bicep nei moduli sottodirectory. La tabella seguente descrive i compiti di ogni file:

File Descrizione
main.bicep Parametri e variabili. Passaggio di parametri e variabili ad altri moduli nella sottodirectory modules.
vnet.bicep Definisce la rete virtuale e le subnet di Azure.
nsg.bicep Definisce le regole del gruppo di sicurezza di rete per la rete virtuale.
bastion.bicep Definisce l'host e la subnet di Azure Bastion. Azure Bastion consente di accedere facilmente a una macchina virtuale all'interno della rete virtuale usando il Web browser.
dsvmjumpbox.bicep Definisce la Data Science Virtual Machine (DSVM). Azure Bastion viene usato per accedere a questa macchina virtuale tramite il Web browser.
storage.bicep Definisce l'account Archiviazione di Azure usato dall'area di lavoro per la risorsa di archiviazione predefinita.
keyvault.bicep Definisce l'Azure Key Vault usato dall'area di lavoro.
containerregistry.bicep Definisce il Registro Azure Container usato dall'area di lavoro.
applicationinsights.bicep Definisce l'istanza di Azure Application Insights usata dall'area di lavoro.
machinelearningnetworking.bicep Definisce gli endpoint privati e le zone DNS per l'area di lavoro di Azure Machine Learning.
Machinelearning.bicep Definisce l'area di lavoro di Azure Machine Learning.
machinelearningcompute.bicep Definisce un cluster di elaborazione e un'istanza di ambiente di calcolo di Azure Machine Learning.
privateaks.bicep Definisce un'istanza del cluster del servizio Azure Kubernetes.

Importante

I modelli di esempio potrebbero non usare sempre la versione più recente dell'API per Azure Machine Learning. Prima di usare il modello, è consigliabile modificarlo per usare le versioni più recenti dell'API. Per informazioni sulle versioni più recenti dell'API per Azure Machine Learning, vedere API REST di Azure Machine Learning.

Ogni servizio di Azure ha un proprio set di versioni API. Per informazioni sull'API di un servizio specifico, vedere le informazioni sul servizio nel riferimento dell'API REST di Azure..

Per aggiornare la versione dell'API, trovare la voce Microsoft.MachineLearningServices/<resource> per il tipo di risorsa e aggiornarla alla versione più recente. L'esempio seguente è una voce per l'area di lavoro di Azure Machine Learning che usa una versione API di 2022-05-01:

resource machineLearning 'Microsoft.MachineLearningServices/workspaces@2022-05-01' = {

Importante

La DSVM e Azure Bastion vengono usati come modo semplice per connettersi all'area di lavoro protetta per questa esercitazione. In un ambiente di produzione è consigliabile usare un gateway VPN di Azure o Azure ExpressRoute per accedere alle risorse all'interno della rete virtuale direttamente dalla rete locale.

Configurare il modello

Per eseguire il modello Bicep, usare i comandi seguenti da machine-learning-end-to-end-secure in cui si trova il file main.bicep:

  1. Per creare un nuovo gruppo di risorse di Azure, usare il comando seguente. Sostituire exampleRG con il nome del gruppo di risorse e eastus con l'area di Azure da usare:

    az group create --name exampleRG --location eastus
    
  2. Per eseguire il modello, usare il comando seguente. Sostituire prefix con un prefisso univoco. Il prefisso verrà nella creazione di risorse di Azure necessarie per Azure Machine Learning. Sostituire securepassword con una password sicura per la jump box. La password è per l'account di accesso per il jump box (azureadmin negli esempi seguenti):

    Suggerimento

    prefix deve contenere al massimo 5 caratteri. Non può essere interamente numerico o contenere i caratteri seguenti: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

    az deployment group create \
        --resource-group exampleRG \
        --template-file main.bicep \
        --parameters \
        prefix=prefix \
        dsvmJumpboxUsername=azureadmin \
        dsvmJumpboxPassword=securepassword
    

Connettersi all'area di lavoro

Al termine del modello, seguire questa procedura per connettersi alla DSVM:

  1. Nel portale di Azure selezionare il gruppo di risorse di Azure usato con il modello. Selezionare quindi la Data Science Virtual Machine creata dal modello. Se non si riesce a trovarlo, usare la sezione Filtri per filtrare ilTipo per macchina virtuale.

    Screenshot of filtering and selecting the vm.

  2. Nella sezione Panoramica della macchina virtuale selezionare Connetti, quindi selezionare Bastion dall'elenco a discesa.

    Screenshot of selecting to connect using Bastion.

  3. Quando richiesto, specificare il nome utente e la password specificati durante la configurazione del modello, quindi selezionare Connetti.

    Importante

    La prima volta che ci si connette al desktop DSVM, si apre una finestra di PowerShell che inizia a eseguire uno script. Consentire il completamento prima di continuare con il passaggio successivo.

  4. Dal desktop DSVM avviare Microsoft Edge e immettere https://ml.azure.com come indirizzo. Accedere alla sottoscrizione di Azure, quindi selezionare l'area di lavoro creata dal modello. Viene visualizzato lo studio dell'area di lavoro.

Risoluzione dei problemi

Errore: il nome computer Windows non può contenere più di 15 caratteri, non può essere interamente numerico e non può contenere i caratteri seguenti

Questo errore può verificarsi quando il nome della jump box DSVM è maggiore di 15 caratteri o include uno dei caratteri seguenti: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

Quando si usa il modello Bicep, il nome della jump box viene generato a livello di codice usando il valore del prefisso fornito al modello. Per assicurarsi che il nome non superi i 15 caratteri o contenga caratteri non validi, usare un prefisso di 5 caratteri o meno e non usare uno dei caratteri seguenti nel prefisso: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

Quando si usa il modello Terraform, il nome della jump box viene passato usando il parametro dsvm_name. Per evitare questo errore, usare un nome che non superi i 15 caratteri e che non usi uno dei caratteri seguenti come parte del nome: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

Passaggi successivi

Importante

La Data Science Virtual Machine (DSVM) e tutte le risorse dell'istanza di ambiente di calcolo fatturano ogni ora in cui sono in esecuzione. Per evitare addebiti in eccesso, è consigliabile arrestare queste risorse quando non sono in uso. Per altre informazioni, vedere gli articoli seguenti:

Per altre informazioni su come usare l'area di lavoro protetta dalla DSVM, vedere Esercitazione: Azure Machine Learning in un giorno.

Per altre informazioni sulle configurazioni comuni dell'area di lavoro sicure e sui requisiti di input/output, vedere Flusso di traffico sicuro dell'area di lavoro di Azure Machine Learning.