Dela via


Hantera åtkomst till Azure Machine Learning-arbetsytor

Den här artikeln beskriver hur du hanterar åtkomst (auktorisering) till Azure Machine Learning-arbetsytor. Du kan använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att hantera åtkomst till Azure-resurser, vilket ger användarna möjlighet att skapa nya resurser eller använda befintliga resurser. Användare i ditt Microsoft Entra-ID tilldelas specifika roller som ger åtkomst till resurser. Azure ger både inbyggda roller och möjlighet att skapa anpassade roller.

Dricks

Den här artikeln fokuserar på Azure Machine Learning, men enskilda tjänster tillhandahåller sina egna RBAC-inställningar. Med hjälp av informationen i den här artikeln kan du till exempel konfigurera vem som kan skicka bedömningsbegäranden till en modell som distribueras som en webbtjänst i Azure Kubernetes Service. Men Azure Kubernetes Service tillhandahåller en egen uppsättning Azure-roller. För tjänstspecifik RBAC-information som kan vara användbar med Azure Machine Learning, se följande länkar:

Varning

Om vissa roller tillämpas kan användargränssnittsfunktionerna begränsas i Azure Machine Learning-studio för andra användare. Om en användares roll till exempel inte har möjlighet att skapa en beräkningsinstans är alternativet att skapa en beräkningsinstans inte tillgängligt i studio. Det här beteendet förväntas och förhindrar att användaren försöker utföra åtgärder som returnerar ett fel om nekad åtkomst.

Standardroller

Azure Machine Learning-arbetsytor har inbyggda roller som är tillgängliga som standard. När du lägger till användare på en arbetsyta kan de tilldelas någon av följande roller.

Roll Åtkomstnivå
AzureML-Dataforskare Kan utföra alla åtgärder på en Azure Machine Learning-arbetsyta, förutom att skapa eller ta bort beräkningsresurser och ändra själva arbetsytan.
AzureML-beräkningsoperator Kan skapa, hantera, ta bort och komma åt beräkningsresurser på en arbetsyta.
Läsare Skrivskyddade åtgärder på arbetsytan. Läsare kan lista och visa tillgångar, inklusive autentiseringsuppgifter för datalager , på en arbetsyta. Läsare kan inte skapa eller uppdatera dessa tillgångar.
Deltagare Visa, skapa, redigera eller ta bort (om det är tillämpligt) tillgångar på en arbetsyta. Deltagare kan till exempel skapa ett experiment, skapa eller ansluta ett beräkningskluster, skicka in en körning och distribuera en webbtjänst.
Ägare Fullständig åtkomst till arbetsytan, inklusive möjligheten att visa, skapa, redigera eller ta bort (om det är tillämpligt) tillgångar på en arbetsyta. Dessutom kan du ändra rolltilldelningar.

Dessutom har Azure Machine Learning-register en Azure Machine Learning Registry-användarroll som kan tilldelas till en registerresurs för att bevilja behörigheter på användarnivå till dataforskare. För behörigheter på administratörsnivå för att skapa eller ta bort register använder du rollen Deltagare eller Ägare.

Roll Åtkomstnivå
AzureML-registeranvändare Kan hämta register och läsa, skriva och ta bort tillgångar i dem. Det går inte att skapa nya registerresurser eller ta bort dem.

Du kan kombinera rollerna för att bevilja olika åtkomstnivåer. Du kan till exempel ge en arbetsyteanvändare både azureML-Dataforskare- och AzureML-beräkningsoperatorroller så att användaren kan utföra experiment när han eller hon skapar beräkningar på ett självbetjäningssätt.

Viktigt!

Rollåtkomst kan begränsas till flera nivåer i Azure. Till exempel kanske någon med ägaråtkomst till en arbetsyta inte har ägaråtkomst till den resursgrupp som innehåller arbetsytan. Mer information finns i Så här fungerar Azure RBAC.

Azure AI-administratörsroll

