Verwalten des Zugriffs auf Azure Machine Learning-Arbeitsbereiche

In diesem Artikel erfahren Sie, wie Sie den Zugriff (Autorisierung) auf Azure Machine Learning-Arbeitsbereiche verwalten. Sie können die rollenbasierte Zugriffssteuerung in Azure (Azure RBAC) verwenden, um den Zugriff auf Azure-Ressourcen zu verwalten (z. B. Berechtigungen für Benutzer*innen zum Erstellen neuer Ressourcen oder Verwenden vorhandener Ressourcen). Benutzern in Ihrer Microsoft Entra ID werden bestimmte Rollen zugewiesen, die Zugriff auf Ressourcen gewähren. Azure bietet sowohl integrierte Rollen als auch die Möglichkeit, benutzerdefinierte Rollen zu erstellen.

Tipp

Während sich dieser Artikel auf Azure Machine Learning konzentriert, stellen einzelne Dienste ihre eigenen RBAC-Einstellungen bereit. Mithilfe der Informationen in diesem Artikel können Sie z. B. konfigurieren, wer Anforderungen zur Bewertung an ein Modell übermitteln kann, das als Webdienst in Azure Kubernetes Service bereitgestellt wird. Azure Kubernetes Service bietet aber einen eigenen Satz von Azure-Rollen. Dienstspezifische RBAC-Informationen, die für Azure Machine Learning hilfreich sein können, finden Sie unter den folgenden Links:

Warnung

Die Anwendung einiger Rollen kann die Funktionalität der Benutzeroberfläche in Azure Machine Learning Studio für andere Benutzer*innen einschränken. Wenn beispielsweise die Rolle von Benutzer*innen nicht die Möglichkeit bietet, eine Compute-Instanz zu erstellen, ist die Option zum Erstellen einer Compute-Instanz in Studio nicht verfügbar. Dieses Verhalten wird erwartet und verhindert, dass der Benutzer Vorgänge versucht, die einen Fehler vom Typ „Zugriff verweigert“ zurückgeben würden.

Standardrollen

Azure Machine Learning-Arbeitsbereiche umfassen integrierte Rollen, die standardmäßig verfügbar sind. Wenn Sie einem Arbeitsbereich Benutzer hinzufügen, kann diesen eine der folgenden Rollen zugewiesen werden.

Role Zugriffsebene
AzureML Data Scientist Kann alle Aktionen innerhalb eines Azure Machine Learning-Arbeitsbereichs ausführen, mit Ausnahme des Erstellens oder Löschens von Computeressourcen und des Änderns des Arbeitsbereichs selbst.
AzureML Compute-Operator Kann innerhalb eines Arbeitsbereichs Computeressourcen erstellen, verwalten, löschen und darauf zugreifen.
Leser Schreibgeschützte Aktionen im Arbeitsbereich. Leser können Ressourcen in einem Arbeitsbereich auflisten und anzeigen – einschließlich der Anmeldeinformationen für Datenspeicher. Leser können diese Ressourcen weder erstellen noch aktualisieren.
Mitwirkender Anzeigen, Erstellen, Bearbeiten und Löschen (wo zutreffend) von Objekten in einem Arbeitsbereich. Mitwirkende können z.B. ein Experiment erstellen, einen Computecluster erstellen oder anfügen, eine Ausführung durchführen oder einen Webdienst bereitstellen.
Besitzer Vollzugriff auf den Arbeitsbereich, u.a. Anzeigen, Erstellen, Bearbeiten und Löschen (wo zutreffend) von Objekten in einem Arbeitsbereich. Zudem können Besitzer Rollenzuweisungen anpassen.

Darüber hinaus verfügen Azure Machine Learning-Registrierungen über eine Azure Machine Learning-Registrierungsbenutzerrolle, die einer Registrierungsressource zugewiesen werden kann, um Data Scientists Berechtigungen auf Benutzerebene zu gewähren. Verwenden Sie für Administratorberechtigungen, die das Erstellen oder Löschen von Registrierungen ermöglichen, die Rolle „Mitwirkender“ oder „Besitzer“.

Rolle Zugriffsebene
AzureML-Registrierungsbenutzer Hiermit können Registrierungen abgerufen und darin enthaltene Ressourcen gelesen, geschrieben und gelöscht werden. Es können keine neue Registrierungsressourcen erstellt oder Registrierungsressourcen gelöscht werden.

