Gérer l’accès aux espaces de travail Azure Machine Learning

Cet article explique comment gérer l’accès (autorisation) aux espaces de travail Azure Machine Learning. Vous pouvez utiliser le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour gérer l’accès aux ressources Azure, donnant ainsi la possibilité aux utilisateurs de créer des ressources ou d’utiliser celles qui existent déjà. Les utilisateurs de votre Microsoft Entra ID reçoivent des rôles spécifiques, qui octroient l’accès aux ressources. Azure propose des rôles intégrés et permet de créer des rôles personnalisés.

Conseil

Bien que cet article se concentre sur Azure Machine Learning, les services fournissent chacun leurs propres paramètres RBAC. Par exemple, à l’aide des informations contenues dans cet article, vous pouvez configurer qui peut envoyer des demandes de scoring à un modèle déployé en tant que service web sur Azure Kubernetes Service. Toutefois, Azure Kubernetes Service fournit son propre ensemble de rôles Azure. Pour obtenir des informations RBAC spécifiques au service susceptibles d’être utiles avec Azure Machine Learning, consultez les liens suivants :

Avertissement

L’application de certains rôles risque de limiter les fonctionnalités de l’interface utilisateur dans Azure Machine Learning studio pour d’autres utilisateurs. Par exemple, si le rôle d’un utilisateur ne permet pas de créer une instance de calcul, l’option de création d’une instance de calcul n’est pas disponible dans le studio. Ce comportement est attendu et empêche l’utilisateur de tenter des opérations qui retourneraient une erreur d’accès refusé.

Rôles par défaut

Les espaces de travail Azure Machine Learning ont des rôles intégrés disponibles par défaut. Lorsque vous ajoutez des utilisateurs à un espace de travail, vous pouvez leur attribuer l’un des rôles suivants.

Rôle Niveau d’accès
Scientifique des données AzureML Peut effectuer toutes les actions au sein d’un espace de travail Azure Machine Learning, à l’exception de la création ou de la suppression des ressources de calcul et de la modification de l’espace de travail lui-même.
Opérateur de calcul AzureML Peut créer des ressources de calcul, les gérer, les supprimer et y accéder au sein d’un espace de travail.
Lecteur Actions en lecture seule dans l’espace de travail. Les lecteurs peuvent lister et visualiser des ressources , y compris les informations d'identification du magasin de données, dans un espace de travail. Les lecteurs ne peuvent pas créer ou mettre à jour ces ressources.
Contributeur Afficher, créer, modifier ou supprimer (le cas échéant) des ressources dans un espace de travail. À titre d'exemple, les contributeurs peuvent créer une expérience, créer ou joindre un cluster de calcul, envoyer une exécution et déployer un service web.
Propriétaire Accès total à l’espace de travail, avec possibilité d’afficher, de créer, de modifier ou de supprimer (le cas échéant) des ressources dans un espace de travail. Vous pouvez modifier les attributions de rôles.

De plus, les registres Azure Machine Learning ont un rôle Utilisateur du Registre AzureML qui peut être attribué à une ressource de registre pour octroyer des autorisations de niveau utilisateur aux scientifiques des données. Pour obtenir des autorisations de niveau administrateur afin de créer ou supprimer des registres, utilisez le rôle Contributeur ou Propriétaire.

Rôle Niveau d’accès
Utilisateur du Registre AzureML Peut obtenir des registres et lire, écrire et supprimer des ressources en leur sein. Ne peut pas créer de ressources de registre ni en supprimer.

Vous pouvez combiner les rôles pour accorder différents niveaux d’accès. Par exemple, vous pouvez accorder à un utilisateur d’espace de travail des rôles Scientifique des données AzureML et Opérateur de calcul Azure M-L pour permettre à l’utilisateur d’effectuer des expériences lors de la création de calculs d’une manière libre-service.

Important

L'accès en fonction du rôle peut être limité à plusieurs niveaux dans Azure. Par exemple, un utilisateur disposant d’un accès propriétaire à un espace de travail peut ne pas disposer d'un accès propriétaire à un groupe de ressources contenu dans cet espace de travail. Pour plus d’informations, consultez Fonctionnement du contrôle d’accès en fonction du rôle Azure (Azure RBAC).

