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 AzureML-registeranvä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.

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å. Ovanstående anpassade roll ä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-portalen.

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 förväntar dig 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.

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

Administratör för arbetsyta

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, skulle du tilldelas rollen Nätverksadministratör mot den arbetsytan och 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.

Nästa steg