Toegang tot Azure Machine Learning-werkruimten beheren

In dit artikel wordt uitgelegd hoe u de toegang (autorisatie) beheert tot Azure Machine Learning-werkruimten. U kunt op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruiken om de toegang tot Azure-resources te beheren, zodat gebruikers nieuwe resources kunnen maken of bestaande resources kunnen gebruiken. Gebruikers in uw Microsoft Entra-id krijgen specifieke rollen toegewezen, die toegang verlenen tot resources. Azure biedt zowel ingebouwde rollen als de mogelijkheid om aangepaste rollen te maken.

Tip

Hoewel dit artikel zich richt op Azure Machine Learning, bieden afzonderlijke services hun eigen RBAC-instellingen. Met behulp van de informatie in dit artikel kunt u bijvoorbeeld configureren wie scoreaanvragen kan indienen bij een model dat is geïmplementeerd als een webservice in Azure Kubernetes Service. Maar Azure Kubernetes Service biedt een eigen set Azure-rollen. Zie de volgende koppelingen voor servicespecifieke RBAC-informatie die nuttig kan zijn met Azure Machine Learning:

Waarschuwing

Het toepassen van bepaalde rollen kan de functionaliteit van de gebruikersinterface in Azure Machine Learning-studio voor andere gebruikers beperken. Als de rol van een gebruiker bijvoorbeeld niet over de mogelijkheid beschikt om een rekenproces te maken, is de optie voor het maken van een rekenproces niet beschikbaar in Studio. Dit gedrag wordt verwacht en voorkomt dat de gebruiker bewerkingen probeert uit te voeren die een fout 'Toegang geweigerd' retourneren.

Standaardrollen

Azure Machine Learning-werkruimten hebben ingebouwde rollen die standaard beschikbaar zijn. Wanneer u gebruikers toevoegt aan een werkruimte, kunnen ze een van de volgende rollen toewijzen.

Role Toegangsniveau
AzureML-Datawetenschapper Kan alle acties uitvoeren binnen een Azure Machine Learning-werkruimte, met uitzondering van het maken of verwijderen van rekenresources en het wijzigen van de werkruimte zelf.
AzureML Compute-operator Kan rekenresources binnen een werkruimte maken, beheren, verwijderen en openen.
Lezer Alleen-lezenacties in de werkruimte. Lezers kunnen assets, waaronder referenties voor het gegevensarchief , weergeven en weergeven in een werkruimte. Lezers kunnen deze assets niet maken of bijwerken.
Inzender Assets in een werkruimte bekijken, maken, bewerken of verwijderen (waar van toepassing). Zo kunnen inzenders een experiment maken, een rekencluster maken of koppelen, een uitvoering starten en een webservice implementeren.
Eigenaar Volledige toegang tot de werkruimte, inclusief de mogelijkheid om assets in een werkruimte te bekijken, maken, bewerken of verwijderen (waar van toepassing). Daarnaast kunt u roltoewijzingen wijzigen.

Daarnaast hebben Azure Machine Learning-registers een AzureML Registry-gebruikersrol die kan worden toegewezen aan een registerresource om machtigingen op gebruikersniveau te verlenen aan gegevenswetenschappers. Gebruik de rol Inzender of Eigenaar voor machtigingen op beheerdersniveau voor het maken of verwijderen van registers.

Role Toegangsniveau
AzureML Registry-gebruiker U kunt registers ophalen en assets erin lezen, schrijven en verwijderen. Kan geen nieuwe registerbronnen maken of verwijderen.

U kunt de rollen combineren om verschillende toegangsniveaus te verlenen. U kunt bijvoorbeeld een werkruimtegebruiker zowel AzureML-Datawetenschapper- als AzureML Compute Operator-rollen verlenen om de gebruiker in staat te stellen experimenten uit te voeren tijdens het maken van berekeningen op een selfservice-manier.

Belangrijk

Roltoegang kan worden beperkt tot meerdere niveaus in Azure. Iemand met eigenaarstoegang tot een werkruimte heeft bijvoorbeeld mogelijk geen eigenaarstoegang tot de resourcegroep die de werkruimte bevat. Zie Hoe Azure RBAC werkt voor meer informatie.

