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.

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:

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:

  1. Creare un gruppo di sicurezza.
  2. 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.
  3. 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.
  4. 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
  1. 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.

  2. 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 di rete virtuale. Questa autorizzazione non è necessaria per le distribuzioni di modelli di Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" nella risorsa di rete virtuale.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" nella risorsa 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 Archiviazione di Azure, Azure Cosmos DB e Ricerca 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 di creazione, recupero, eliminazione e rimozione definitiva 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.

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 e non il ruolo Proprietario per tale area di lavoro.

  • 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 E Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Per le distribuzioni dell'SDK e dell'interfaccia della riga di comando, è necessario Microsoft.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.

Passaggi successivi