Connettersi alla risorsa di archiviazione usando l'accesso ai dati basato sull'identità con l'SDK v1

Questo articolo illustra come connettersi ai servizi di archiviazione in Azure con l'accesso ai dati basato sull'identità e gli archivi dati di Azure Machine Learning tramite Azure Machine Learning SDK per Python.

In genere, gli archivi dati usano l'autenticazione basata su credenziali per verificare che l'utente sia autorizzato ad accedere al servizio di archiviazione. Gli archivi dati mantengono le informazioni di connessione, ad esempio l'ID sottoscrizione e l'autorizzazione del token, nell'insieme di credenziali delle chiavi associato all'area di lavoro. Quando si crea un archivio dati che utilizza l'accesso ai dati basato sull'identità, viene usato l'account Azure (token Microsoft Entra) per confermare che si dispone dell'autorizzazione per accedere al servizio di archiviazione. Nello scenario di accesso ai dati basato sull'identità, non vengono salvate credenziali di autenticazione. Nell'archivio dati vengono archiviate solo le informazioni sull'account di archiviazione.

Per creare archivi dati con accesso ai dati basato sull'identità tramite l'interfaccia utente dello studio di Azure Machine Learning, vedere Connettersi ai dati con lo studio di Azure Machine Learning.

Per creare archivi dati che usano l'autenticazione basata su credenziali, ad esempio chiavi di accesso o entità servizio, vedere Connettersi ai servizi di archiviazione in Azure.

Accesso ai dati basato sull'identità in Azure Machine Learning

Esistono due scenari in cui è possibile applicare l'accesso ai dati basato sull'identità in Azure Machine Learning. Questi scenari sono adatti per l'accesso basato sull'identità quando si usano dati riservati e occorre una gestione dell'accesso ai dati più granulare:

Avviso

L'accesso ai dati basato sull'identità non è supportato per esperimenti di ML automatizzato.

  • Accesso ai servizi di archiviazione
  • Training di modelli di Machine Learning con dati privati

Accesso ai servizi di archiviazione

È possibile connettersi ai servizi di archiviazione tramite l'accesso ai dati basato sull'identità con gli archivi dati di Azure Machine Learning o i set di dati di Azure Machine Learning.

Le credenziali di autenticazione vengono conservate in un archivio dati, che garantisce che l'utente sia autorizzato ad accedere al servizio di archiviazione. Quando queste credenziali vengono registrate tramite gli archivi dati, qualsiasi utente con il ruolo Lettore dell'area di lavoro può recuperarle. Tale scala di accesso può rappresentare un problema di sicurezza per alcune organizzazioni. Altre informazioni sul ruolo Lettore dell'area di lavoro.

Quando si usa l'accesso ai dati basato sull'identità, Azure Machine Learning richiede il token di Microsoft Entra per l'autenticazione dell'accesso ai dati, anziché conservare le credenziali nell'archivio dati. Questo approccio consente la gestione dell'accesso ai dati a livello di risorsa di archiviazione e mantiene la sicurezza delle credenziali.

Lo stesso comportamento si applica quando:

Nota

Le credenziali archiviate tramite l'autenticazione basata su credenziali includono ID sottoscrizione, token di firma di accesso condiviso, chiavi di accesso alle risorse di archiviazione e informazioni sull'entità servizio, come gli ID client e gli ID tenant.

Training dei modelli su dati privati

Alcuni scenari di Machine Learning prevedono il training dei modelli con dati privati. In questi casi, gli scienziati dei dati devono eseguire flussi di lavoro di training senza esposizione ai dati di input riservati. In questo scenario, un'identità gestita dell'ambiente di calcolo di training autentica l'accesso ai dati. Questo approccio consente agli amministratori delle risorse di archiviazione di concedere l'accesso con il ruolo Lettore dei dati dei BLOB di archiviazione all'identità gestita usata dall'ambiente di calcolo di training per eseguire il processo di training. Non è necessario concedere l'accesso ai singoli scienziati dei dati. Per altre informazioni, vedere Configurare un'identità gestita in un cluster di elaborazione.

Prerequisiti

Creare e registrare archivi dati

Quando si registra un servizio di archiviazione in Azure come archivio dati, l'archivio dati viene creato e registrato automaticamente in un'area di lavoro specifica. Per indicazioni sui tipi di autorizzazione necessari, vedere Autorizzazioni di accesso per l'archiviazione. È anche possibile creare manualmente la risorsa di archiviazione a cui connettersi senza autorizzazioni speciali ed è sufficiente specificare il nome.

