Gestire l'accesso alle aree di lavoro di Azure Machine Learning
Questo articolo illustra come gestire l'accesso (autorizzazione) alle aree di lavoro di Azure Machine Learning. È possibile usare il controllo degli accessi in base al ruolo di Azure per gestire l'accesso alle risorse di Azure, offrendo agli utenti la possibilità di creare nuove risorse o usare quelle esistenti. Agli utenti in Microsoft Entra ID vengono assegnati ruoli specifici, che concedono l'accesso alle risorse. Azure fornisce sia ruoli predefiniti che la possibilità di creare ruoli personalizzati.
Suggerimento
Anche se questo articolo è incentrato su Azure Machine Learning, i singoli servizi forniscono impostazioni specifiche per il controllo degli accessi in base al ruolo. Ad esempio, con le informazioni contenute in questo articolo è possibile configurare chi può inviare richieste di assegnazione dei punteggi a un modello distribuito come servizio Web nel servizio Azure Kubernetes. Il servizio Azure Kubernetes offre tuttavia un proprio set di ruoli di Azure. Per informazioni sul controllo degli accessi in base al ruolo specifiche del servizio che potrebbero essere utili con Azure Machine Learning, vedere i collegamenti seguenti:
Avviso
L'applicazione di alcuni ruoli potrebbe limitare la funzionalità dell'interfaccia utente nello studio di Azure Machine Learning per altri utenti. Ad esempio, se il ruolo di un utente non consente di creare un'istanza di ambiente di calcolo, l'opzione per creare tale istanza non è disponibile nello studio. Questo comportamento è previsto e impedisce all'utente di provare a eseguire operazioni che restituirebbero un errore di accesso negato.
Ruoli predefiniti
Le aree di lavoro di Azure Machine Learning includono ruoli predefiniti che sono disponibili per impostazione predefinita. Quando si aggiungono utenti a un'area di lavoro, è possibile assegnare loro uno dei ruoli seguenti.
Ruolo | Livello di accesso |
---|---|
Scienziato dei dati di AzureML | Può eseguire tutte le azioni all'interno di un'area di lavoro di Azure Machine Learning, ad eccezione della creazione o dell'eliminazione delle risorse di calcolo e della modifica dell'area di lavoro stessa. |
Operatore di calcolo di AzureML | Può creare, gestire, eliminare e accedere alle risorse di calcolo all'interno di un'area di lavoro. |
Lettore | Azioni di sola lettura nell'area di lavoro. I lettori possono elencare e visualizzare gli asset, tra cui le credenziali dell'archivio dati, in un'area di lavoro. I lettori non possono creare o aggiornare gli asset. |
Collaboratore | Visualizzare, creare, modificare o eliminare, laddove possibile, le risorse in un'area di lavoro. I collaboratori possono, ad esempio, creare un esperimento, creare o allegare un cluster di calcolo, inviare un'esecuzione e distribuire un servizio Web. |
Proprietario | Accesso completo all'area di lavoro, inclusa la possibilità di visualizzare, creare, modificare o eliminare, laddove applicabile, le risorse in un'area di lavoro. Inoltre, è possibile modificare le assegnazioni di ruolo. |
Inoltre, i registri di Azure Machine Learning includono un ruolo utente del registro di AzureML che può essere assegnato a una risorsa del registro per concedere agli scienziati dei dati autorizzazioni a livello di utente. Per le autorizzazioni a livello di amministratore per creare o eliminare registri, usare il ruolo Collaboratore o Proprietario.
Ruolo | Livello di accesso |
---|---|
Utente del registro di AzureML | Può ottenere registri, leggere, scrivere ed eliminare gli asset presenti in tali registri. Non può creare nuove risorse del registro o eliminarle. |
È possibile combinare i ruoli per concedere livelli di accesso diversi. Ad esempio, è possibile concedere a un utente dell'area di lavoro sia il ruolo Scienziato dei dati di AzureML che quello Operatore di calcolo di AzureML per consentire all'utente di eseguire esperimenti durante la creazione di calcoli in modalità self-service.
Importante
È possibile definire l'ambito per l'accesso ai ruoli a più livelli in Azure. Ad esempio, un utente con accesso come proprietario a un'area di lavoro potrebbe non avere lo stesso accesso al gruppo di risorse che contiene l'area di lavoro. Per altre informazioni, vedere Funzionamento del controllo degli accessi in base al ruolo di Azure.
Ruolo di amministratore di Intelligenza artificiale di Azure
Prima del 11/19/2024, all'identità gestita assegnata dal sistema creato per l'area di lavoro è stato assegnato automaticamente il ruolo Collaboratore per il gruppo di risorse che contiene l'area di lavoro. Le aree di lavoro create dopo questa data hanno l'identità gestita assegnata dal sistema al ruolo di amministratore di Intelligenza artificiale di Azure. Questo ruolo ha un ambito più ristretto rispetto alle autorizzazioni minime necessarie per l'identità gestita per eseguire le attività.
Il ruolo Di amministratore di Intelligenza artificiale di Azure è attualmente disponibile in anteprima pubblica.
Importante
Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio, pertanto se ne sconsiglia l’uso per i carichi di lavoro in ambienti 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 ruolo Di amministratore di Intelligenza artificiale di Azure ha le autorizzazioni seguenti:
{
"permissions": [
{
"actions": [
"Microsoft.Authorization/*/read",
"Microsoft.CognitiveServices/*",
"Microsoft.ContainerRegistry/registries/*",
"Microsoft.DocumentDb/databaseAccounts/*",
"Microsoft.Features/features/read",
"Microsoft.Features/providers/features/read",
"Microsoft.Features/providers/features/register/action",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/components/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Insights/generateLiveToken/read",
"Microsoft.Insights/logDefinitions/read",
"Microsoft.Insights/metricAlerts/*",
"Microsoft.Insights/metricdefinitions/read",
"Microsoft.Insights/metrics/read",
"Microsoft.Insights/scheduledqueryrules/*",
"Microsoft.Insights/topology/read",
"Microsoft.Insights/transactions/read",
"Microsoft.Insights/webtests/*",
"Microsoft.KeyVault/*",
"Microsoft.MachineLearningServices/workspaces/*",
"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/deployments/operations/read",
"Microsoft.Resources/subscriptions/operationresults/read",
"Microsoft.Resources/subscriptions/read",
"Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Storage/storageAccounts/*",
"Microsoft.Support/*",
"Microsoft.Search/searchServices/write",
"Microsoft.Search/searchServices/read",
"Microsoft.Search/searchServices/delete",
"Microsoft.Search/searchServices/indexes/*",
"Microsoft.DataFactory/factories/*"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
Convertire un'identità gestita dal sistema esistente nel ruolo di amministratore di Intelligenza artificiale di Azure
Suggerimento
È consigliabile convertire le aree di lavoro create prima del 11/19/2024 per usare il ruolo di amministratore di Intelligenza artificiale di Azure. Il ruolo di amministratore di Intelligenza artificiale di Azure è più limitato rispetto al ruolo Collaboratore usato in precedenza e segue l'entità di privilegi minimi.
È possibile convertire le aree di lavoro create prima del 11/19/2024 usando uno dei metodi seguenti:
API REST di Azure: usare una
PATCH
richiesta all'API REST di Azure per l'area di lavoro. Il corpo della richiesta deve impostare{"properties":{"allowRoleAssignmeentOnRG":true}}
. Nell'esempio seguente viene illustrata unaPATCH
richiesta che usacurl
. Sostituire<your-subscription>
,<resource-group-name>
,<workspace-name>
e<YOUR-ACCESS-TOKEN>
con i valori per lo scenario. Per altre informazioni sull'uso delle API REST, vedere la documentazione dell'API REST di Azure.curl -X PATCH https://management.azure.com/subscriptions/<your-subscription>/resourcegroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>?api-version=2024-04-01-preview -H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"
Interfaccia della riga di comando di Azure: usare il
az ml workspace update
comando con il--allow-roleassignment-on-rg true
parametro . Nell'esempio seguente viene aggiornata un'area di lavoro denominatamyworkspace
. Questo comando richiede l'estensione dell'interfaccia della riga di comando di Azure Machine Learning versione 2.27.0 o successiva.az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
Azure Python SDK: impostare la
allow_roleassignment_on_rg
proprietà dell'oggetto Workspace suTrue
e quindi eseguire un'operazione di aggiornamento. Nell'esempio seguente viene aggiornata un'area di lavoro denominatamyworkspace
. Questa operazione richiede Azure Machine Learning SDK versione 1.17.0 o successiva.ws = ml_client.workspaces.get(name="myworkspace") ws.allow_roleassignment_on_rg = True ws = ml_client.workspaces.begin_update(workspace=ws).result()
Gestisci l'accesso all'area di lavoro
Se si è proprietari di un'area di lavoro, è possibile aggiungere e rimuovere i ruoli per l'area di lavoro. È anche possibile assegnare ruoli agli utenti. Usare i collegamenti seguenti per scoprire come gestire gli accessi:
- Interfaccia utente del portale di Azure
- PowerShell
- Interfaccia della riga di comando di Azure
- REST API
- Modelli di Gestione risorse di Azure
Ad esempio, usare l'interfaccia della riga di comando di Azure per assegnare ruolo Collaboratore a joe@contoso.com per il gruppo di risorse this-rg con il comando seguente:
az role assignment create --role "Contributor" --assignee "joe@contoso.com" --resource-group this-rg
Usare i gruppi di sicurezza di Microsoft Entra per gestire l'accesso alle aree di lavoro
È possibile usare i gruppi di sicurezza di Microsoft Entra per gestire l'accesso alle aree di lavoro. Questo approccio offre i seguenti vantaggi:
- I responsabili del team o del progetto possono gestire l'accesso degli utenti all'area di lavoro come proprietari del gruppo di sicurezza, senza dover disporre direttamente del ruolo Proprietario per la risorsa dell'area di lavoro.
- È possibile organizzare, gestire e revocare le autorizzazioni degli utenti per l'area di lavoro e altre risorse come gruppo, senza dover gestire le autorizzazioni utente per utente.
- L'uso dei gruppi di Microsoft Entra consente di evitare di raggiungere il limite della sottoscrizione per le assegnazioni di ruolo.
Per usare i gruppi di sicurezza di Microsoft Entra:
- Creare un gruppo di sicurezza.
- Aggiungere un proprietario del gruppo. Questo utente dispone delle autorizzazioni per aggiungere o rimuovere membri del gruppo. Il proprietario del gruppo non deve essere membro del gruppo o avere il ruolo Controllo degli accessi in base al ruolo diretto per l'area di lavoro.
- Assegnare al gruppo un ruolo Controllo degli accessi in base al ruolo per l'area di lavoro, ad esempio Scienziato dei dati di AzureML, Lettore o Collaboratore.
- Aggiungere membri del gruppo. I membri ottengono l'accesso all'area di lavoro.
Creare un ruolo personalizzato
Se i ruoli predefiniti non sono sufficienti, è possibile creare ruoli personalizzati. I ruoli personalizzati possono disporre delle autorizzazioni di lettura, scrittura, eliminazione e calcolo delle risorse in tale area di lavoro. È possibile rendere il ruolo disponibile per un livello di area di lavoro specifico, un livello di gruppo di risorse specifico o un livello di sottoscrizione specifico.
Nota
Per creare ruoli personalizzati all'interno di tale risorsa, è necessario essere proprietari della risorsa.
Per creare un ruolo personalizzato, creare prima di tutto un file JSON di definizione del ruolo che specifica l'autorizzazione e l'ambito per il ruolo. L'esempio seguente definisce un ruolo Scienziato dei dati personalizzato con ambito a livello di area di lavoro specifico:
data_scientist_custom_role.json:
{
"Name": "Data Scientist Custom",
"IsCustom": true,
"Description": "Can run experiment but can't create or delete compute.",
"Actions": ["*"],
"NotActions": [
"Microsoft.MachineLearningServices/workspaces/*/delete",
"Microsoft.MachineLearningServices/workspaces/write",
"Microsoft.MachineLearningServices/workspaces/computes/*/write",
"Microsoft.MachineLearningServices/workspaces/computes/*/delete",
"Microsoft.Authorization/*/write"
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>"
]
}
Suggerimento
È possibile modificare il campo AssignableScopes
per impostare l'ambito di questo ruolo personalizzato a livello di sottoscrizione, di gruppo di risorse o a livello di un'area di lavoro specifica.
Il ruolo personalizzato precedente è solo un esempio. Vedere alcuni ruoli personalizzati suggeriti per il servizio Azure Machine Learning.
Questo ruolo personalizzato può eseguire tutte le operazioni nell'area di lavoro, ad eccezione delle azioni seguenti:
- Non può eliminare l'area di lavoro.
- Non può creare o aggiornare l'area di lavoro.
- Non può creare o aggiornare le risorse di calcolo.
- Non può eliminare le risorse di calcolo.
- Non può aggiungere, eliminare o modificare le assegnazioni di ruolo.
Per distribuire questo ruolo personalizzato, usare il comando seguente dell'interfaccia della riga di comando di Azure:
az role definition create --role-definition data_scientist_custom_role.json
Dopo la distribuzione questo ruolo risulta disponibile nell'area di lavoro specificata. A questo punto è possibile aggiungere e assegnare questo ruolo nel portale di Azure.
Per altre informazioni sui ruoli personalizzati, vedere Ruoli personalizzati di Azure.
Operazioni di Azure Machine Learning
Per altre informazioni sulle operazioni (azioni e non azioni) utilizzabili con i ruoli personalizzati, vedere Operazioni del provider di risorse. È anche possibile usare il comando seguente dell'interfaccia della riga di comando di Azure per elencare le operazioni:
az provider operation show –n Microsoft.MachineLearningServices
Elencare ruoli personalizzati
Nell'interfaccia della riga di comando di Azure eseguire il comando seguente:
az role definition list --subscription <subscriptionId> --custom-role-only true
Per visualizzare la definizione del ruolo per un ruolo personalizzato specifico, usare il comando seguente dell'interfaccia della riga di comando di Azure. Il formato di <roleName>
deve essere uguale a quello restituito dal comando precedente:
az role definition list -n <roleName> --subscription <subscriptionId>
Aggiornare un ruolo personalizzato
Nell'interfaccia della riga di comando di Azure eseguire il comando seguente:
az role definition update --role-definition update_def.json --subscription <subscriptionId>
È necessario disporre delle autorizzazioni per l'intero ambito della nuova definizione di ruolo. Ad esempio, se l'ambito di questo nuovo ruolo riguarda tre sottoscrizioni, è necessario disporre delle autorizzazioni per tutte e tre le sottoscrizioni.
Nota
L'applicazione degli aggiornamenti dei ruoli a tutte le assegnazioni di ruolo in tale ambito può richiedere da 15 minuti a un'ora.
Usare i modelli di Azure Resource Manager per la ripetibilità
Se si prevede di dover ricreare assegnazioni di ruolo complesse, può essere utile un modello di Azure Resource Manager. Il modello machine-learning-dependencies-role-assignment illustra come specificare le assegnazioni di ruolo nel codice sorgente per il riutilizzo.
Scenari comuni
La tabella seguente riepiloga le attività di Azure Machine Learning e le autorizzazioni necessarie per eseguirle nell'ambito minimo. Ad esempio, se un'attività può essere eseguita con un ambito dell'area di lavoro (colonna 4), anche tutti gli ambiti superiori con tale autorizzazione funzioneranno automaticamente. Per determinate attività, le autorizzazioni differiscono tra le API V1 e V2.
Importante
Tutti i percorsi di questa tabella che iniziano con /
sono percorsi relativi di Microsoft.MachineLearningServices/
:
Impegno | Ambito a livello di sottoscrizione | Ambito a livello di gruppo di risorse | Ambito a livello di area di lavoro |
---|---|---|---|
Creazione di una nuova area di lavoro 1 | Non obbligatorio | Proprietario o collaboratore | N/D (diventa Proprietario o eredita un ruolo di ambito superiore dopo la creazione) |
Richiesta della quota di Amlcompute a livello di sottoscrizione o impostazione della quota a livello di area di lavoro | Proprietario, collaboratore o ruolo personalizzato che consenta /locations/updateQuotas/action nell'ambito della sottoscrizione |
Non autorizzato | Non autorizzato |
Creazione di un nuovo cluster di elaborazione | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/computes/write |
Creazione di una nuova istanza di ambiente di calcolo | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/computes/write |
Invio di qualsiasi tipo di esecuzione (V1) | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/*/read , /workspaces/environments/write , /workspaces/experiments/runs/write , /workspaces/metadata/artifacts/write , /workspaces/metadata/snapshots/write , /workspaces/environments/build/action , /workspaces/experiments/runs/submit/action , /workspaces/environments/readSecrets/action |
Invio di qualsiasi tipo di esecuzione (V2) | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/*/read , /workspaces/environments/write , /workspaces/jobs/* , /workspaces/metadata/artifacts/write , /workspaces/metadata/codes/*/write , /workspaces/environments/build/action , /workspaces/environments/readSecrets/action |
Pubblicazione di pipeline ed endpoint (V1) | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/endpoints/pipelines/* , /workspaces/pipelinedrafts/* , /workspaces/modules/* |
Pubblicazione di pipeline ed endpoint (V2) | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/endpoints/pipelines/* , /workspaces/pipelinedrafts/* , /workspaces/components/* |
Collegamento di una risorsa del servizio Azure Container 2 | Non obbligatorio | Proprietario o collaboratore per il gruppo di risorse che contiene il servizio Azure Container | |
Distribuzione di un modello registrato in una risorsa del servizio Azure Container o dell'istanza di Azure Container | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/services/aks/write , /workspaces/services/aci/write |
Assegnazione dei punteggi a un endpoint del servizio Azure Container distribuito | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/services/aks/score/action , /workspaces/services/aks/listkeys/action (quando non si usa l'autenticazione di Microsoft Entra) OPPURE /workspaces/read (quando si usa l'autenticazione token) |
Accesso all'archiviazione tramite notebook interattivi | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/computes/read , /workspaces/notebooks/samples/read , /workspaces/notebooks/storage/* , /workspaces/listStorageAccountKeys/action , /workspaces/listNotebookAccessToken/read |
Creazione di un nuovo ruolo personalizzato | Proprietario, collaboratore o ruolo personalizzato che consenta Microsoft.Authorization/roleDefinitions/write |
Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta: /workspaces/computes/write |
Creazione/gestione di distribuzioni ed endpoint online | Non obbligatorio | Per la distribuzione in Studio, Microsoft.Resources/deployments/write |
Proprietario, collaboratore o ruolo personalizzato che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/* |
Recupero delle credenziali di autenticazione per gli endpoint online | Non obbligatorio | Non obbligatorio | Proprietario, collaboratore o ruolo personalizzato che consenta Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action e Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action |
Se si riceve un errore quando si prova a creare un'area di lavoro per la prima volta, assicurarsi che il ruolo consenta
Microsoft.MachineLearningServices/register/action
. Questa azione consente di registrare il provider di risorse di Azure Machine Learning con la sottoscrizione di Azure.Quando si collega un cluster del servizio Azure Kubernetes, è anche necessario avere il ruolo di amministratore del cluster del servizio Azure Kubernetes per il cluster.
Distribuire in una rete virtuale o una subnet
Per distribuire risorse in una rete virtuale o in una subnet, l'account utente deve avere le autorizzazioni per 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 con la rete, vedere Ruoli predefiniti di rete.
Differenze tra le azioni per le API V1 e V2
Esistono alcune differenze tra le azioni per le API V1 e le API V2.
Risorsa | Percorso delle azioni per l'API V1 | Percorso delle azioni per l'API V2 |
---|---|---|
Set di dati | Microsoft.MachineLearningServices/workspaces/datasets | Microsoft.MachineLearningServices/workspaces/datasets/versions |
Esecuzione di esperimenti e processi | Microsoft.MachineLearningServices/workspaces/experiments | Microsoft.MachineLearningServices/workspaces/jobs |
Modelli | Microsoft.MachineLearningServices/workspaces/models | Microsoft.MachineLearningServices/workspaces/models/versions |
Snapshot e codice | Microsoft.MachineLearningServices/workspaces/snapshots | Microsoft.MachineLearningServices/workspaces/codes/versions |
Moduli e componenti | Microsoft.MachineLearningServices/workspaces/modules | Microsoft.MachineLearningServices/workspaces/components |
Per rendere i ruoli personalizzati compatibili con le API V1 e V2, è possibile includere entrambe le azioni o usare caratteri jolly che includono entrambe le azioni, ad esempio Microsoft.MachineLearningServices/workspaces/datasets/*/read
.
Creare un'area di lavoro usando una chiave gestita dal cliente
Quando si usa una chiave gestita dal cliente, per archiviare la chiave si usa Azure Key Vault. L'utente o l'entità servizio usata per creare l'area di lavoro deve avere accesso come Proprietario o Collaboratore all'insieme di credenziali delle chiavi.
Se l'area di lavoro è configurata con un'identità gestita assegnata dall'utente, all'identità devono essere concessi i ruoli seguenti. Questi ruoli consentono all'identità gestita di creare le risorse di Archiviazione di Azure, Azure Cosmos DB e Ricerca cognitiva di Azure usate quando si usa una chiave gestita dal cliente:
Microsoft.Storage/storageAccounts/write
Microsoft.Search/searchServices/write
Microsoft.DocumentDB/databaseAccounts/write
All'interno dell'insieme di credenziali delle chiavi, l'utente o l'entità servizio deve avere accesso alla chiave per le operazioni create, get, delete e purge tramite un criterio di accesso dell'insieme di credenziali delle chiavi. Per altre informazioni, vedere Sicurezza in Azure Key Vault.
Identità gestita assegnata dall'utente con il cluster di elaborazione di Azure Machine Learning
Per assegnare un'identità assegnata dall'utente a un cluster di elaborazione di Azure Machine Learning, sono necessarie autorizzazioni di scrittura per creare l'ambiente di calcolo e il ruolo Operatore di identità gestite. Per altre informazioni sul controllo degli accessi in base al ruolo di Azure con identità gestite, vedere Come gestire l'identità assegnata dall'utente
Operazioni MLflow
Per eseguire operazioni MLflow con l'area di lavoro di Azure Machine Learning, usare gli ambiti seguenti del ruolo personalizzato:
Operazione MLflow | Ambito |
---|---|
(V1) Elencare, leggere, creare, aggiornare o eliminare esperimenti | Microsoft.MachineLearningServices/workspaces/experiments/* |
(V2) Elencare, leggere, creare, aggiornare o eliminare processi | Microsoft.MachineLearningServices/workspaces/jobs/* |
Ottenere il modello registrato per nome, recuperare un elenco di tutti i modelli registrati nel registro, cercare modelli registrati, modelli di versione più recenti per ogni fase delle richieste, ottenere la versione di un modello registrato, cercare le versioni del modello, ottenere l'URI in cui sono archiviati gli artefatti della versione di un modello, cercare le esecuzioni in base agli ID esperimento | Microsoft.MachineLearningServices/workspaces/models/*/read |
Creare un nuovo modello registrato, aggiornare il nome o la descrizione di un modello registrato, rinominare il modello registrato esistente, creare una nuova versione del modello, aggiornare la descrizione di una versione del modello, eseguire la transizione di un modello registrato a una delle fasi | Microsoft.MachineLearningServices/workspaces/models/*/write |
Eliminare un modello registrato insieme a tutte le relative versioni, eliminare versioni specifiche di un modello registrato | Microsoft.MachineLearningServices/workspaces/models/*/delete |
Ruoli personalizzati di esempio
Data scientist
Consente a uno scienziato dei dati di eseguire tutte le operazioni all'interno di un'area di lavoro ad eccezione di:
- Creazione dell'ambiente di calcolo
- Distribuzione di modelli in un cluster del servizio Azure Kubernetes dell'ambiente di produzione
- Distribuzione di un endpoint della pipeline nell'ambiente di produzione
data_scientist_custom_role.json:
{
"Name": "Data Scientist Custom",
"IsCustom": true,
"Description": "Can run experiment but can't create or delete compute or deploy production endpoints.",
"Actions": [
"Microsoft.MachineLearningServices/workspaces/*/read",
"Microsoft.MachineLearningServices/workspaces/*/action",
"Microsoft.MachineLearningServices/workspaces/*/delete",
"Microsoft.MachineLearningServices/workspaces/*/write"
],
"NotActions": [
"Microsoft.MachineLearningServices/workspaces/delete",
"Microsoft.MachineLearningServices/workspaces/write",
"Microsoft.MachineLearningServices/workspaces/computes/*/write",
"Microsoft.MachineLearningServices/workspaces/computes/*/delete",
"Microsoft.Authorization/*",
"Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
"Microsoft.MachineLearningServices/workspaces/listKeys/action",
"Microsoft.MachineLearningServices/workspaces/services/aks/write",
"Microsoft.MachineLearningServices/workspaces/services/aks/delete",
"Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
Scienziato dei dati con restrizioni
Definizione di ruolo con maggiori restrizioni senza caratteri jolly nelle azioni consentite. Può eseguire tutte le operazioni all'interno di un'area di lavoro ad eccezione di:
- Creazione dell'ambiente di calcolo
- Distribuzione di modelli in un cluster del servizio Azure Kubernetes dell'ambiente di produzione
- Distribuzione di un endpoint della pipeline nell'ambiente di produzione
data_scientist_restricted_custom_role.json
:
{
"Name": "Data Scientist Restricted Custom",
"IsCustom": true,
"Description": "Can run experiment but can't create or delete compute or deploy production endpoints",
"Actions": [
"Microsoft.MachineLearningServices/workspaces/*/read",
"Microsoft.MachineLearningServices/workspaces/computes/start/action",
"Microsoft.MachineLearningServices/workspaces/computes/stop/action",
"Microsoft.MachineLearningServices/workspaces/computes/restart/action",
"Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action",
"Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
"Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
"Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
"Microsoft.MachineLearningServices/workspaces/experiments/write",
"Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
"Microsoft.MachineLearningServices/workspaces/pipelinedrafts/write",
"Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
"Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
"Microsoft.MachineLearningServices/workspaces/environments/write",
"Microsoft.MachineLearningServices/workspaces/models/*/write",
"Microsoft.MachineLearningServices/workspaces/modules/write",
"Microsoft.MachineLearningServices/workspaces/components/*/write",
"Microsoft.MachineLearningServices/workspaces/datasets/*/write",
"Microsoft.MachineLearningServices/workspaces/datasets/*/delete",
"Microsoft.MachineLearningServices/workspaces/computes/listNodes/action",
"Microsoft.MachineLearningServices/workspaces/environments/build/action"
],
"NotActions": [
"Microsoft.MachineLearningServices/workspaces/computes/write",
"Microsoft.MachineLearningServices/workspaces/write",
"Microsoft.MachineLearningServices/workspaces/computes/delete",
"Microsoft.MachineLearningServices/workspaces/delete",
"Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
"Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action",
"Microsoft.MachineLearningServices/workspaces/listKeys/action",
"Microsoft.Authorization/*",
"Microsoft.MachineLearningServices/workspaces/datasets/registered/profile/read",
"Microsoft.MachineLearningServices/workspaces/datasets/registered/preview/read",
"Microsoft.MachineLearningServices/workspaces/datasets/unregistered/profile/read",
"Microsoft.MachineLearningServices/workspaces/datasets/unregistered/preview/read",
"Microsoft.MachineLearningServices/workspaces/datasets/registered/schema/read",
"Microsoft.MachineLearningServices/workspaces/datasets/unregistered/schema/read",
"Microsoft.MachineLearningServices/workspaces/datastores/write",
"Microsoft.MachineLearningServices/workspaces/datastores/delete"
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
Scienziato dei dati di MLflow
Consente a uno scienziato dei dati di eseguire tutte le operazioni supportate da Azure Machine Learning per MLflow ad eccezione di:
- Creazione dell'ambiente di calcolo
- Distribuzione di modelli in un cluster del servizio Azure Kubernetes dell'ambiente di produzione
- Distribuzione di un endpoint della pipeline nell'ambiente di produzione
mlflow_data_scientist_custom_role.json:
{
"Name": "MLFlow Data Scientist Custom",
"IsCustom": true,
"Description": "Can perform azureml mlflow integrated functionalities that includes mlflow tracking, projects, model registry",
"Actions": [
"Microsoft.MachineLearningServices/workspaces/experiments/*",
"Microsoft.MachineLearningServices/workspaces/jobs/*",
"Microsoft.MachineLearningServices/workspaces/models/*"
],
"NotActions": [
"Microsoft.MachineLearningServices/workspaces/delete",
"Microsoft.MachineLearningServices/workspaces/write",
"Microsoft.MachineLearningServices/workspaces/computes/*/write",
"Microsoft.MachineLearningServices/workspaces/computes/*/delete",
"Microsoft.Authorization/*",
"Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
"Microsoft.MachineLearningServices/workspaces/listKeys/action",
"Microsoft.MachineLearningServices/workspaces/services/aks/write",
"Microsoft.MachineLearningServices/workspaces/services/aks/delete",
"Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
MLOps
Consente di assegnare un ruolo a un'entità servizio e di usarlo per automatizzare le pipeline di MLOps. Ad esempio, per inviare esecuzioni su una pipeline già pubblicata:
mlops_custom_role.json:
{
"Name": "MLOps Custom",
"IsCustom": true,
"Description": "Can run pipelines against a published pipeline endpoint",
"Actions": [
"Microsoft.MachineLearningServices/workspaces/read",
"Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
"Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
"Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
"Microsoft.MachineLearningServices/workspaces/environments/read",
"Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
"Microsoft.MachineLearningServices/workspaces/modules/read",
"Microsoft.MachineLearningServices/workspaces/components/read",
"Microsoft.MachineLearningServices/workspaces/datasets/*/read",
"Microsoft.MachineLearningServices/workspaces/datastores/read",
"Microsoft.MachineLearningServices/workspaces/environments/write",
"Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
"Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
"Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
"Microsoft.MachineLearningServices/workspaces/experiments/jobs/read",
"Microsoft.MachineLearningServices/workspaces/experiments/jobs/write",
"Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
"Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
"Microsoft.MachineLearningServices/workspaces/metadata/codes/*/write",
"Microsoft.MachineLearningServices/workspaces/environments/build/action",
],
"NotActions": [
"Microsoft.MachineLearningServices/workspaces/computes/write",
"Microsoft.MachineLearningServices/workspaces/write",
"Microsoft.MachineLearningServices/workspaces/computes/delete",
"Microsoft.MachineLearningServices/workspaces/delete",
"Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
"Microsoft.MachineLearningServices/workspaces/listKeys/action",
"Microsoft.Authorization/*"
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
Amministratore area di lavoro
Consente di eseguire tutte le operazioni nell'ambito di un'area di lavoro, ad eccezione di:
- Creazione di una nuova area di lavoro
- Assegnazione di quote a livello di sottoscrizione o di area di lavoro
L'amministratore dell'area di lavoro non può creare un nuovo ruolo. Può assegnare solo ruoli predefiniti o personalizzati esistenti nell'ambito dell'area di lavoro:
workspace_admin_custom_role.json:
{
"Name": "Workspace Admin Custom",
"IsCustom": true,
"Description": "Can perform all operations except quota management and upgrades",
"Actions": [
"Microsoft.MachineLearningServices/workspaces/*/read",
"Microsoft.MachineLearningServices/workspaces/*/action",
"Microsoft.MachineLearningServices/workspaces/*/write",
"Microsoft.MachineLearningServices/workspaces/*/delete",
"Microsoft.Authorization/roleAssignments/*"
],
"NotActions": [
"Microsoft.MachineLearningServices/workspaces/write"
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
Etichettatura dei dati
Esiste un ruolo predefinito per l'etichettatura dei dati, con ambito solo per l'etichettatura dei dati. I ruoli personalizzati seguenti offrono altri livelli di accesso per un progetto di etichettatura dei dati.
- Responsabile del team di etichettatura
- Account manager fornitori
- Controllo di qualità cliente
- Controllo di qualità fornitore
Il responsabile del team di etichettatura consente di esaminare e rifiutare il set di dati etichettato e visualizzare informazioni dettagliate sull'etichettatura. Inoltre, questo ruolo consente anche di assumere il ruolo di etichettatore.
labeling_team_lead_custom_role.json:
{
"Name": "Labeling Team Lead",
"IsCustom": true,
"Description": "Team lead for Labeling Projects",
"Actions": [
"Microsoft.MachineLearningServices/workspaces/read",
"Microsoft.MachineLearningServices/workspaces/labeling/labels/read",
"Microsoft.MachineLearningServices/workspaces/labeling/labels/write",
"Microsoft.MachineLearningServices/workspaces/labeling/labels/reject/action",
"Microsoft.MachineLearningServices/workspaces/labeling/labels/update/action",
"Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
"Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read"
],
"NotActions": [
"Microsoft.MachineLearningServices/workspaces/labeling/projects/write",
"Microsoft.MachineLearningServices/workspaces/labeling/projects/delete",
"Microsoft.MachineLearningServices/workspaces/labeling/export/action"
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
Risoluzione dei problemi
Ecco alcuni aspetti da tenere presenti durante l'uso del controllo degli accessi in base al ruolo di Azure:
Quando si crea una risorsa in Azure, ad esempio un'area di lavoro, non si è direttamente proprietari della risorsa. Il ruolo viene ereditato dal ruolo con ambito più alto per cui si è autorizzati in tale sottoscrizione. Ad esempio, se si è un amministratore di rete e si hanno le autorizzazioni per creare un'area di lavoro Machine Learning, verrà assegnato il ruolo Amministratore di rete per tale area di lavoro, non il ruolo Proprietario.
Per eseguire operazioni di quota in un'area di lavoro, sono necessarie autorizzazioni a livello di sottoscrizione. Ciò significa che l'impostazione della quota a livello di sottoscrizione o di area di lavoro per le risorse di calcolo gestite può avvenire solo se si dispone di autorizzazioni di scrittura nell'ambito della sottoscrizione.
Per la distribuzione in Studio, sono necessari
Microsoft.Resources/deployments/write
EMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write
. Per le distribuzioni dell'SDK e dell'interfaccia della riga di comando, è necessarioMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write
. Contattare il proprietario dell'area di lavoro o del gruppo di risorse per ottenere le autorizzazioni aggiuntive.Quando sono presenti due assegnazioni di ruolo per lo stesso utente Microsoft Entra con sezioni in conflitto di Actions/NotActions, le operazioni elencate in NotActions da un ruolo potrebbero non avere effetto se sono elencate anche come Actions in un altro ruolo. Per altre informazioni su come Azure analizza le assegnazioni di ruolo, vedere Come il controllo degli accessi in base al ruolo di Azure determina se un utente ha accesso a una risorsa
A volte può essere necessaria fino a un'ora prima che le nuove assegnazioni di ruolo abbiano effetto sulle autorizzazioni memorizzate nella cache nello stack.