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 Reader 1 |
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 autorizzazioneMicrosoft.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 autorizzazioneMicrosoft.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.