Vedere Usare le reti virtuali per informazioni dettagliate su come connettersi all'archiviazione dei dati nelle reti virtuali.

Nel codice seguente si noti l'assenza di parametri di autenticazione come sas_token, account_key, subscription_id e l'entità servizio client_id. Questa omissione indica che Azure Machine Learning usa l'accesso ai dati basato sull'identità per l'autenticazione. La creazione di archivi dati avviene in genere in modo interattivo in un notebook o tramite lo studio. L'autenticazione di accesso ai dati usa il token di Microsoft Entra.

Nota

I nomi degli archivi dati devono essere costituiti solo da lettere minuscole, numeri e caratteri di sottolineatura.

Contenitore BLOB di Azure

Per registrare un contenitore BLOB di Azure come archivio dati, usare register_azure_blob_container().

Il codice seguente crea l'archivio dati credentialless_blob, lo registra nell'area di lavoro ws e lo assegna alla variabile blob_datastore. Questo archivio dati accede al contenitore BLOB my_container_name nell'account di archiviazione my-account-name.

# Create blob datastore without credentials.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
                                                      datastore_name='credentialless_blob',
                                                      container_name='my_container_name',
                                                      account_name='my_account_name')

Azure Data Lake Storage Gen1

Usare register_azure_data_lake() per registrare un archivio dati che si connette ad Azure Data Lake Storage Gen1.

Il codice seguente crea l'archivio dati credentialless_adls1, lo registra nell'area di lavoro workspace e lo assegna alla variabile adls_dstore. Questo archivio dati accede all'account Azure Data Lake Storage adls_storage.

# Create Azure Data Lake Storage Gen1 datastore without credentials.
adls_dstore = Datastore.register_azure_data_lake(workspace = workspace,
                                                 datastore_name='credentialless_adls1',
                                                 store_name='adls_storage')

Azure Data Lake Storage Gen2

Usare register_azure_data_lake_gen2() per registrare un archivio dati che si connette ad Azure Data Lake Storage Gen2.

Il codice seguente crea l'archivio dati credentialless_adls2, lo registra nell'area di lavoro ws e lo assegna alla variabile adls2_dstore. Questo archivio dati accede al file system tabular nell'account di archiviazione myadls2.

# Create Azure Data Lake Storage Gen2 datastore without credentials.
adls2_dstore = Datastore.register_azure_data_lake_gen2(workspace=ws, 
                                                       datastore_name='credentialless_adls2', 
                                                       filesystem='tabular', 
                                                       account_name='myadls2')

Database SQL di Azure

Per un database SQL di Azure, usare register_azure_sql_database() per registrare un archivio dati che si connette a un account di archiviazione del database SQL di Azure.

Il codice seguente crea e registra l'archivio dati credentialless_sqldb nell'area di lavoro ws e lo assegna alla variabile sqldb_dstore. Questo archivio dati accede al database mydb nel server di database SQL myserver.

# Create a sqldatabase datastore without credentials
                                                       
sqldb_dstore = Datastore.register_azure_sql_database(workspace=ws,
                                                       datastore_name='credentialless_sqldb',
                                                       server_name='myserver',
                                                       database_name='mydb')                                                       
                                                   

Autorizzazioni di accesso al servizio di archiviazione

Per garantire una connessione sicura al servizio di archiviazione in Azure, Azure Machine Learning richiede che l'utente disponga delle autorizzazioni per accedere al servizio di archiviazione dei dati corrispondente.

Avviso

L'accesso agli account di archiviazione tra tenant non è supportato. Se lo scenario in uso richiede l'accesso tra tenant, contattare l'alias del team di supporto dati di Azure Machine Learning all'indirizzo amldatasupport@microsoft.com per ricevere assistenza e ottenere una soluzione di codice personalizzata.

L'accesso ai dati basato sull'identità supporta connessioni solo ai servizi di archiviazione seguenti.

  • Archiviazione BLOB di Azure
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • database SQL di Azure

Per accedere a questi servizi di archiviazione, è necessario disporre almeno dell'accesso di tipo Lettore dei dati dei BLOB di archiviazione per l'account di archiviazione. Solo i proprietari degli account di archiviazione possono modificare il livello di accesso tramite il portale Azure.

Se si preferisce non usare l'identità utente (ID Microsoft Entra), è anche possibile concedere un'autorizzazione all'identità del sistema gestita dell'area di lavoro per creare l'archivio dati. A tale scopo, è necessario disporre delle autorizzazioni di proprietario per l'account di archiviazione ed è necessario aggiungere il parametro grant_workspace_access= True al metodo di registrazione dei dati.

