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 enPATCH
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 namnetmyworkspace
. 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 tillTrue
och utför sedan en uppdateringsåtgärd. I följande exempel uppdateras en arbetsyta med namnetmyworkspace
. 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:
- Skapa en säkerhetsgrupp.
- 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.
- Tilldela gruppen en RBAC-roll på arbetsytan, till exempel AzureML Dataforskare, Läsare eller Deltagare.
- 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 |
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.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 ANDMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write
. För SDK/CLI-distributioner behöverMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write
du . 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.