Före 2024-01-19 tilldelades den systemtilldelade hanterade identiteten som skapades för arbetsytan automatiskt rollen Deltagare för resursgruppen som innehåller arbetsytan. Arbetsytor som skapas efter det här datumet har den systemtilldelade hanterade identiteten tilldelad rollen Azure AI-administratör . Den här rollen är mer begränsad till de minsta behörigheter som krävs för att den hanterade identiteten ska kunna utföra sina uppgifter.

Azure AI-administratörsrollen finns för närvarande i offentlig förhandsversion.

Viktigt!

Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.

Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Azure AI-administratörsrollen har följande behörigheter:

{
    "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": []
        }
    ]
}

Konvertera en befintlig systemhanterad identitet till azure AI-administratörsrollen

Dricks

Vi rekommenderar att du konverterar arbetsytor som skapats före 2024-11-19 för att använda Azure AI-administratörsrollen. Azure AI-administratörsrollen är mer begränsad än den tidigare använda deltagarrollen och följer huvudnamnet för lägsta behörighet.

Du kan konvertera arbetsytor som skapats före 2024-11-19 med någon av följande metoder:

  • Azure REST API: Använd en PATCH begäran till Azure REST API för arbetsytan. Brödtexten i begäran ska ange {"properties":{"allowRoleAssignmeentOnRG":true}}. I följande exempel visas en PATCH begäran med .curl Ersätt <your-subscription>, <resource-group-name>, <workspace-name>och <YOUR-ACCESS-TOKEN> med värdena för ditt scenario. Mer information om hur du använder REST-API:er finns i dokumentationen för Azure REST API.

    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>"
    
  • Azure CLI: Använd az ml workspace update kommandot med parametern --allow-roleassignment-on-rg true . I följande exempel uppdateras en arbetsyta med namnet myworkspace. Det här kommandot kräver Azure Machine Learning CLI-tillägget version 2.27.0 eller senare.

    az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
    
  • Azure Python SDK: Ange allow_roleassignment_on_rg egenskapen för arbetsyteobjektet till True och utför sedan en uppdateringsåtgärd. I följande exempel uppdateras en arbetsyta med namnet myworkspace. Den här åtgärden kräver Azure Machine Learning SDK version 1.17.0 eller senare.

    ws = ml_client.workspaces.get(name="myworkspace")
    ws.allow_roleassignment_on_rg = True
    ws = ml_client.workspaces.begin_update(workspace=ws).result()
    

Hantera arbetsyteåtkomst

Om du är ägare till en arbetsyta kan du lägga till och ta bort roller för arbetsytan. Du kan även tilldela roller till användare. Använd följande länkar för att ta reda på hur du hanterar åtkomst:

Använd till exempel Azure CLI för att tilldela rollen Deltagare till joe@contoso.com för resursgruppen this-rg med följande kommando:

az role assignment create --role "Contributor" --assignee "joe@contoso.com" --resource-group this-rg

Använda Microsoft Entra-säkerhetsgrupper för att hantera åtkomst till arbetsytor

Du kan använda Microsoft Entra-säkerhetsgrupper för att hantera åtkomst till arbetsytor. Den här metoden har följande fördelar:

  • Team- eller projektledare kan hantera användaråtkomst till arbetsytan som ägare av säkerhetsgrupper, utan att behöva rollen Ägare på arbetsytans resurs direkt.
  • Du kan organisera, hantera och återkalla användarnas behörigheter på arbetsytan och andra resurser som en grupp, utan att behöva hantera behörigheter från användare till användare.
  • Genom att använda Microsoft Entra-grupper kan du undvika att nå prenumerationsgränsen för rolltilldelningar.