Toegang tot werkruimten beheren

Als u de eigenaar van een werkruimte bent, kunt u rollen voor de werkruimte toevoegen en verwijderen. U kunt ook rollen toewijzen aan gebruikers. Gebruik de volgende koppelingen om te ontdekken hoe u toegang kunt beheren:

Gebruik bijvoorbeeld de Azure CLI om de rol Inzender toe te wijzen aan joe@contoso.comde resourcegroep this-rg met de volgende opdracht:

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

Microsoft Entra-beveiligingsgroepen gebruiken om toegang tot werkruimten te beheren

U kunt Microsoft Entra-beveiligingsgroepen gebruiken om de toegang tot werkruimten te beheren. Deze aanpak heeft de volgende voordelen:

  • Team- of projectmanagers kunnen gebruikerstoegang tot de werkruimte beheren als eigenaren van beveiligingsgroepen, zonder de rol Eigenaar van de werkruimteresource rechtstreeks nodig te hebben.
  • U kunt machtigingen van gebruikers indelen, beheren en intrekken voor werkruimten en andere resources als groep, zonder dat u machtigingen per gebruiker hoeft te beheren.
  • Als u Microsoft Entra-groepen gebruikt, kunt u voorkomen dat de abonnementslimiet voor roltoewijzingen wordt bereikt.

Microsoft Entra-beveiligingsgroepen gebruiken:

  1. Maak een beveiligingsgroep.
  2. Voeg een groepseigenaar toe. Deze gebruiker heeft machtigingen om groepsleden toe te voegen of te verwijderen. De groepseigenaar hoeft geen groepslid te zijn of directe RBAC-rol in de werkruimte te hebben.
  3. Wijs de groep een RBAC-rol toe aan de werkruimte, zoals AzureML Datawetenschapper, Lezer of Inzender.
  4. Groepsleden toevoegen. De leden krijgen toegang tot de werkruimte.

Aangepast rol maken

Als de ingebouwde rollen niet voldoen, kunt u aangepaste rollen maken. Aangepaste rollen hebben mogelijk machtigingen voor lees-, schrijf-, verwijder- en rekenresources in die werkruimte. U kunt de rol beschikbaar maken op een specifiek werkruimteniveau, een specifiek resourcegroepniveau of een specifiek abonnementsniveau.

Notitie

U moet eigenaar zijn van de resource op dat niveau om aangepaste rollen binnen die resource te maken.

Als u een aangepaste rol wilt maken, maakt u eerst een JSON-bestand met de roldefinitie waarmee de machtiging en het bereik voor de rol worden opgegeven. In het volgende voorbeeld wordt een aangepaste Datawetenschapper Aangepaste rol gedefinieerd op een specifiek werkruimteniveau:

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

Tip

U kunt het AssignableScopes veld wijzigen om het bereik van deze aangepaste rol in te stellen op abonnementsniveau, het niveau van de resourcegroep of een specifiek werkruimteniveau. De bovenstaande aangepaste rol is slechts een voorbeeld. Bekijk enkele voorgestelde aangepaste rollen voor de Azure Machine Learning-service.

Deze aangepaste rol kan alles doen in de werkruimte, met uitzondering van de volgende acties:

  • De werkruimte kan niet worden verwijderd.
  • De werkruimte kan niet worden gemaakt of bijgewerkt.
  • Er kunnen geen rekenresources worden gemaakt of bijgewerkt.
  • Rekenresources kunnen niet worden verwijderd.
  • Het kan geen roltoewijzingen toevoegen, verwijderen of wijzigen.

Gebruik de volgende Azure CLI-opdracht om deze aangepaste rol te implementeren:

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

Na de implementatie is deze rol beschikbaar in de opgegeven werkruimte. U kunt deze rol nu toevoegen en toewijzen in Azure Portal.

Zie Aangepaste Azure-rollen voor meer informatie over aangepaste rollen.

Azure Machine Learning-bewerkingen

Zie Bewerkingen van de resourceprovider voor meer informatie over de bewerkingen (acties en niet acties) die kunnen worden gebruikt met aangepaste rollen. U kunt ook de volgende Azure CLI-opdracht gebruiken om bewerkingen weer te geven:

az provider operation show –n Microsoft.MachineLearningServices

Aangepaste rollen opvragen

Voer in de Azure CLI de volgende opdracht uit:

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

Als u de roldefinitie voor een specifieke aangepaste rol wilt weergeven, gebruikt u de volgende Azure CLI-opdracht. De <roleName> waarde moet dezelfde indeling hebben die wordt geretourneerd door de vorige opdracht:

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

Een aangepaste rol bijwerken

Voer in de Azure CLI de volgende opdracht uit:

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

U moet machtigingen hebben voor het hele bereik van uw nieuwe roldefinitie. Als deze nieuwe rol bijvoorbeeld een bereik heeft voor drie abonnementen, moet u machtigingen hebben voor alle drie abonnementen.

Notitie

Het kan 15 minuten tot een uur duren voordat rolupdates van toepassing zijn op alle roltoewijzingen in dat bereik.

Azure Resource Manager-sjablonen gebruiken voor herhaalbaarheid

Als u verwacht dat u complexe roltoewijzingen opnieuw moet maken, kan een Azure Resource Manager-sjabloon een belangrijke hulp zijn. De sjabloon voor machine learning-afhankelijkheden-roltoewijzing laat zien hoe roltoewijzingen kunnen worden opgegeven in de broncode voor hergebruik.

Algemene scenario's

De volgende tabel is een overzicht van Azure Machine Learning-activiteiten en de machtigingen die nodig zijn om ze ten minste binnen het bereik uit te voeren. Als een activiteit bijvoorbeeld kan worden uitgevoerd met een werkruimtebereik (kolom 4), werken alle hogere bereiken met die machtiging ook automatisch. Voor bepaalde activiteiten verschillen de machtigingen tussen V1- en V2-API's.

Belangrijk

Alle paden in deze tabel die beginnen met / zijn relatieve paden naar Microsoft.MachineLearningServices/ :

Activiteit Bereik op abonnementsniveau Bereik op resourcegroepniveau Bereik op werkruimteniveau
Nieuwe werkruimte maken 1 Niet vereist Eigenaar of inzender N.b. (wordt eigenaar of neemt een hogere bereikrol over na het maken)
Amlcompute-quotum aanvragen of quotum voor werkruimteniveau instellen Eigenaar, inzender of aangepaste rol
Waardoor /locations/updateQuotas/action
op abonnementsbereik
Niet gemachtigd Niet gemachtigd
Nieuw rekencluster maken Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: /workspaces/computes/write
Nieuw rekenproces maken Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: /workspaces/computes/write
Elk type uitvoering verzenden (V1) Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die: /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
Elk type uitvoering verzenden (V2) Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: /workspaces/*/read, /workspaces/environments/write, , /workspaces/metadata/artifacts/write/workspaces/metadata/codes/*/write/workspaces/environments/build/action/workspaces/jobs/*/workspaces/environments/readSecrets/action
Pijplijnen en eindpunten publiceren (V1) Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/modules/*
Pijplijnen en eindpunten publiceren (V2) Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/components/*
Een AKS-resource koppelen 2 Niet vereist Eigenaar of inzender voor de resourcegroep die AKS bevat
Een geregistreerd model implementeren op een AKS/ACI-resource Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: /workspaces/services/aks/write, /workspaces/services/aci/write
Scoren op basis van een geïmplementeerd AKS-eindpunt Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (wanneer u geen Microsoft Entra-verificatie gebruikt) OF /workspaces/read (wanneer u tokenverificatie gebruikt)
Toegang tot opslag met behulp van interactieve notebooks Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action/workspaces/listNotebookAccessToken/read
Nieuwe aangepaste rol maken Eigenaar, inzender of aangepaste rol toestaan Microsoft.Authorization/roleDefinitions/write Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: /workspaces/computes/write
Online-eindpunten en -implementaties maken/beheren Niet vereist Om in studio te implementeren, Microsoft.Resources/deployments/write Eigenaar, inzender of aangepaste rol toestaan Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
Verificatiereferenties ophalen voor online-eindpunten Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die toestaat Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action en Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Als er een fout optreedt bij het maken van een werkruimte voor de eerste keer, moet u ervoor zorgen dat uw rol is toegestaan Microsoft.MachineLearningServices/register/action. Met deze actie kunt u de Azure Machine Learning-resourceprovider registreren bij uw Azure-abonnement.

  2. Wanneer u een AKS-cluster koppelt, moet u ook beschikken over het Azure Kubernetes Service-cluster Beheer rol in het cluster.

Implementeren in een virtueel netwerk of subnet

  • Als u resources wilt implementeren in een virtueel netwerk of subnet, moet uw gebruikersaccount machtigingen hebben voor de volgende acties in op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC):

    • 'Microsoft.Network/*/read' in de resource van het virtuele netwerk. Deze machtiging is niet nodig voor arm-sjabloonimplementaties (Azure Resource Manager).
    • 'Microsoft.Network/virtualNetworks/join/action' in de resource van het virtuele netwerk.
    • 'Microsoft.Network/virtualNetworks/subnetten/join/action' in de subnetresource.

    Zie de ingebouwde netwerkrollen voor meer informatie over Azure RBAC met netwerken