Sie können die Rollen kombinieren, um verschiedene Zugriffsstufen zu gewähren. Sie können beispielsweise einem Arbeitsbereichsbenutzer sowohl die Rolle AzureML – Wissenschaftliche Fachkraft für Daten als auch die Rolle AzureML Compute-Operator zuweisen, damit der Benutzer Experimente durchführen kann, während Computeressourcen nach dem Self-Service-Prinzip erstellt werden.

Wichtig

Der Rollenzugriff kann für mehrere Ebenen in Azure gelten. Es kann z. B. sein, dass ein Benutzer mit Vollzugriff für einen Arbeitsbereich für die Ressourcengruppe, die diesen Arbeitsbereich enthält, keinen Vollzugriff hat. Weitere Informationen finden Sie unter Funktionsweise von Azure RBAC.

Verwalten des Arbeitsbereichszugriffs

Wenn Sie Besitzer eines Arbeitsbereichs sind, können Sie für den Arbeitsbereich Rollen hinzufügen und entfernen. Sie können Benutzern auch Rollen zuweisen. Unter den folgenden Links erhalten Sie Informationen zur Zugriffsverwaltung:

Verwenden Sie beispielsweise die Azure CLI, um joe@contoso.com mit dem folgenden Befehl die Rolle Mitwirkender für die Ressourcengruppe this-rg zuzuweisen:

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

Verwenden von Microsoft Entra-Sicherheitsgruppen zum Verwalten des Arbeitsbereichszugriffs

Sie können Microsoft Entra-Sicherheitsgruppen verwenden, um den Zugriff auf Arbeitsbereiche zu verwalten. Dieser Ansatz hat folgende Vorteile:

  • Team- oder Projektleiter können den Zugriff von Benutzern auf den Arbeitsbereich als Besitzer einer Sicherheitsgruppe verwalten, ohne dass sie direkt die Rolle „Besitzer“ für die Arbeitsbereichsressource benötigen.
  • Sie können die Berechtigungen der Benutzer für Arbeitsbereiche und andere Ressourcen als Gruppe organisieren, verwalten und widerrufen, ohne die Berechtigungen für jeden einzelnen Benutzer verwalten zu müssen.
  • Indem Sie Microsoft Entra-Gruppen verwenden, vermeiden Sie das Erreichen des Grenzwerts für Abonnements für Rollenzuweisungen.

So verwenden Sie Microsoft Entra-Sicherheitsgruppen:

  1. Erstellen Sie eine Sicherheitsgruppe.
  2. Fügen Sie einen Besitzer der Gruppe hinzu. Dieser Benutzer hat die Berechtigung, Gruppenmitglieder hinzuzufügen oder zu entfernen. Gruppenbesitzer*innen müssen keine Gruppenmitglieder sein. Zudem müssen sie nicht über eine direkte RBAC-Rolle für den Arbeitsbereich verfügen.
  3. Weisen Sie der Gruppe eine RBAC-Rolle im Arbeitsbereich zu (z. B. AzureML – wissenschaftliche Fachkraft für Daten, Leser oder Mitwirkenden).
  4. Fügen Sie Gruppenmitglieder hinzu. Die Mitglieder erhalten Zugriff auf den Arbeitsbereich.

Erstellen einer benutzerdefinierten Rolle

Wenn die integrierten Rolle nicht ausreichend sind, können Sie benutzerdefinierte Rollen erstellen. Benutzerdefinierte Rollen können über Berechtigung zum Lesen, Schreiben und Löschen sowie Berechtigungen für Computeressourcen in diesem Arbeitsbereich verfügen. Sie können die Rolle auf einer bestimmten Arbeitsbereichsebene, einer bestimmten Ressourcengruppenebene oder einer bestimmten Abonnementebene verfügbar machen.

Hinweis

Sie müssen auf der entsprechenden Ebene Besitzer der Ressource sein, um eine benutzerdefinierte Rolle in dieser Ressource erstellen zu können.

Erstellen Sie zunächst eine JSON-Datei mit einer Rollendefinition, die die Berechtigungen und den Geltungsbereich der Rolle angibt, um eine benutzerdefinierte Rolle zu erstellen. Im folgenden Beispiel wird die benutzerdefinierte Rolle „Data Scientist (benutzerdefiniert)“ für einen bestimmten Geltungsbereich des Arbeitsbereichs definiert:

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