Så här använder du Microsoft Entra-säkerhetsgrupper:

  1. Skapa en säkerhetsgrupp.
  2. Lägg till en gruppägare. Den här användaren har behörighet att lägga till eller ta bort gruppmedlemmar. Gruppägaren behöver inte vara gruppmedlem eller ha en direkt RBAC-roll på arbetsytan.
  3. Tilldela gruppen en RBAC-roll på arbetsytan, till exempel AzureML Dataforskare, Läsare eller Deltagare.
  4. Lägg till gruppmedlemmar. Medlemmarna får åtkomst till arbetsytan.

Skapa anpassad roll

Om de inbyggda rollerna är otillräckliga kan du skapa anpassade roller. Anpassade roller kan ha läs-, skriv-, borttagnings- och beräkningsresursbehörigheter på den arbetsytan. Du kan göra rollen tillgänglig på en specifik arbetsytenivå, en specifik resursgruppsnivå eller en specifik prenumerationsnivå.

Kommentar

Du måste vara ägare till resursen på den nivån för att kunna skapa anpassade roller i resursen.

Skapa en anpassad roll genom att först skapa en JSON-fil för rolldefinition som anger behörighet och omfång för rollen. I följande exempel definieras en anpassad Dataforskare anpassad roll som är begränsad på en specifik arbetsytenivå:

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>"
    ]
}

Dricks

Du kan ändra fältet AssignableScopes för att ange omfånget för den här anpassade rollen på prenumerationsnivå, resursgruppsnivå eller en specifik arbetsytenivå. Den tidigare anpassade rollen är bara ett exempel, se några föreslagna anpassade roller för Azure Machine Learning-tjänsten.

Den här anpassade rollen kan göra allt på arbetsytan förutom följande åtgärder:

  • Det går inte att ta bort arbetsytan.
  • Det går inte att skapa eller uppdatera arbetsytan.
  • Det går inte att skapa eller uppdatera beräkningsresurser.
  • Det går inte att ta bort beräkningsresurser.
  • Det går inte att lägga till, ta bort eller ändra rolltilldelningar.

Om du vill distribuera den här anpassade rollen använder du följande Azure CLI-kommando:

az role definition create --role-definition data_scientist_custom_role.json

Efter distributionen blir den här rollen tillgänglig på den angivna arbetsytan. Nu kan du lägga till och tilldela den här rollen i Azure Portal.

Mer information om anpassade roller finns i Anpassade Azure-roller.

Azure Machine Learning-åtgärder

Mer information om de åtgärder (åtgärder och inte åtgärder) som kan användas med anpassade roller finns i Resursprovideråtgärder. Du kan också använda följande Azure CLI-kommando för att lista åtgärder:

az provider operation show –n Microsoft.MachineLearningServices

Lista anpassade roller

Kör följande kommando i Azure CLI:

az role definition list --subscription <subscriptionId> --custom-role-only true

Om du vill visa rolldefinitionen för en specifik anpassad roll använder du följande Azure CLI-kommando. <roleName> Bör vara i samma format som returnerades av föregående kommando:

az role definition list -n <roleName> --subscription <subscriptionId>

Uppdatera en anpassad roll

Kör följande kommando i Azure CLI:

az role definition update --role-definition update_def.json --subscription <subscriptionId>

Du måste ha behörighet för hela omfånget för den nya rolldefinitionen. Om den här nya rollen till exempel har ett omfång för tre prenumerationer måste du ha behörighet för alla tre prenumerationerna.

Kommentar

Rolluppdateringar kan ta 15 minuter till en timme att gälla för alla rolltilldelningar i det omfånget.

Använda Azure Resource Manager-mallar för repeterbarhet

Om du tror att du behöver återskapa komplexa rolltilldelningar kan en Azure Resource Manager-mall vara till stor hjälp. Mallen machine-learning-dependencies-role-assignment visar hur rolltilldelningar kan anges i källkoden för återanvändning.

Vanliga scenarier

Följande tabell är en sammanfattning av Azure Machine Learning-aktiviteter och de behörigheter som krävs för att utföra dem minst omfång. Om en aktivitet till exempel kan utföras med ett arbetsyteomfång (kolumn 4) fungerar även alla högre omfång med den behörigheten automatiskt. För vissa aktiviteter skiljer sig behörigheterna mellan V1- och V2-API:er.