Verschillen tussen acties voor V1- en V2-API's

Er zijn bepaalde verschillen tussen acties voor V1-API's en V2-API's.

Activa Actiepad voor V1-API Actiepad voor V2-API
Gegevensset Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
Experimentuitvoeringen en -taken Microsoft.MachineLearningServices/workspaces/experimenten Microsoft.MachineLearningServices/workspaces/jobs
Modellen Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
Momentopnamen en code Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
Modules en onderdelen Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

U kunt aangepaste rollen compatibel maken met zowel V1- als V2-API's door beide acties op te nemen of jokertekens te gebruiken die beide acties bevatten, bijvoorbeeld Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Een werkruimte maken met een door de klant beheerde sleutel

Wanneer u een door de klant beheerde sleutel (CMK) gebruikt, wordt een Azure Key Vault gebruikt om de sleutel op te slaan. De gebruiker of service-principal die wordt gebruikt om de werkruimte te maken, moet eigenaar- of inzendertoegang hebben tot de sleutelkluis.

Binnen de sleutelkluis moet de gebruiker of service-principal toegang tot de sleutel hebben gemaakt, ophalen, verwijderen en opschonen via een toegangsbeleid voor een sleutelkluis. Zie Azure Key Vault-beveiliging voor meer informatie.

Door de gebruiker toegewezen beheerde identiteit met Azure Machine Learning-rekencluster

Als u een door de gebruiker toegewezen identiteit wilt toewijzen aan een Azure Machine Learning-rekencluster, hebt u schrijfmachtigingen nodig om de rekenkracht en de rol van operator voor beheerde identiteiten te maken. Lees hoe u door de gebruiker toegewezen identiteiten beheert voor meer informatie over Azure RBAC met beheerde identiteiten

MLflow-bewerkingen

Als u MLflow-bewerkingen wilt uitvoeren met uw Azure Machine Learning-werkruimte, gebruikt u de volgende bereiken voor uw aangepaste rol:

MLflow-bewerking Bereik
(V1) Experimenten weergeven, lezen, maken, bijwerken of verwijderen Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) Taken weergeven, lezen, maken, bijwerken of verwijderen Microsoft.MachineLearningServices/workspaces/jobs/*
Geregistreerd model ophalen op naam, een lijst ophalen van alle geregistreerde modellen in het register, zoeken naar geregistreerde modellen, meest recente versiemodellen voor elke aanvraagfase, de versie van een geregistreerd model ophalen, modelversies zoeken, URI ophalen waar de artefacten van een modelversie worden opgeslagen, zoeken naar uitvoeringen op experiment-id's Microsoft.MachineLearningServices/workspaces/models/*/read
Een nieuw geregistreerd model maken, de naam/beschrijving van een geregistreerd model bijwerken, de naam van een bestaand geregistreerd model wijzigen, een nieuwe versie van het model maken, de beschrijving van een modelversie bijwerken, een geregistreerd model overzetten naar een van de fasen Microsoft.MachineLearningServices/workspaces/models/*/write
Een geregistreerd model samen met alle bijbehorende versies verwijderen, specifieke versies van een geregistreerd model verwijderen Microsoft.MachineLearningServices/workspaces/models/*/delete

