Autenticazione per gli endpoint online gestiti

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Questo articolo illustra i concetti di identità e autorizzazione nel contesto degli endpoint online. Si inizia illustrando le istanze di Microsoft Entra ID che supportano il controllo degli accessi in base al ruolo di Azure. A seconda dello scopo dell'identità Microsoft Entra, viene definita identità utente o identità endpoint.

Un'identità utente è un'istanza di Microsoft Entra ID che è possibile usare per creare un endpoint e le relative distribuzioni oppure per interagire con endpoint o aree di lavoro. In altre parole, un'identità può essere considerata un'identità utente se invia richieste a endpoint, distribuzioni o aree di lavoro. L'identità utente richiede autorizzazioni appropriate per eseguire operazioni del piano di controllo e del piano dati degli endpoint o delle aree di lavoro.

Un'identità endpoint è un'istanza di Microsoft Entra ID che esegue il contenitore utente nelle distribuzioni. In altre parole, se l'identità è associata all'endpoint e viene usata per il contenitore utente per la distribuzione, viene denominata identità endpoint. Anche l'identità endpoint richiede autorizzazioni appropriate per consentire al contenitore utente di interagire con le risorse in base alle esigenze. Ad esempio, l'identità endpoint richiede le autorizzazioni appropriate per eseguire il pull delle immagini dal Registro Azure Container o per interagire con altri servizi di Azure.

In generale, l'identità utente e l'identità endpoint avranno requisiti di autorizzazione separati. Per altre informazioni sulla gestione delle identità e delle autorizzazioni, vedere Come autenticare i client per gli endpoint online. Per altre informazioni sul caso speciale dell'aggiunta automatica di autorizzazioni aggiuntive per i segreti, vedere Autorizzazioni aggiuntive per l'identità utente.

Limitazione

L'autenticazione di Microsoft Entra ID (aad_token) è supportata solo per gli endpoint online gestiti. Per gli endpoint online Kubernetes, è possibile usare una chiave o un token di Azure Machine Learning (aml_token).

Autorizzazioni necessarie per l'identità utente

Quando si accede al tenant di Azure con il proprio account Microsoft (ad esempio, usando az login), si completa il passaggio di autenticazione utente (comunemente noto come authn) e viene determinata la propria identità come utente. A questo punto, se si vuole creare un endpoint online in un'area di lavoro, è necessario ottenere l'autorizzazione appropriata. È qui che entra in gioco l'autorizzazione (comunemente nota come authz).

Operazioni del piano di controllo

Le operazioni del piano di controllo controllano e modificano gli endpoint online. Queste operazioni includono operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) su endpoint online e distribuzioni online. Per gli endpoint e le distribuzioni online, le richieste per eseguire operazioni del piano di controllo passano all'area di lavoro di Azure Machine Learning.

Autenticazione per le operazioni del piano di controllo

Per le operazioni del piano di controllo, esiste un solo modo per autenticare un client nell'area di lavoro: usando un token di Microsoft Entra.

A seconda del caso d'uso, è possibile scegliere tra diversi flussi di lavoro di autenticazione per ottenere questo token. L'identità utente deve avere anche un controllo degli accessi in base al ruolo di Azure appropriato consentito per l'accesso alle risorse.

Autorizzazione per le operazioni del piano di controllo

Per le operazioni del piano di controllo l'identità utente deve avere un controllo degli accessi in base al ruolo di Azure appropriato consentito per l'accesso alle risorse. In particolare, per le operazioni CRUD su endpoint e distribuzioni online, è necessario che l'identità abbia il ruolo assegnato con le azioni seguenti:

Operazione Ruolo Controllo degli accessi in base al ruolo di Azure obbligatorio Ambito per cui viene assegnato il ruolo
Operazioni di creazione/aggiornamento su endpoint e distribuzioni online Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write area di lavoro
Operazioni di eliminazione su endpoint e distribuzioni online Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete area di lavoro
Operazioni di creazione/aggiornamento/eliminazione su endpoint e distribuzioni online tramite lo studio di Azure Machine Learning Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.Resources/deployments/write gruppo di risorse a cui appartiene l'area di lavoro
Operazioni di lettura su endpoint e distribuzioni online Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read area di lavoro
Recuperare un token di Azure Machine Learning (aml_token) per richiamare gli endpoint online (gestiti e Kubernetes) dall'area di lavoro Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action endpoint
Recuperare una chiave per richiamare gli endpoint online (gestiti e Kubernetes) dall'area di lavoro Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action endpoint
Rigenerare le chiavi per gli endpoint online (gestiti e Kubernetes) Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action endpoint
Recuperare un token di Microsoft Entra (aad_token) per richiamare gli endpoint online gestiti Non richiede un ruolo. non applicabile

Nota