Gérer les accès à l’espace de travail

En tant que propriétaire d’un espace de travail, vous pouvez ajouter et supprimer des rôles pour cet espace de travail. Vous pouvez également attribuer des rôles aux utilisateurs. Utilisez les liens suivants pour savoir comment gérer les accès :

Par exemple, utilisez l’interface de ligne de commande Azure pour attribuer le rôle Contributeur à joe@contoso.com pour le groupe de ressources this-rg avec la commande suivante :

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

Utiliser des groupes de sécurité Microsoft Entra pour gérer l’accès à l’espace de travail

Vous pouvez utiliser des groupes de sécurité Microsoft Entra pour gérer l’accès aux espaces de travail. Cette approche offre les avantages suivants :

  • Les responsables d’équipe ou de projet peuvent gérer l’accès utilisateur à l’espace de travail en tant que propriétaires de groupes de sécurité, sans avoir besoin du rôle Propriétaire sur la ressource de l’espace de travail directement.
  • Vous pouvez organiser, gérer et révoquer les autorisations des utilisateurs sur l’espace de travail et d’autres ressources en tant que groupe, sans avoir à gérer les autorisations sur la base de l’utilisateur par utilisateur.
  • L’utilisation de groupes Microsoft Entra vous permet d’éviter d’atteindre la limite d’abonnements sur les attributions de rôles.

Afin d’utiliser les groupes de sécurité Microsoft Entra :

  1. Créer un groupe de sécurité.
  2. Ajouter un propriétaire de groupe. Cet utilisateur dispose des autorisations nécessaires pour ajouter ou supprimer des membres de groupe. Le propriétaire du groupe n’est pas tenu d’être membre du groupe ni d’avoir un rôle RBAC direct sur l’espace de travail.
  3. Attribuez au groupe un rôle RBAC sur l’espace de travail, tel que Scientifique des données, Lecteur ou Contributeur AzureML.
  4. Ajouter des membres à un groupe Les membres ont accès à l’espace de travail.

Créer un rôle personnalisé

Si les rôles intégrés ne suffisent pas, vous pouvez créer des rôles personnalisés. Les rôles personnalisés sont susceptibles d’avoir des autorisations en lecture, écriture, suppression et calcul de ressource dans cet espace de travail. Vous pouvez rendre le rôle disponible au niveau d’un espace de travail spécifique, d’un groupe de ressources spécifique ou d’un abonnement spécifique.

Notes

Vous devez être propriétaire de la ressource à ce niveau pour créer des rôles personnalisés au sein de cette ressource.

Pour créer un rôle personnalisé, commencez par créer un fichier de définition de rôle JSON spécifiant l’autorisation et l’étendue du rôle. L’exemple suivant définit un rôle personnalisé « Data Scientist Custom » délimité à un niveau spécifique de l’espace de travail :

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

Conseil

Vous pouvez modifier le champ AssignableScopes pour définir l’étendue de ce rôle personnalisé au niveau de l’abonnement, du groupe de ressources ou d'un espace de travail spécifique. Le rôle personnalisé ci-dessus n’est qu’un exemple ; consultez quelques suggestions de rôles personnalisés pour le service Azure Machine Learning.

Ce rôle personnalisé peut tout faire dans l'espace de travail, à l'exception de ce qui suit :

  • Il ne peut pas supprimer l’espace de travail.
  • Il ne peut pas créer ni mettre à jour l’espace de travail.
  • Il ne peut pas créer ni mettre à jour les ressources de calcul.
  • Il ne peut pas supprimer une ressource de calcul.
  • Il ne peut pas ajouter, supprimer ou modifier des attributions de rôles.

Pour déployer ce rôle personnalisé, exécutez la commande Azure CLI suivante :

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

Une fois déployé, ce rôle est disponible dans l’espace de travail spécifié. Vous pouvez à présent ajouter et attribuer ce rôle dans le portail Azure.