Voorbeeld van aangepaste rollen

Data scientist

Hiermee kan een data scientist alle bewerkingen in een werkruimte uitvoeren, behalve:

  • Berekening maken
  • Modellen implementeren in een AKS-productiecluster
  • Een pijplijneindpunt implementeren in productie

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

Data scientist beperkt

Een meer beperkte roldefinitie zonder jokertekens in de toegestane acties. Alle bewerkingen in een werkruimte kunnen worden uitgevoerd, met uitzondering van:

  • Berekening maken
  • Modellen implementeren in een AKS-productiecluster
  • Een pijplijneindpunt implementeren in productie

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 data scientist

Hiermee kan een data scientist alle ondersteunde MLflow Azure Machine Learning-bewerkingen uitvoeren, behalve:

  • Berekening maken
  • Modellen implementeren in een AKS-productiecluster
  • Een pijplijneindpunt implementeren in productie

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

Hiermee kunt u een rol toewijzen aan een service-principal en deze gebruiken om uw MLOps-pijplijnen te automatiseren. Als u bijvoorbeeld uitvoeringen wilt verzenden op een al gepubliceerde pijplijn:

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

Werkruimte-Beheer

Hiermee kunt u alle bewerkingen uitvoeren binnen het bereik van een werkruimte, met uitzondering van:

  • Een nieuwe werkruimte maken
  • Quota op abonnements- of werkruimteniveau toewijzen

De werkruimtebeheerder kan ook geen nieuwe rol maken. Het kan alleen bestaande ingebouwde of aangepaste rollen toewijzen binnen het bereik van hun werkruimte:

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

Gegevens labelen

Er is een ingebouwde rol voor het labelen van gegevens, alleen gericht op het labelen van gegevens. De volgende aangepaste rollen bieden andere toegangsniveaus voor een gegevenslabelproject.

Met de labelteamleider kunt u de gelabelde gegevensset controleren en afwijzen en inzichten voor labelen weergeven. Daarnaast kunt u met deze rol ook de rol van een labelaar uitvoeren.

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

Probleemoplossing

Hier volgen enkele dingen waar u rekening mee moet houden terwijl u Azure RBAC gebruikt:

  • Wanneer u een resource maakt in Azure, zoals een werkruimte, bent u niet rechtstreeks de eigenaar van de resource. Uw rol wordt overgenomen van de rol van het hoogste bereik waarvoor u bent gemachtigd in dat abonnement. Als voorbeeld als u een netwerk-Beheer istrator bent en de machtigingen hebt om een Machine Learning-werkruimte te maken, krijgt u de rol Network Beheer istrator toegewezen voor die werkruimte en niet aan de rol Eigenaar.

  • Als u quotumbewerkingen wilt uitvoeren in een werkruimte, hebt u machtigingen op abonnementsniveau nodig. Dit betekent dat het instellen van het quotum op abonnementsniveau of het quotum op werkruimteniveau voor uw beheerde rekenrecources alleen kan plaatsvinden als u schrijfmachtigingen hebt op het abonnementsbereik.

  • Als u in studio wilt implementeren, hebt u AND Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/writenodigMicrosoft.Resources/deployments/write. Voor SDK-/CLI-implementaties hebt u het nodig Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Neem contact op met de eigenaar van uw werkruimte/resourcegroep voor de extra machtigingen.

  • Wanneer er twee roltoewijzingen zijn voor dezelfde Microsoft Entra-gebruiker met conflicterende secties van Actions/NotActions, worden uw bewerkingen die worden vermeld in NotActions van de ene rol mogelijk niet van kracht als ze ook worden vermeld als Acties in een andere rol. Lees Hoe op rollen gebaseerd toegangsbeheer van Azure bepaalt of een gebruiker toegang heeft tot een resource voor meer informatie over hoe Azure roltoewijzingen parseert

  • Het kan soms tot één uur duren voordat uw nieuwe roltoewijzingen van kracht worden via machtigingen in de cache in de stack.

Volgende stappen