De toegang tot een Azure Machine Learning-werkruimte beheren

In dit artikel leert u hoe u toegang (autorisatie) tot een Azure Machine Learning-werkruimte beheert. Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) wordt gebruikt voor het beheren van toegang tot Azure-resources, zoals de mogelijkheid om nieuwe resources te maken of bestaande resources te gebruiken. Gebruikers in uw Azure Active Directory (Azure AD) 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 waar Azure ML afhankelijk van is 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 op 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 sommige rollen kan de ui-functionaliteit in Azure Machine Learning-studio voor andere gebruikers beperken. Als de rol van een gebruiker bijvoorbeeld niet de mogelijkheid heeft om een rekenproces te maken, is de optie voor het maken van een rekenproces niet beschikbaar in Studio. Dit gedrag is verwacht en voorkomt dat de gebruiker bewerkingen probeert uit te voeren die een fout toegang geweigerd zouden retourneren.

Standaardrollen

Azure Machine Learning-werkruimten hebben vijf ingebouwde rollen die standaard beschikbaar zijn. Wanneer gebruikers aan een werkruimte worden toegevoegd, kunnen ze een van de ingebouwde rollen toegewezen krijgen die hieronder worden beschreven.

Rol Toegangsniveau
AzureML Datawetenschapper Kan alle acties binnen een Azure Machine Learning-werkruimte uitvoeren, 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 en openen.
Lezer Alleen-lezenacties in de werkruimte. Lezers kunnen assets, inclusief gegevensarchiefreferenties , weergeven en weergeven in een werkruimte. Lezers kunnen deze assets niet maken of bijwerken.
Inzender Assets in een werkruimte weergeven, maken, bewerken of verwijderen (indien 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 weer te geven, te maken, te bewerken of te verwijderen (indien van toepassing). Daarnaast kunt u roltoewijzingen wijzigen.

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

Rol Toegangsniveau
AzureML-registergebruiker Kan registers ophalen en assets erin lezen, schrijven en verwijderen. Kan geen nieuwe registerresources maken of verwijderen.

U kunt de rollen combineren om verschillende toegangsniveaus te verlenen. U kunt een werkruimtegebruiker bijvoorbeeld de rollen AzureML Datawetenschapper en Azure ML Compute Operator verlenen, zodat de gebruiker experimenten kan uitvoeren 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 een 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 beheert:

Toegang tot werkruimten beheren met Azure AD-beveiligingsgroepen

U kunt Azure AD beveiligingsgroepen gebruiken om de toegang tot werkruimten te beheren. Deze aanpak heeft de volgende voordelen:

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

Ga als volgende te werk om Azure AD beveiligingsgroepen te gebruiken:

  1. Maak een beveiligingsgroep.
  2. Voeg een groepseigenaar toe. Deze gebruiker heeft machtigingen om groepsleden toe te voegen of te verwijderen. Houd er rekening mee dat de groepseigenaar geen groepslid hoeft te zijn of een directe RBAC-rol voor de werkruimte hoeft 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 vervolgens toegang tot de werkruimte.

Aangepast rol maken

Als de ingebouwde rollen niet voldoen, kunt u aangepaste rollen maken. Aangepaste rollen hebben mogelijk machtigingen voor lezen, schrijven, verwijderen en berekenen van resources in die werkruimte. U kunt de rol beschikbaar maken op een specifiek werkruimteniveau, een specifiek resourcegroepniveau of een specifiek abonnementsniveau.

Notitie

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

Als u een aangepaste rol wilt maken, maakt u eerst een JSON-bestand met roldefinities waarin de machtiging en het bereik voor de rol worden opgegeven. In het volgende voorbeeld wordt een aangepaste rol met de naam 'Datawetenschapper Aangepast' 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/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace_name>"
    ]
}

Tip

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

Deze aangepaste rol kan alles in de werkruimte doen, 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.
  • Roltoewijzingen kunnen niet worden toegevoegd, verwijderd of gewijzigd.

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

az role definition create --role-definition data_scientist_role.json

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

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

Azure Machine Learning-bewerkingen

Zie Bewerkingen van resourceproviders 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 <sub-id> --custom-role-only true

Gebruik de volgende Azure CLI-opdracht om de roldefinitie voor een specifieke aangepaste rol weer te geven. De <role-name> moet dezelfde indeling hebben die wordt geretourneerd door de bovenstaande opdracht:

az role definition list -n <role-name> --subscription <sub-id>

Een aangepaste rol bijwerken

Voer in de Azure CLI de volgende opdracht uit:

az role definition update --role-definition update_def.json --subscription <sub-id>

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

Notitie

Het kan 15 minuten tot een uur duren voordat rolupdates zijn toegepast 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 machine-learning-dependencies-role-assignment laat zien hoe roltoewijzingen kunnen worden opgegeven in de broncode voor hergebruik.