Tipp

Sie können das Feld AssignableScopes anpassen, um den Geltungsbereich für diese benutzerdefinierte Rolle auf Abonnementebene, Ressourcengruppenebene oder eine bestimmte Arbeitsbereichsebene festzulegen. Die zuvor genannte benutzerdefinierte Rolle ist nur ein Beispiel. Einige Vorschläge finden Sie unter Beispiel für benutzerdefinierte Rollen.

Mit dieser benutzerdefinierten Rolle kann ein Benutzer alle Aktionen außer die folgenden in einem Arbeitsbereich durchführen:

  • Er kann den Arbeitsbereich nicht löschen.
  • Er kann den Arbeitsbereich nicht erstellen oder aktualisieren.
  • Er kann keine Computeressourcen erstellen oder aktualisieren.
  • Er kann keine Computeressourcen löschen.
  • Er kann keine Rollenzuweisungen hinzufügen, löschen oder anpassen.

Mit dem folgenden Azure CLI-Befehl können Sie die benutzerdefinierte Rolle bereitstellen:

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

Nach der Bereitstellung ist die Rolle im angegebenen Arbeitsbereich verfügbar. Jetzt können Sie diese Rolle über das Azure-Portal hinzufügen und zuweisen.

Weitere Informationen zu benutzerdefinierten Rollen finden Sie unter Benutzerdefinierte Azure-Rollen.

Azure Machine Learning-Vorgänge

Weitere Informationen zu den Vorgängen (Actions und NotActions), die mit benutzerdefinierten Rollen durchgeführt werden können, finden Sie unter Vorgänge für Ressourcenanbieter. Sie können auch den folgenden Azure CLI-Befehl verwenden, um Vorgänge aufzulisten:

az provider operation show –n Microsoft.MachineLearningServices

Auflisten benutzerdefinierter Rollen

Führen Sie in der Azure-Befehlszeilenschnittstelle den folgenden Befehl aus:

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

Verwenden Sie den folgenden Azure CLI-Befehl, um die Rollendefinition für eine bestimmte benutzerdefinierte Rolle anzuzeigen. <roleName> sollte dasselbe Format aufweisen, das vom obigen Befehl zurückgegeben wird:

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

Aktualisieren einer benutzerdefinierten Rolle

Führen Sie in der Azure-Befehlszeilenschnittstelle den folgenden Befehl aus:

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

Sie müssen über Berechtigungen für den gesamten Bereich der neuen Rollendefinition verfügen. Wenn diese neue Rolle beispielsweise als Bereich drei Abonnements umfasst, müssen Sie über Berechtigungen für alle drei Abonnements verfügen.

Hinweis

Es kann bei einem Rollenupdate zwischen 15 Minuten und einer Stunde dauern, alle Rollenzuweisungen in diesem Bereich anzuwenden.

Verwenden von Azure Resource Manager-Vorlagen für Wiederholbarkeit

Wenn Sie davon ausgehen, dass Sie komplexe Rollenzuweisungen mehrfach erstellen müssen, kann eine Azure Resource Manager-Vorlage eine konkrete Hilfe sein. Die Vorlage machine-learning-dependencies-role-assignment zeigt, wie Rollenzuweisungen im Quellcode für die Wiederverwendung angegeben werden können.

Häufige Szenarios

Die folgende Tabelle ist eine Zusammenfassung der Azure Machine Learning-Aktivitäten und der erforderlichen Berechtigungen, um sie im kleinstmöglichen Umfang auszuführen. Wenn eine Aktivität beispielsweise im Geltungsbereich eines Arbeitsbereichs (Spalte 4) ausgeführt werden kann, funktionieren alle höheren Geltungsbereiche mit dieser Berechtigung automatisch ebenfalls. Bei V1- und V2-APIs unterscheiden sich die Berechtigungen für bestimmte Aktivitäten.

Wichtig

Alle Pfade in dieser Tabelle, die mit / beginnen, sind relative Pfade zu Microsoft.MachineLearningServices/:

Aktivität Bereich der Abonnementebene Bereich einer Ressourcengruppe Bereich eines Arbeitsbereichs
Erstellen eines neuen Arbeitsbereichs 1 Nicht erforderlich „Besitzer“ oder „Mitwirkender“ – (wird nach der Erstellung zum Besitzer oder erbt eine Rolle mit umfassenderem Bereich)
Anfordern eines Amlcompute-Kontingents auf Abonnementebene oder Festlegen eines Kontingents auf Arbeitsbereichsebene „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle
mit der Berechtigung /locations/updateQuotas/action
im Geltungsbereich des Abonnements
Nicht autorisiert Nicht autorisiert
Erstellen eines neuen Computeclusters Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit folgenden Berechtigungen: /workspaces/computes/write
Erstellen einer neuen Computeinstanz Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit folgenden Berechtigungen: /workspaces/computes/write
Übermitteln eines beliebigen Ausführungstyps (V1) Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung: /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
Übermitteln eines beliebigen Ausführungstyps (V2) Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung: /workspaces/*/read, /workspaces/environments/write, /workspaces/jobs/*, /workspaces/metadata/artifacts/write, /workspaces/metadata/codes/*/write, /workspaces/environments/build/action, /workspaces/environments/readSecrets/action
Veröffentlichen von Pipelines und Endpunkten (V1) Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/modules/*
Veröffentlichen von Pipelines und Endpunkten (V2) Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/components/*
Anfügen einer AKS-Ressource 2 Nicht erforderlich Besitzer oder Mitwirkender in der Ressourcengruppe, die AKS enthält
Bereitstellen eines registrierten Modells in einer AKS/ACI-Ressource Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung: /workspaces/services/aks/write, /workspaces/services/aci/write
Bewertung anhand eines bereitgestellten AKS-Endpunkts Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (wenn die Microsoft Entra-Authentifizierung nicht verwendet wird) ODER /workspaces/read (bei Verwendung der Tokenauthentifizierung)
Zugreifen auf Speicher mithilfe interaktiver Notebooks Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung: /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action, /workspaces/listNotebookAccessToken/read
Erstellen einer neuen benutzerdefinierten Rolle „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung Microsoft.Authorization/roleDefinitions/write Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit folgenden Berechtigungen: /workspaces/computes/write
Erstellen/Verwalten von Onlineendpunkten und Bereitstellungen Nicht erforderlich Zum Bereitstellen im Studio Microsoft.Resources/deployments/write „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit der Berechtigung Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
Abrufen von Authentifizierungsanmeldeinformationen für Onlineendpunkte Nicht erforderlich Nicht erforderlich „Besitzer“, „Mitwirkender“ oder benutzerdefinierte Rolle mit den Berechtigungen Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action und Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Wenn beim ersten Erstellen eines Arbeitsbereichs ein Fehler auftritt, stellen Sie sicher, dass Ihre Rolle Folgendes zulässt: Microsoft.MachineLearningServices/register/action. Mit dieser Aktion können Sie den Azure Machine Learning-Ressourcenanbieter bei Ihrem Azure-Abonnement registrieren.

  2. Beim Anfügen eines AKS-Clusters benötigen Sie auch die Administratorrolle für Azure Kubernetes Service-Cluster für den Cluster.

Bereitstellen in einem virtuellen Netzwerk oder Subnetz

  • Ihr Benutzerkonto muss über die rollenbasierte Zugriffssteuerung von Azure (Azure RBAC) zu den folgenden Aktionen berechtigt werden, um Ressourcen in einem virtuellen Netzwerk oder Subnetz bereitstellen zu können:

    • „Microsoft.Network/*/read“ auf der virtuellen Netzwerkressource. Diese Berechtigung ist für ARM-Vorlagenbereitstellungen (Azure Resource Manager) nicht erforderlich.
    • „Microsoft.Network/virtualNetworks/join/action“ auf der virtuellen Netzwerkressource
    • „Microsoft.Network/virtualNetworks/subnets/join/action“ in der Subnetzressource

    Weitere Informationen zur rollenbasierten Zugriffssteuerung von Azure in Netzwerken finden Sie unter Integrierte Netzwerkrollen.

Unterschiede bei Aktionen bei V1- und V2-APIs

Es gibt bei V1-APIs und V2-APIs bestimmte Unterschiede bei Aktionen.

Asset Aktionspfad für V1-API Aktionspfad für V2-API
Dataset Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
Experimentausführungen und Aufträge Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
Modelle Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
Momentaufnahmen und Code Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
Module und Komponenten Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