Pour plus d’informations sur les rôles personnalisés, consultez Rôles personnalisés Azure.

Opérations d’Azure Machine Learning

Pour plus d’informations sur les opérations (actions et autres) utilisables avec des rôles personnalisés, consultez Opérations de fournisseur de ressources. Vous pouvez également utiliser la commande Azure CLI suivante pour répertorier les opérations :

az provider operation show –n Microsoft.MachineLearningServices

Répertorier les rôles personnalisés

Dans Azure CLI, exécutez la commande suivante :

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

Pour afficher la définition de rôle d’un rôle personnalisé spécifique, utilisez la commande Azure CLI suivante. <roleName> doit être au même format que celui retourné par la commande précédente :

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

Mettre à jour un rôle personnalisé

Dans Azure CLI, exécutez la commande suivante :

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

Vous devez disposer d’autorisations sur l’ensemble de l’étendue de votre nouvelle définition de rôle. Par exemple, si ce nouveau rôle a une étendue sur trois abonnements, vous devez disposer d’autorisations sur les trois abonnements.

Notes

Les mises à jour de rôle peuvent prendre entre 15 minutes et 1 heure pour s’appliquer à toutes les attributions de rôles de cette étendue.

Utiliser des modèles Azure Resource Manager pour la répétabilité

Si vous pensez que vous allez devoir recréer des attributions de rôles complexes, un modèle de Azure Resource Manager peut vous être d’une aide précieuse. Le modèle machine-learning-dependencies-role-assignment montre comment spécifier des attributions de rôles dans le code source en vue de leur réutilisation.

Scénarios courants

Le tableau suivant résume les activités Azure Machine Learning et les autorisations requises pour les exécuter à l’étendue la plus restreinte. Par exemple, si une activité peut être exécutée avec une étendue d’espace de travail (colonne 4), elle fonctionne aussi automatiquement avec toutes les étendues supérieures dotées de cette autorisation. Pour certaines activités, les autorisations diffèrent entre les API V1 et V2.

Important

Tous les chemins d’accès de ce tableau qui commencent par / sont des chemin d'accès relatifs à Microsoft.MachineLearningServices/ :

Activité Étendue de niveau abonnement Étendue de niveau groupe de ressources Étendue de niveau espace de travail
Créer un espace de travail 1 Non requis Propriétaire ou contributeur s.o. (devient Propriétaire ou hérite d’un rôle d’étendue supérieur après la création)
Demander un quota Amlcompute au niveau de l’abonnement ou définir le quota au niveau de l’espace de travail Propriétaire, contributeur ou rôle personnalisé
autorisant /locations/updateQuotas/action
dans l’étendue de l’abonnement
Non autorisé Non autorisé
Créer un cluster de calcul Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/computes/write
Créer une instance de calcul Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/computes/write
Envoi de tout type d’exécution (V1) Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /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
Envoi de tout type d’exécution (V2) Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/*/read, /workspaces/environments/write, /workspaces/jobs/*, /workspaces/metadata/artifacts/write, /workspaces/metadata/codes/*/write, /workspaces/environments/build/action, /workspaces/environments/readSecrets/action
Publication de pipelines et de points de terminaison (V1) Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/modules/*
Publication de pipelines et de points de terminaison (V2) Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/components/*
Attacher une ressource AKS 2 Non requis Propriétaire ou contributeur sur le groupe de ressources dans lequel se trouve AKS
Déploiement d’un modèle inscrit sur une ressource AKS/ACI Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/services/aks/write, /workspaces/services/aci/write
Scoring par rapport à un point de terminaison AKS déployé Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (lorsque vous n’utilisez pas l’authentification Microsoft Entra) OU /workspaces/read (lorsque vous utilisez l’authentification par jeton)
Accès au stockage à l’aide de notebooks interactifs Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action, /workspaces/listNotebookAccessToken/read
Créer un nouveau rôle personnalisé Propriétaire, contributeur ou rôle personnalisé autorisant Microsoft.Authorization/roleDefinitions/write Non requis Propriétaire, contributeur ou rôle personnalisé autorisant : /workspaces/computes/write
Créer/gérer des points de terminaison en ligne managés et des déploiements Non requis Pour déployer sur Studio, Microsoft.Resources/deployments/write Propriétaire, contributeur ou rôle personnalisé autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
Récupérer les informations d’identification d’authentification pour les points de terminaison en ligne Non requis Non requis Propriétaire, contributeur ou rôle personnalisé autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action et Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Si vous recevez un message d’erreur lors de la tentative de création d’un espace de travail pour la première fois, assurez-vous que votre rôle autorise Microsoft.MachineLearningServices/register/action. Cette action vous permet d’inscrire le fournisseur de ressources Azure Machine Learning auprès de votre abonnement Azure.

  2. Lorsque vous attachez un cluster AKS, vous devez également avoir le rôle d’administrateur de cluster Azure Kubernetes Service sur le cluster.

Déployer dans un réseau virtuel ou un sous-réseau

  • Pour déployer des ressources dans un réseau virtuel ou un sous-réseau, votre compte d’utilisateur doit disposer d’autorisations pour les actions suivantes dans le contrôle d’accès en fonction du rôle Azure (Azure RBAC) :

    • « Microsoft.Network/*/read » sur la ressource de réseau virtuel. Cette autorisation n’est pas nécessaire pour les déploiements de modèles Azure Resource Manager (ARM).
    • « Microsoft.Network/virtualNetworks/join/action » sur la ressource de réseau virtuel.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" sur la ressource de sous-réseau.

    Pour plus d’informations sur Azure RBAC avec la mise en réseau, consultez Rôles intégrés pour la mise en réseau.