Se si esegue il training di un modello in una destinazione di calcolo remota e si vuole accedere ai dati per il training, all'identità di calcolo deve essere concesso almeno il ruolo di Lettore dei dati dei BLOB di archiviazione dal servizio di archiviazione. Informazioni su come Configurare un'identità gestita in un cluster di elaborazione.

Usare le reti virtuali

Per impostazione predefinita, Azure Machine Learning non può comunicare con un account di archiviazione protetto da un firewall o in una rete virtuale.

È possibile configurare gli account di archiviazione per consentire l'accesso solo da reti virtuali specifiche. Questa configurazione richiede passaggi aggiuntivi per garantire che i dati non vengano divulgati al di fuori della rete. Questo comportamento è lo stesso per l'accesso ai dati basato su credenziali. Per altre informazioni, vedere Come configurare scenari di rete virtuale.

Se l'account di archiviazione dispone di impostazioni di rete virtuale, queste determinano il tipo di identità e le autorizzazioni di accesso necessarie. Ad esempio, per l'anteprima dei dati e il profilo dei dati, le impostazioni della rete virtuale determinano quale tipo di identità viene utilizzato per autenticare l'accesso ai dati.

  • In scenari in cui solo determinati indirizzi IP e subnet sono autorizzati ad accedere al servizio di archiviazione, Azure Machine Learning usa l'identità del servizio gestita dell'area di lavoro per realizzare anteprime e profili dei dati.

  • Se il servizio di archiviazione è ADLS Gen 2 o BLOB e dispone di impostazioni di rete virtuale, i clienti possono utilizzare sia l'identità utente che l'identità del servizio gestita dell'area di lavoro a seconda delle impostazioni dell'archivio dati definite durante la creazione.

  • Se l'impostazione della rete virtuale è "Consenti ai servizi Azure nell'elenco dei servizi attendibili di accedere a questo account di archiviazione", allora viene usata l'identità del servizio gestita dell'area di lavoro.

Usare i dati nel servizio di archiviazione

È consigliabile usare set di dati di Azure Machine Learning quando si interagisce con i dati nel servizio di archiviazione con Azure Machine Learning.

Importante

I set di dati che usano l'accesso ai dati basato sull'identità non sono supportati per esperimenti di ML automatizzato.

I set di dati consentono di creare un pacchetto dei dati da inserire in un oggetto consumabile valutato in modo differito per le attività di Machine Learning, ad esempio il training. Inoltre, con i set di dati è possibile scaricare o montare file di qualsiasi formato dai servizi di archiviazione di Azure, ad esempio Archiviazione BLOB di Azure e Azure Data Lake Storage a una destinazione di calcolo.

Per creare un set di dati, è possibile fare riferimento a percorsi da archivi dati che usano anche l'accesso ai dati basato sull'identità.

  • Se il tipo di account di archiviazione sottostante è BLOB o ADLS Gen 2, l'identità utente deve avere il ruolo Lettore per i BLOB.
  • Se il servizio di archiviazione sottostante è ADLS Gen 1, è possibile impostare le autorizzazioni tramite l'elenco di controllo di accesso (ACL) del servizio di archiviazione.

Nell'esempio seguente blob_datastore esiste già e usa l'accesso ai dati basato sull'identità.

blob_dataset = Dataset.Tabular.from_delimited_files(blob_datastore,'test.csv') 

È anche possibile ignorare la creazione dell'archivio dati e creare set di dati direttamente dagli URL di archiviazione. Questa funzionalità supporta attualmente solo BLOB di Azure e Azure Data Lake Storage Gen1 e Gen2. Per la creazione basata sugli URL di archiviazione, è necessaria solo l'identità utente per l'autenticazione.

blob_dset = Dataset.File.from_files('https://myblob.blob.core.windows.net/may/keras-mnist-fashion/')

Quando si invia un processo di training che utilizza un set di dati creato con accesso ai dati basato sull'identità, per l'autenticazione dell'accesso ai dati viene usata l'identità gestita di calcolo di training. Il token di Microsoft Entra non viene usato. Per questo scenario, assicurarsi che all'identità gestita dell'ambiente di calcolo venga concesso almeno il ruolo Lettore dei dati dei BLOB di archiviazione dal servizio di archiviazione. Per altre informazioni, vedere Configurare un'identità gestita nei cluster di elaborazione.

Passaggi successivi