Sie können benutzerdefinierte Rollen sowohl mit V1- als auch mit V2-APIs kompatibel machen, indem Sie beide Aktionen einschließen oder Wildcards verwenden, die beide Aktionen enthalten (z. B. Microsoft.MachineLearningServices/workspaces/datasets/*/read).

Erstellen eines Arbeitsbereichs mit einem kundenseitig verwalteten Schlüssel

Bei Verwendung eines kundenseitig verwalteten Schlüssels (Customer-managed Key, CMK) wird eine Azure Key Vault-Instanz verwendet, um den Schlüssel zu speichern. Der Benutzer- oder Dienstprinzipal, der zum Erstellen des Arbeitsbereichs verwendet wird, muss über die Zugriffsberechtigung „Besitzer“ oder „Mitwirkender“ für den Schlüsseltresor verfügen.

Wenn Ihr Arbeitsbereich mit einer vom Benutzer zugewiesenen verwalteten Identität konfiguriert ist, muss die Identität den folgenden Rollen zugewiesen werden. Mit diesen Rollen kann die verwaltete Identität die Azure Storage-, Azure Cosmos DB- und Azure Search-Ressourcen erstellen, die bei Verwendung eines vom Kunden verwalteten Schlüssels verwendet werden:

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

Innerhalb des Schlüsseltresors muss der Benutzer oder Dienstprinzipal über die Zugriffsberechtigungen zum Erstellen, Abrufen, Löschen und Bereinigen des Schlüssels über eine Key Vault-Zugriffsrichtlinie verfügen. Weitere Informationen finden Sie unter Azure Key Vault – Sicherheit.

Vom Benutzer zugewiesene verwaltete Identität mit Azure Machine Learning-Computecluster

Um einem Computecluster von Azure Machine Learning eine vom Benutzer zugewiesene Identität zuzuweisen, benötigen Sie Schreibberechtigungen, um die Compute-Instanz und die Rolle des Operators für verwaltete Identität zu erstellen. Weitere Informationen zu Azure RBAC mit verwalteten Identitäten finden Sie unter Verwalten einer vom Benutzer zugewiesenen Identität.

MLflow-Vorgänge

Verwenden Sie die folgenden Bereiche Ihrer benutzerdefinierten Rolle, um MLflow-Vorgänge mit Ihrem Azure Machine Learning-Arbeitsbereich durchzuführen:

MLflow-Vorgang `Scope`
(V1) Auflisten, Lesen, Erstellen, Aktualisieren oder Löschen von Experimenten Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) Auflisten, Lesen, Erstellen, Aktualisieren oder Löschen von Aufträgen Microsoft.MachineLearningServices/workspaces/jobs/*
Abrufen eines registrierten Modells nach Name, Abrufen einer Liste mit allen registrierten Modellen in der Registrierung, Suchen nach registrierten Modellen, Modelle der aktuellen Version für jede Anforderungsphase, Abrufen einer Version des registrierten Modells, Suchen nach Modellversionen, Abrufen des URI, unter dem die Artefakte einer Modellversion gespeichert sind, Suchen nach Ausführungen anhand von Experiment-IDs Microsoft.MachineLearningServices/workspaces/models/*/read
Erstellen eines neuen registrierten Modells, Aktualisieren von Name/Beschreibung eines registrierten Modells, Umbenennen eines vorhandenen registrierten Modells, Erstellen einer neuen Version des Modells, Aktualisieren der Beschreibung einer Modellversion, Durchführen des Übergangs in eine der Phasen für ein registriertes Modell Microsoft.MachineLearningServices/workspaces/models/*/write
Löschen eines registrierten Modells einschließlich aller Versionen, Löschen von bestimmten Versionen eines registrierten Modells Microsoft.MachineLearningServices/workspaces/models/*/delete

Beispiel für benutzerdefinierte Rollen

Data Scientist

Ermöglicht einer wissenschaftlichen Fachkraft für Daten die Ausführung aller Vorgänge in einem Arbeitsbereich, mit folgenden Ausnahmen:

  • Erstellen von Berechnungen
  • Bereitstellen von Modellen in einem AKS-Produktionscluster
  • Bereitstellen eines Pipelineendpunkts in der 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>"
    ]
}

Wissenschaftliche Fachkraft für Daten (eingeschränkt)