È possibile recuperare il token di Microsoft Entra (aad_token) direttamente da Microsoft Entra ID dopo aver eseguito l'accesso e non sono necessarie autorizzazioni aggiuntive del controllo degli accessi in base al ruolo di Azure per l'area di lavoro.

Autorizzazioni aggiuntive per l'identità utente quando si applica l'accesso agli archivi segreti predefiniti

Se si intende usare la funzionalità di inserimento di segreti e durante la creazione degli endpoint si imposta il flag per applicare l'accesso agli archivi segreti predefiniti, l'identità utente deve avere l'autorizzazione per leggere i segreti dalle connessioni dell'area di lavoro.

Quando l'endpoint viene creato con un'identità assegnata dal sistema e il flag è impostato per applicare l'accesso agli archivi segreti predefiniti, l'identità utente deve avere le autorizzazioni per leggere i segreti dalle connessioni dell'area di lavoro durante la creazione dell'endpoint e la creazione delle distribuzioni nell'endpoint. Questa restrizione garantisce che solo un'identità utente con l'autorizzazione per leggere i segreti possa concedere all'identità endpoint l'autorizzazione per leggere i segreti.

  • Se un'identità utente non dispone delle autorizzazioni per leggere i segreti dalle connessioni dell'area di lavoro, ma tenta di creare l'endpoint con un'identità assegnata dal sistema e il flag dell'endpoint impostato per applicare l'accesso agli archivi segreti predefiniti, la creazione dell'endpoint viene rifiutata.

  • Analogamente, se un'identità utente non ha le autorizzazioni per leggere i segreti dalle connessioni dell'area di lavoro, ma tenta di creare una distribuzione nell'endpoint con un'identità assegnata dal sistema e il flag dell'endpoint impostato per applicare l'accesso agli archivi segreti predefiniti, la creazione della distribuzione viene rifiutata.

Quando (1) l'endpoint viene creato con un'identità assegnata dall'utente, o (2) il flag non è impostato per applicare l'accesso agli archivi segreti predefiniti anche se l'endpoint usa un'identità assegnata dal sistema, l'identità utente non deve avere le autorizzazioni per leggere i segreti dalle connessioni dell'area di lavoro. In questo caso, all'identità endpoint non verrà concessa automaticamente l'autorizzazione per leggere i segreti, ma è comunque possibile concedere manualmente questa autorizzazione all'identità endpoint assegnando i ruoli appropriati, se necessario. Indipendentemente dal fatto che l'assegnazione di ruolo sia stata eseguita automaticamente o manualmente, il recupero e l'inserimento dei segreti verranno comunque attivati se è stato eseguito il mapping delle variabili di ambiente con riferimenti ai segreti nella definizione della distribuzione e verrà usata l'identità endpoint a tale scopo.

Per altre informazioni sulla gestione dell'autorizzazione per un'area di lavoro di Azure Machine Learning, vedere Gestire l'accesso ad Azure Machine Learning.

Per altre informazioni sull'inserimento di segreti, vedere Inserimento di segreti negli endpoint online.

Operazioni del piano dati

Le operazioni del piano dati non modificano gli endpoint online, ma usano i dati per interagire con gli endpoint. Un esempio di operazione del piano dati consiste nell'inviare una richiesta di assegnazione dei punteggi a un endpoint online e ottenere una risposta dallo stesso. Per gli endpoint e le distribuzioni online, le richieste di eseguire operazioni del piano dati passano all'URI di assegnazione dei punteggi dell'endpoint.

Autenticazione per le operazioni del piano dati

Per le operazioni del piano dati, è possibile scegliere tra tre modi per autenticare un client per inviare richieste all'URI di assegnazione dei punteggi di un endpoint:

  • key
  • Token di Azure Machine Learning (aml_token)
  • Token di Microsoft Entra (aad_token)

Per altre informazioni su come autenticare i client per le operazioni del piano dati, vedere Come autenticare i client per gli endpoint online.

Autorizzazione per le operazioni del piano dati

Per le operazioni del piano dati l'identità utente deve avere un controllo degli accessi in base al ruolo di Azure appropriato consentito per l'accesso alle risorse, solo se l'endpoint è impostato per l'uso del token di Microsoft Entra (aad_token). In particolare, per le operazioni del piano dati su endpoint e distribuzioni online, è necessario che l'identità abbia il ruolo assegnato con le azioni seguenti:

Operazione Ruolo Controllo degli accessi in base al ruolo di Azure obbligatorio Ambito per cui viene assegnato il ruolo
Richiamare gli endpoint online con la chiave o il token di Azure Machine Learning (aml_token). Non richiede un ruolo. Non applicabile
Richiamare gli endpoint online gestiti con il token di Microsoft Entra (aad_token). Proprietario, collaboratore o qualsiasi ruolo che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action endpoint
Richiamare gli endpoint online Kubernetes con il token di Microsoft Entra (aad_token). Non richiede un ruolo. Non applicabile