Algemene scenario's

De volgende tabel bevat een overzicht van Azure Machine Learning-activiteiten en de machtigingen die nodig zijn om ze uit te voeren binnen het minimale bereik. Als een activiteit bijvoorbeeld kan worden uitgevoerd met een werkruimtebereik (kolom 4), werkt alle hogere bereik met die machtiging ook automatisch. Houd er rekening mee dat voor bepaalde activiteiten de machtigingen verschillen 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.a. (wordt eigenaar of neemt de rol met een hoger bereik over na het maken)
Abonnementsniveau Amlcompute-quotum aanvragen of quotum voor werkruimteniveau instellen Eigenaar, inzender of aangepaste rol
die het abonnement toestaat /locations/updateQuotas/action
Niet geautoriseerd Niet geautoriseerd
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 het volgende toestaat: "/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/jobs/*", "/workspaces/metadata/artifacts/write", "/workspaces/metadata/codes/*/write", "/workspaces/environments/build/action", "/workspaces/environments/readSecrets/action"
Pijplijnen en eindpunten publiceren (V1) Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*"
Pijplijnen en eindpunten publiceren (V2) Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die het volgende toestaat: "/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 een geïmplementeerd AKS-eindpunt Niet vereist Niet vereist Eigenaar, inzender of aangepaste rol die tokenverificatie toestaat: "/workspaces/services/aks/score/action", "/workspaces/services/aks/listkeys/action" (wanneer u geen Azure Active Directory-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 Niet vereist 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 en Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/actiontoestaatMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/token/action.

1: Als u een fout ontvangt wanneer u voor het eerst een werkruimte probeert te maken, moet u ervoor zorgen dat uw rol toestaat 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 de Azure Kubernetes Service clusterrol Beheer hebben op het cluster.

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

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

Asset Actiepad voor V1-API Actiepad voor V2-API
Gegevensset Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
Experimentuitvoeringen en -taken Microsoft.MachineLearningServices/workspaces/experiments 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 behulp van 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 eigenaars- of inzendertoegang hebben tot de sleutelkluis.

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

Door de gebruiker toegewezen beheerde identiteit met Azure ML-rekencluster

Als u een door de gebruiker toegewezen identiteit wilt toewijzen aan een Azure Machine Learning-rekencluster, hebt u schrijfmachtigingen nodig om de berekening en de rol Operator voor beheerde identiteit te maken. Lees Door de gebruiker toegewezen identiteit beheren 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 met alle geregistreerde modellen in het register ophalen, zoeken naar geregistreerde modellen, meest recente versiemodellen voor elke aanvraagfase, de versie van een geregistreerd model ophalen, modelversies zoeken, URI ophalen waar 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 , met uitzondering van:

  • Berekeningen 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/<subscription_id>"
    ]
}

Data scientist beperkt

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

  • Berekeningen 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/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/<subscription_id>"
    ]
}

MLflow-data scientist

Hiermee kan een data scientist alle door MLflow AzureML ondersteunde bewerkingen uitvoeren , met uitzondering van:

  • Berekeningen 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/<subscription_id>"
    ]
}

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 voor een reeds 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/<subscription_id>"
    ]
}

Werkruimte-Beheer

Hiermee kunt u alle bewerkingen binnen het bereik van een werkruimte uitvoeren, 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/<subscription_id>"
    ]
}

Gegevens labelen

Hiermee kunt u een rol definiëren die alleen is gericht op het labelen van gegevens:

labeler_custom_role.json :

{
    "Name": "Labeler Custom",
    "IsCustom": true,
    "Description": "Can label data for Labeling",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write"   
    ],
    "NotActions": [        
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

Problemen oplossen

Hier volgen enkele zaken waar u rekening mee moet houden wanneer u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruikt:

  • Wanneer u een resource in Azure maakt, zoals een werkruimte, bent u niet rechtstreeks de eigenaar van de resource. Uw rol wordt overgenomen van de rol met het hoogste bereik waarvoor u bent gemachtigd in dat abonnement. Als u bijvoorbeeld een netwerkbeheerder bent en de machtigingen hebt om een Machine Learning-werkruimte te maken, krijgt u de rol Netwerkbeheerder toegewezen voor die werkruimte en niet 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.

  • Wanneer er twee roltoewijzingen zijn aan dezelfde Azure Active Directory-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 Actions 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

  • Als u uw rekenresources binnen een VNet wilt implementeren, moet u expliciet machtigingen hebben voor de volgende acties:

    • Microsoft.Network/virtualNetworks/*/read op de VNet-resources.
    • Microsoft.Network/virtualNetworks/subnets/join/action op de subnetresource.

    Zie Netwerken ingebouwde rollen voor meer informatie over op rollen gebaseerd toegangsbeheer van Azure.

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

Volgende stappen