Viktigt!

Alla sökvägar i den här tabellen som börjar med / är relativa sökvägar till Microsoft.MachineLearningServices/ :

Aktivitet Omfång på prenumerationsnivå Omfång på resursgruppsnivå Omfång på arbetsytenivå
Skapa ny arbetsyta 1 Krävs inte Ägare eller deltagare N/A (blir ägare eller ärver en roll med högre omfång när den har skapats)
Begära Amlcompute-kvot på prenumerationsnivå eller ange kvot för arbetsytenivå Ägare, deltagare eller anpassad roll
Tillåter /locations/updateQuotas/action
på prenumerationsomfång
Saknar behörighet Saknar behörighet
Skapa nytt beräkningskluster Krävs inte Krävs inte Ägare, deltagare eller anpassad roll som tillåter: /workspaces/computes/write
Skapa ny beräkningsinstans Krävs inte Krävs inte Ägare, deltagare eller anpassad roll som tillåter: /workspaces/computes/write
Skicka alla typer av körning (V1) Krävs inte Krävs inte Ägare, deltagare eller anpassad roll tillåter: /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
Skicka alla typer av körning (V2) Krävs inte Krävs inte Ägare, deltagare eller anpassad roll som tillåter: /workspaces/*/read, /workspaces/environments/write, /workspaces/jobs/*, /workspaces/metadata/artifacts/write, /workspaces/metadata/codes/*/write, , /workspaces/environments/build/action/workspaces/environments/readSecrets/action
Publicera pipelines och slutpunkter (V1) Krävs inte Krävs inte Ägare, deltagare eller anpassad roll tillåter: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/modules/*
Publicera pipelines och slutpunkter (V2) Krävs inte Krävs inte Ägare, deltagare eller anpassad roll tillåter: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/components/*
Koppla en AKS-resurs 2 Krävs inte Ägare eller deltagare i resursgruppen som innehåller AKS
Distribuera en registrerad modell på en AKS/ACI-resurs Krävs inte Krävs inte Ägare, deltagare eller anpassad roll som tillåter: /workspaces/services/aks/write, /workspaces/services/aci/write
Poängsättning mot en distribuerad AKS-slutpunkt Krävs inte Krävs inte Ägare, deltagare eller anpassad roll tillåter: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (när du inte använder Microsoft Entra-autentisering) ELLER /workspaces/read (när du använder tokenautentisering)
Åtkomst till lagring med hjälp av interaktiva notebook-filer Krävs inte Krävs inte Ägare, deltagare eller anpassad roll tillåter: /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action, /workspaces/listNotebookAccessToken/read
Skapa ny anpassad roll Ägare, deltagare eller anpassad roll som tillåter Microsoft.Authorization/roleDefinitions/write Krävs inte Ägare, deltagare eller anpassad roll som tillåter: /workspaces/computes/write
Skapa/hantera onlineslutpunkter och distributioner Krävs inte Om du vill distribuera i studio, Microsoft.Resources/deployments/write Ägare, deltagare eller anpassad roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
Hämta autentiseringsuppgifter för onlineslutpunkter Krävs inte Krävs inte Ägare, deltagare eller anpassad roll som tillåter Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action och Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Om du får ett fel när du försöker skapa en arbetsyta för första gången kontrollerar du att din roll tillåter Microsoft.MachineLearningServices/register/action. Med den här åtgärden kan du registrera Azure Machine Learning-resursprovidern med din Azure-prenumeration.

  2. När du ansluter ett AKS-kluster måste du också ha administratörsrollen för Azure Kubernetes-tjänstkluster i klustret.

Distribuera till ett virtuellt nätverk eller undernät

  • Om du vill distribuera resurser till ett virtuellt nätverk eller undernät måste ditt användarkonto ha behörighet till följande åtgärder i rollbaserad åtkomstkontroll i Azure (Azure RBAC):

    • "Microsoft.Network/*/read" på den virtuella nätverksresursen. Den här behörigheten behövs inte för distributioner av Azure Resource Manager-mallar (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" på den virtuella nätverksresursen.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" på undernätsresursen.

    Mer information om Azure RBAC med nätverk finns i inbyggda nätverksroller