Différences entre les actions pour les API V1 et V2

Il existe certaines différences entre les actions pour les API V1 et les API V2.

Asset Chemin d’action pour l’API V1 Chemin d’action pour l’API V2
Dataset Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
Exécutions et travaux d’expérience Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
Modèles Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
Instantanés et code Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
Modules et composants Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

Vous pouvez rendre les rôles personnalisés compatibles avec les API V1 et V2 en incluant les deux actions ou en utilisant des caractères génériques qui incluent les deux actions, par exemple Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Créer un espace de travail à l’aide d’une clé gérée par le client

Lorsque vous utilisez une clé gérée par le client (CMK), un Key Vault Azure est utilisé pour stocker la clé. L’utilisateur ou le principal de service utilisé pour créer l’espace de travail doit avoir un accès propriétaire ou contributeur au coffre de clés.

Dans le coffre de clés, l’utilisateur ou le principal de service doit avoir l’accès pour créer, obtenir, supprimer et vider la clé via une stratégie d’accès au coffre de clés. Pour plus d'informations, consultez Sécurité Azure Key Vault.

Identité managée affectée par l’utilisateur avec le cluster de calcul Azure Machine Learning

Pour attribuer une identité affectée par l’utilisateur à un cluster de calcul Azure Machine Learning, vous devez disposer d’autorisations en écriture pour créer des calculs et d’un rôle Opérateur d’identités managées. Pour plus d’informations sur Azure RBAC avec des identités managées, consultez Comment gérer une identité attribuée par l’utilisateur

Opérations MLflow

Pour effectuer des opérations MLflow avec votre espace de travail Azure Machine Learning, utilisez les étendues suivantes pour votre rôle personnalisé :

Opération MLflow Étendue
(V1) Répertorier, lire, créer, mettre à jour ou supprimer des expériences Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) Répertorier, lire, créer, mettre à jour ou supprimer des tâches Microsoft.MachineLearningServices/workspaces/jobs/*
Obtenir un modèle inscrit par nom, extraire la liste de tous les modèles inscrits dans le registre, rechercher des modèles inscrits, les modèles de la dernière version pour chaque étape des demandes, obtenir la version d’un modèle inscrit, rechercher dans les versions de modèle, obtenir l’URI où sont stockés les artefacts d’une version de modèle, rechercher des exécutions par ID d’expérience Microsoft.MachineLearningServices/workspaces/models/*/read
Créer un modèle inscrit, mettre à jour le nom/la description d’un modèle inscrit, renommer un modèle inscrit existant, créer une version du modèle, mettre à jour la description d’une version de modèle, passer un modèle inscrit à l’une des étapes Microsoft.MachineLearningServices/workspaces/models/*/write
Supprimer un modèle inscrit avec toute sa version, supprimer des versions spécifiques d’un modèle inscrit Microsoft.MachineLearningServices/workspaces/models/*/delete