Autorizzazioni necessarie per l'identità endpoint

Una distribuzione online esegue il contenitore utente con l'identità endpoint, ovvero l'identità gestita associata all'endpoint. L'identità endpoint è un'istanza di Microsoft Entra ID che supporta il controllo degli accessi in base al ruolo di Azure. È quindi possibile assegnare ruoli di Azure all'identità endpoint per controllare le autorizzazioni necessarie per eseguire le operazioni. Questa identità endpoint può essere un'identità assegnata dal sistema o un'identità assegnata dall'utente. È possibile decidere se usare un'identità assegnata dal sistema o un'identità assegnata dall'utente quando si crea l'endpoint.

  • Per un'identità assegnata dal sistema, l'identità viene creata automaticamente quando si crea l'endpoint e i ruoli con autorizzazioni fondamentali, come l'autorizzazione pull di Registro Azure Container e l'autorizzazione Lettore dei dati dei BLOB di archiviazione, vengono assegnati automaticamente.
  • Per un'identità assegnata dall'utente, è necessario creare prima l'identità e quindi associarla all'endpoint quando si crea l'endpoint. L'utente è anche responsabile dell'assegnazione dei ruoli appropriati all'identità assegnata dall'utente in base alle esigenze.

Assegnazione automatica dei ruoli per l'identità endpoint

Se l'identità endpoint è un'identità assegnata dal sistema, alcuni ruoli vengono assegnati all'identità endpoint per praticità.

Ruolo Descrizione Condizione per l'assegnazione automatica dei ruoli
AcrPull Consente all'identità endpoint di eseguire il pull delle immagini dal Registro Azure Container associato all'area di lavoro. L'identità endpoint è un'identità assegnata dal sistema.
Storage Blob Data Reader Consente all'identità endpoint di leggere i BLOB dall'archivio dati predefinito dell'area di lavoro. L'identità endpoint è un'identità assegnata dal sistema.
AzureML Metrics Writer (preview) Consente all'identità endpoint di scrivere metriche nell'area di lavoro. L'identità endpoint è un'identità assegnata dal sistema.
Azure Machine Learning Workspace Connection Secrets Reader1 Consente all'identità endpoint di leggere i segreti dalle connessioni dell'area di lavoro. L'identità endpoint è un'identità assegnata dal sistema. L'endpoint viene creato con un flag per applicare l'accesso agli archivi segreti predefiniti. L'identità utente che crea l'endpoint ha la stessa autorizzazione per leggere i segreti dalle connessioni dell'area di lavoro. 2

1 Per altre informazioni sul ruolo Azure Machine Learning Workspace Connection Secrets Reader, vedere Assegnare autorizzazioni all'identità.

2 Anche se l'identità endpoint è un'identità assegnata dal sistema, se il flag di applicazione non è impostato o l'identità utente non dispone dell'autorizzazione, non esiste alcuna assegnazione di ruolo automatica per questo ruolo. Per altre informazioni, vedere Come distribuire l'endpoint online con l'inserimento di segreti.

Se l'identità endpoint è un'identità assegnata dall'utente, non esiste alcuna assegnazione di ruolo automatica. In questo caso, è necessario assegnare manualmente i ruoli all'identità endpoint in base alle esigenze.

Scelta delle autorizzazioni e dell'ambito per l'autorizzazione

Il controllo degli accessi in base al ruolo di Azure consente di definire e assegnare ruoli con un set di azioni consentite e/o negate in ambiti specifici. È possibile personalizzare questi ruoli e ambiti in base alle proprie esigenze aziendali. Gli esempi seguenti fungono da punto di partenza e possono essere ampliati se necessario.

Esempi di identità utente

  • Per controllare tutte le operazioni elencate nella tabella precedente per le operazioni del piano di controllo e la tabella per le operazioni del piano dati, è possibile prendere in considerazione l'uso di un ruolo predefinito AzureML Data Scientist che include l'azione di autorizzazione Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions.
  • Per controllare le operazioni per un endpoint specifico, è consigliabile usare l'ambito /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>.
  • Per controllare le operazioni per tutti gli endpoint di un'area di lavoro, è consigliabile usare l'ambito /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>.

Esempi di identità endpoint

  • Per consentire al contenitore utente di leggere i BLOB, è consigliabile usare un ruolo predefinito Storage Blob Data Reader che include l'azione dati di autorizzazione Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read.

Per altre informazioni sulle linee guida per le operazioni del piano di controllo, vedere Gestire l'accesso ad Azure Machine Learning. Per altre informazioni sulla definizione del ruolo, sull'ambito e sull'assegnazione di ruolo, vedere Controllo degli accessi in base al ruolo di Azure. Per comprendere l'ambito per i ruoli assegnati, vedere Informazioni sull'ambito per il controllo degli accessi in base al ruolo di Azure.