Skillnader mellan åtgärder för V1- och V2-API:er

Det finns vissa skillnader mellan åtgärder för V1-API:er och V2-API:er.

Tillgång Åtgärdssökväg för V1 API Åtgärdssökväg för V2 API
Datamängd Microsoft.MachineLearningServices/arbetsytor/datauppsättningar Microsoft.MachineLearningServices/arbetsytor/datauppsättningar/versioner
Experimentkörningar och jobb Microsoft.MachineLearningServices/arbetsytor/experiment Microsoft.MachineLearningServices/arbetsytor/jobb
Modeller Microsoft.MachineLearningServices/arbetsytor/modeller Microsoft.MachineLearningServices/workspaces/models/versions
Ögonblicksbilder och kod Microsoft.MachineLearningServices/arbetsytor/ögonblicksbilder Microsoft.MachineLearningServices/arbetsytor/koder/versioner
Moduler och komponenter Microsoft.MachineLearningServices/arbetsytor/moduler Microsoft.MachineLearningServices/arbetsytor/komponenter

Du kan göra anpassade roller kompatibla med både V1- och V2-API:er genom att inkludera båda åtgärderna eller använda jokertecken som innehåller båda åtgärderna, till exempel Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Skapa en arbetsyta med en kundhanterad nyckel

När du använder en kundhanterad nyckel (CMK) används ett Azure Key Vault för att lagra nyckeln. Användaren eller tjänstens huvudnamn som används för att skapa arbetsytan måste ha ägar- eller deltagaråtkomst till nyckelvalvet.

Om din arbetsyta har konfigurerats med en användartilldelad hanterad identitet måste identiteten beviljas följande roller. Med de här rollerna kan den hanterade identiteten skapa de Azure Storage-, Azure Cosmos DB- och Azure Search-resurser som används när du använder en kundhanterad nyckel:

  • Microsoft.Storage/storageAccounts/write
  • Microsoft.Search/searchServices/write
  • Microsoft.DocumentDB/databaseAccounts/write

I nyckelvalvet måste användaren eller tjänstens huvudnamn ha skapat, hämta, ta bort och rensa åtkomsten till nyckeln via en åtkomstprincip för nyckelvalvet. Mer information finns i Azure Key Vault-säkerhet.

Användartilldelad hanterad identitet med Azure Machine Learning-beräkningskluster

Om du vill tilldela en användartilldelad identitet till ett Azure Machine Learning-beräkningskluster behöver du skrivbehörighet för att skapa beräkningen och rollen hanterad identitetsoperator. Mer information om Azure RBAC med hanterade identiteter finns i Hantera användartilldelad identitet

MLflow-åtgärder

Om du vill utföra MLflow-åtgärder med din Azure Machine Learning-arbetsyta använder du följande omfång för din anpassade roll:

MLflow-åtgärd Omfattning
(V1) Lista, läsa, skapa, uppdatera eller ta bort experiment Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) Lista, läsa, skapa, uppdatera eller ta bort jobb Microsoft.MachineLearningServices/workspaces/jobs/*
Hämta registrerad modell efter namn, hämta en lista över alla registrerade modeller i registret, sök efter registrerade modeller, senaste versionsmodeller för varje begärandesteg, hämta en registrerad modells version, sökmodellversioner, hämta URI där en modellversions artefakter lagras, söka efter körningar av experiment-ID:n Microsoft.MachineLearningServices/workspaces/models/*/read
Skapa en ny registrerad modell, uppdatera en registrerad modells namn/beskrivning, byt namn på en befintlig registrerad modell, skapa en ny version av modellen, uppdatera en modellversions beskrivning, överföra en registrerad modell till ett av stegen Microsoft.MachineLearningServices/workspaces/models/*/write
Ta bort en registrerad modell tillsammans med alla dess versioner, ta bort specifika versioner av en registrerad modell Microsoft.MachineLearningServices/workspaces/models/*/delete