Eine restriktivere Rollendefinition ohne Platzhalterzeichen in den zulässigen Aktionen. Diese Rolle kann alle Vorgänge in einem Arbeitsbereich ausführen, mit folgenden Ausnahmen:

  • Erstellen von Berechnungen
  • Bereitstellen von Modellen in einem AKS-Produktionscluster
  • Bereitstellen eines Pipelineendpunkts in der 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: Wissenschaftliche Fachkraft für Daten

Ermöglicht einer wissenschaftlichen Fachkraft für Daten (Data Scientist) die Durchführung aller für MLflow Azure Machine Learning unterstützten Vorgänge, mit Ausnahme von:

  • Erstellen von Berechnungen
  • Bereitstellen von Modellen in einem AKS-Produktionscluster
  • Bereitstellen eines Pipelineendpunkts in der 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

Ermöglicht Ihnen das Zuweisen einer Rolle zu einem Dienstprinzipal und Verwenden dieser Rolle zum Automatisieren Ihrer MLOps-Pipelines. Verwenden Sie beispielsweise folgenden Code, um Ausführungen an eine bereits veröffentlichte Pipeline zu übermitteln:

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

Arbeitsbereichsadministrator

Ermöglicht das Ausführen aller Vorgänge im Geltungsbereich eines Arbeitsbereichs, mit folgenden Ausnahmen:

  • Erstellen eines neuen Arbeitsbereichs
  • Zuweisen von Kontingenten auf Abonnement- oder Arbeitsbereichsebene

Der Arbeitsbereichsadministrator darf auch keine neue Rolle erstellen. Er darf nur vorhandene integrierte oder benutzerdefinierte Rollen im Geltungsbereich des Arbeitsbereichs zuweisen:

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

Datenbeschriftung

Es gibt eine integrierte Rolle für die Datenbeschriftung, die nur auf die Beschriftung von Daten ausgerichtet ist. Die folgenden benutzerdefinierten Rollen gewähren anderen Zugriffsebenen für ein Datenbeschriftungsprojekt.

Als Leitung des Datenbeschriftungsteams können Sie das beschriftete Dataset prüfen und ablehnen und Erkenntnisse zu den Beschriftungen anzeigen. Darüber hinaus können Sie mit dieser Rolle auch die Rolle eines Beschriftungserstellers ausführen.

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

Problembehandlung

Dies sind einige Punkte, die Sie bei der Verwendung der Azure RBAC beachten sollten:

  • Wenn Sie eine Ressource in Azure erstellen, z. B. einen Arbeitsbereich, sind Sie nicht direkt der Besitzer der Ressource. Ihre Rolle wird von der Rolle mit dem höchsten Geltungsbereich geerbt, für die Sie in diesem Abonnement autorisiert sind. Beispiel: Sie sind Netzwerkadministrator und verfügen über die Berechtigung zum Erstellen eines Machine Learning-Arbeitsbereichs. In diesem Fall wird Ihnen die Rolle Netzwerkadministrator für diesen Arbeitsbereich zugewiesen. Ihnen wird nicht die Rolle Besitzer zugewiesen.

  • Sie benötigen Berechtigungen auf Abonnementebene, um Kontingentvorgänge in einem Arbeitsbereich durchzuführen. Das bedeutet, dass das Festlegen eines Kontingents auf Abonnementebene oder auf Arbeitsbereichsebene für Ihre verwalteten Computeressourcen nur möglich ist, wenn Sie über Schreibberechtigungen im Abonnementbereich verfügen.

  • Für die Bereitstellung in Studio benötigen Sie Microsoft.Resources/deployments/write und Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Für SDK- bzw. CLI-Bereitstellungen benötigen Sie Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Wenden Sie sich an den Besitzer Ihres Arbeitsbereichs/Ihrer Ressourcengruppe, um die zusätzlichen Berechtigungen zu erfragen.

  • Wenn Microsoft Entra-Benutzer*innen zwei Rollen mit widersprüchlichen Abschnitten für Actions/NotActions zugewiesen wurden, sind die in NotActions aufgeführten Vorgänge für die eine Rolle möglicherweise nicht wirksam, wenn sie auch als Actions in einer anderen Rolle aufgeführt sind. Weitere Informationen dazu, wie Azure Rollenzuweisungen analysiert, finden Sie unter Ermitteln des Benutzerzugriffs auf eine Ressource durch Azure-RBAC.

  • Es kann bis zu einer Stunde dauern, bis Ihre neuen Rollenzuweisungen über zwischengespeicherte Berechtigungen im gesamten Stapel wirksam werden.