Exemples de rôles personnalisés

Scientifique des données

Permet à un scientifique des données d’effectuer toutes les opérations à l’intérieur d’un espace de travail, sauf :

  • Création de calculs
  • Déploiement de modèles sur un cluster AKS de production
  • Déploiement d’un point de terminaison de pipeline en production

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

Scientifique des données restreint

Définition de rôle plus restreinte sans caractères génériques dans les actions autorisées. Peut effectuer toutes les opérations à l’intérieur d’un espace de travail, sauf :

  • Création de calculs
  • Déploiement de modèles sur un cluster AKS de production
  • Déploiement d’un point de terminaison de pipeline en production

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

Scientifique des données MLflow

Permet à un scientifique des données d’effectuer toutes les opérations MLflow Azure Machine Learning prises en charge sauf :

  • Création de calculs
  • Déploiement de modèles sur un cluster AKS de production
  • Déploiement d’un point de terminaison de pipeline en production

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

Vous permet d’attribuer un rôle à un principal de service et de l’utiliser pour automatiser vos pipelines MLOps. Par exemple, pour envoyer des exécutions sur un pipeline déjà publié :

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

Administrateur d’espace de travail

Vous permet d’effectuer toutes les opérations dans l’étendue d’un espace de travail, sauf :

  • Créer un espace de travail
  • Attribution de quotas au niveau d’un d’abonnement ou d’un espace de travail

L’administrateur de l’espace de travail ne peut pas non plus créer un nouveau rôle. Il peut uniquement attribuer des rôles intégrés ou personnalisés existants au sein de l’étendue de son espace de travail :

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

Étiquetage des données

Vous permet de définir un rôle dédié uniquement à l’étiquetage des données :

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

Dépannage

Voici quelques éléments à prendre en compte lorsque vous utilisez le contrôle d’accès en fonction du rôle (RBAC) Azure :

  • Lorsque vous créez une ressource dans Azure, par exemple un espace de travail, vous n’êtes pas directement le propriétaire de la ressource. Votre rôle est hérité du rôle d’étendue le plus élevé auquel vous êtes autorisé dans cet abonnement. Par exemple, si vous êtes un administrateur réseau et que vous disposez des autorisations nécessaires pour créer un espace de travail Machine Learning, le rôle Administrateur réseau vous sera attribué sur cet espace de travail, et non le rôle Propriétaire.

  • Pour effectuer des opérations de quota dans un espace de travail, vous avez besoin d’autorisations de niveau d’abonnement. Cela signifie que le paramétrage d’un quota au niveau de l’abonnement ou au niveau de l’espace de travail pour vos ressources de calcul managées ne peut se faire que si vous disposez d’autorisations d’écriture dans l’étendue de l’abonnement.

  • Pour procéder au déploiement sur le studio, vous avez besoin de Microsoft.Resources/deployments/write ET de Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Pour les déploiements SDK/CLI, vous avez besoin de Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Contactez le propriétaire de votre espace de travail/groupe de ressources pour obtenir les autorisations supplémentaires.

  • Si deux rôles ont été attribués au même utilisateur Microsoft Entra avec des sections conflictuelles de type Actions/NotActions, vos opérations répertoriées dans NotActions pour un rôle risquent de ne pas s’appliquer si elles apparaissent également comme Actions dans un autre rôle. Pour en savoir plus sur la façon dont Azure analyse les attributions de rôles, lisez Comment le contrôle RBAC Azure détermine si un utilisateur a accès à une ressource

  • Il peut parfois s’écouler jusqu’à une heure avant que vos nouvelles attributions de rôles soient appliquées aux autorisations mises en cache dans la pile.

Étapes suivantes