Exempel på anpassade roller

Dataexpert

Gör att en dataexpert kan utföra alla åtgärder på en arbetsyta förutom:

  • Skapande av beräkning
  • Distribuera modeller till ett AKS-produktionskluster
  • Distribuera en pipelineslutpunkt i produktion

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>"
    ]
}

Dataexpert begränsad

En mer begränsad rolldefinition utan jokertecken i de tillåtna åtgärderna. Den kan utföra alla åtgärder i en arbetsyta förutom:

  • Skapande av beräkning
  • Distribuera modeller till ett AKS-produktionskluster
  • Distribuera en pipelineslutpunkt i produktion

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>"
    ]
}

MLflow-dataexpert

Gör att en dataexpert kan utföra alla åtgärder som stöds av MLflow Azure Machine Learning förutom:

  • Skapande av beräkning
  • Distribuera modeller till ett AKS-produktionskluster
  • Distribuera en pipelineslutpunkt i produktion

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

Gör att du kan tilldela en roll till ett huvudnamn för tjänsten och använda den för att automatisera dina MLOps-pipelines. Om du till exempel vill skicka körningar mot en redan publicerad pipeline:

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>"
    ]
}

Arbetsyteadministratör

Gör att du kan utföra alla åtgärder inom en arbetsytas omfång, förutom:

  • Skapa en ny arbetsyta
  • Tilldela prenumerations- eller arbetsytenivåkvoter

Arbetsytans administratör kan inte heller skapa en ny roll. Den kan bara tilldela befintliga inbyggda eller anpassade roller inom arbetsytans omfång:

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>"
    ]
}

Dataetiketter

Det finns en inbyggd roll för dataetiketter, som endast omfattar etikettering av data. Följande anpassade roller ger andra åtkomstnivåer för ett dataetikettprojekt.

Med teamledningen för etikettering kan du granska och avvisa den märkta datauppsättningen och visa etiketteringsinsikter. Förutom den kan du även utföra rollen som etikettare i den här rollen.

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>"
    ]
}

Felsökning

Här följer några saker att tänka på när du använder Azure RBAC:

  • När du skapar en resurs i Azure, till exempel en arbetsyta, är du inte direkt ägare till resursen. Din roll ärvs från den högsta omfångsrollen som du har behörighet mot i den prenumerationen. Om du till exempel är nätverksadministratör och har behörighet att skapa en Machine Learning-arbetsyta tilldelas du rollen Nätverksadministratör mot den arbetsytan. Inte rollen Ägare.

  • Om du vill utföra kvotåtgärder på en arbetsyta behöver du behörighet på prenumerationsnivå. Det innebär att du antingen anger en kvot på prenumerationsnivå eller en kvot på arbetsytenivå för dina hanterade beräkningsresurser om du har skrivbehörighet för prenumerationsomfånget.

  • För att kunna distribuera i studio behöver Microsoft.Resources/deployments/write du AND Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. För SDK/CLI-distributioner behöver Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/writedu . Kontakta din arbetsyta/resursgruppsägare om du vill ha ytterligare behörigheter.

  • När det finns två rolltilldelningar till samma Microsoft Entra-användare med motstridiga avsnitt i Åtgärder/NotActions, kanske dina åtgärder som anges i NotActions från en roll inte börjar gälla om de också visas som Åtgärder i en annan roll. Mer information om hur Azure parsar rolltilldelningar finns i Så här avgör Azure RBAC om en användare har åtkomst till en resurs

  • Det kan ibland ta upp till en timme för dina nya rolltilldelningar att börja gälla i stället för cachelagrade behörigheter i stacken.