Authentification pour les points de terminaison en ligne managés

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Cet article explique les concepts d’identité et d’autorisation dans le contexte des points de terminaison en ligne. Nous commençons par une discussion des identités Microsoft Entra ID qui prennent en charge RBAC Azure. En fonction de l’objectif de l’identité Microsoft Entra, nous employons le terme identité de l’utilisateur ou identité du point de terminaison.

Une identité de l’utilisateur est une identité Microsoft Entra ID que vous pouvez utiliser pour créer un point de terminaison et ses déploiements, ou pour interagir avec des points de terminaison ou des espaces de travail. En d’autres termes, une identité peut être considérée comme une identité de l’utilisateur si elle émet des requêtes à des points de terminaison, des déploiements ou des espaces de travail. L’identité de l’utilisateur doit disposer des autorisations appropriées pour effectuer des opérations de plan de contrôle et de plan de données sur les points de terminaison ou les espaces de travail.

Une identité du point de terminaison est une identité Microsoft Entra ID qui exécute le conteneur utilisateur dans les déploiements. En d’autres termes, si l’identité est associée au point de terminaison et utilisée pour le conteneur utilisateur pour le déploiement, elle est appelée « identité du point de terminaison ». L’identité du point de terminaison nécessite également des autorisations appropriées pour que le conteneur utilisateur interagisse avec les ressources si nécessaire. Par exemple, l’identité du point de terminaison nécessite les autorisations appropriées pour extraire des images à partir d’Azure Container Registry ou interagir avec d’autres services Azure.

En général, l’identité de l’utilisateur et l’identité du point d’accès ont des exigences distinctes en matière d’autorisation. Pour plus d’informations sur la gestion des identités et des autorisations, consultez Comment authentifier les clients pour les points de terminaison en ligne. Pour plus d’informations sur le cas spécial d’ajout automatique d’autorisations supplémentaires pour les secrets, consultez Autorisations supplémentaires pour l’identité de l’utilisateur.

Limitation

L’authentification Microsoft Entra ID (aad_token) est prise en charge uniquement pour les points de terminaison en ligne managés. Pour les points de terminaison en ligne Kubernetes, vous pouvez utiliser une clé ou un jeton Azure Machine Learning (aml_token).

Autorisations nécessaires pour l’identité de l’utilisateur

Lorsque vous vous connectez à votre locataire Azure avec votre compte Microsoft (par exemple, à l’aide de az login), vous effectuez l’étape d’authentification de l’utilisateur (communément appelée authn) et votre identité en tant qu’utilisateur est déterminée. Maintenant, supposez que vous souhaitez créer un point de terminaison en ligne sous un espace de travail ; vous aurez besoin pour cela de l’autorisation appropriée. C’est là qu’intervient l’autorisation (communément appelée authz).

Opérations du plan de contrôle

Les opérations du plan de contrôle contrôlent et changent les points de terminaison en ligne. Ces opérations incluent les opérations de création, lecture, mise à jour et suppression (CRUD) sur les points de terminaison en ligne et les déploiements en ligne. Pour les points de terminaison et les déploiements en ligne, les requêtes d’exécution d’opérations du plan de contrôle sont envoyées à l’espace de travail Azure Machine Learning.

Authentification pour les opérations du plan de contrôle

Pour les opérations du plan de contrôle, vous avez un moyen d’authentifier un client auprès de l’espace de travail : à l’aide d’un jeton Microsoft Entra.

En fonction de votre cas d’usage, vous pouvez choisir parmi plusieurs workflows d’authentification pour obtenir ce jeton. Votre identité utilisateur doit également disposer d’un rôle RBAC Azure (contrôle d’accès en fonction du rôle Azure) approprié afin de pouvoir accéder à vos ressources.

Autorisation pour les opérations du plan de contrôle

Pour les opérations du plan de contrôle, votre identité utilisateur doit disposer d’un rôle RBAC Azure approprié afin de pouvoir accéder à vos ressources. Plus précisément, pour les opérations CRUD sur les points de terminaison et les déploiements en ligne, il faut que le rôle soit attribué à l’identité avec les actions suivantes :

Opération Rôle RBAC Azure requis Étendue pour laquelle le rôle est attribué
Opérations de création/mise à jour sur des points de terminaison et des déploiements en ligne Propriétaire, contributeur ou tout rôle autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write espace de travail
Opérations de suppression sur les points de terminaison et les déploiements en ligne Propriétaire, contributeur ou tout rôle autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete espace de travail
Opérations de création/mise à jour/suppression sur les points de terminaison et les déploiements en ligne via Azure Machine Learning studio Propriétaire, contributeur ou tout rôle autorisant Microsoft.Resources/deployments/write Groupe de ressources auquel appartient l’espace de travail
Opérations de lecture sur les points de terminaison et les déploiements en ligne Propriétaire, contributeur ou tout rôle autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read espace de travail
Récupérer un jeton Azure Machine Learning (aml_token) pour appeler des points de terminaison en ligne (managés et Kubernetes) à partir de l’espace de travail Propriétaire, contributeur ou tout rôle autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action endpoint
Récupérer une clé pour appeler des points de terminaison en ligne (managés et Kubernetes) à partir de l’espace de travail Propriétaire, contributeur ou tout rôle autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action endpoint
Regénérer des clés pour des points de terminaison en ligne (managés et Kubernetes) Propriétaire, contributeur ou tout rôle autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action endpoint
Récupérer un jeton Microsoft Entra (aad_token) pour appeler des points de terminaison en ligne managés Ne nécessite pas de rôle. Non applicable

Remarque

Vous pouvez récupérer votre jeton Microsoft Entra (aad_token) directement à partir de Microsoft Entra ID une fois connecté, et vous n’avez pas besoin d’autorisation RBAC Azure supplémentaire sur l’espace de travail.

Autorisations supplémentaires pour l’identité de l’utilisateur lors de l’application de l’accès aux archives secrètes par défaut

Si vous envisagez d’utiliser la fonctionnalité d’injection de secrets et que vous créez vos points de terminaison, vous définissez l’indicateur pour appliquer l’accès aux magasins de secrets par défaut, votre identité utilisateur doit avoir l’autorisation de lire les secrets à partir des connexions d’espace de travail.

Lorsque le point de terminaison est créé avec une identité affectée par le système (SAI) et que l’indicateur est défini pour appliquer l’accès aux magasins de secrets par défaut, votre identité utilisateur doit disposer des autorisations nécessaires pour lire les secrets à partir des connexions d’espace de travail lors de la création du point de terminaison et de la création du ou des déploiements sous le point de terminaison. Cette restriction garantit que seule une identité utilisateur disposant de l’autorisation de lire les secrets peut accorder à l’identité de point de terminaison l’autorisation de lire les secrets.

  • Si une identité utilisateur ne dispose pas des autorisations nécessaires pour lire les secrets à partir des connexions d’espace de travail, mais qu’elle tente de créer le point de terminaison avec une SAI et l’indicateur du point de terminaison défini pour appliquer l’accès aux magasins de secrets par défaut, la création du point de terminaison est rejetée.

  • De même, si une identité utilisateur ne dispose pas des autorisations nécessaires pour lire les secrets à partir des connexions d’espace de travail, mais qu’elle tente de créer un déploiement sous le point de terminaison avec une SAI et l’indicateur du point de terminaison défini pour appliquer l’accès aux magasins de secrets par défaut, la création du déploiement est rejetée.

Lorsque (1) le point de terminaison est créé avec une UAI ou (2) l’indicateur n’est pas défini pour appliquer l’accès aux magasins de secrets par défaut même si le point de terminaison utilise une SAI, votre identité utilisateur n’a pas besoin d’avoir les autorisations nécessaires pour lire les secrets à partir des connexions d’espace de travail. Dans ce cas, l’identité du point de terminaison n’obtiendra pas automatiquement l’autorisation de lire les secrets, mais vous pouvez toujours lui accorder manuellement cette autorisation en lui attribuant les rôles appropriés si nécessaire. Que l’attribution des rôles ait été effectuée automatiquement ou manuellement, la récupération et l’injection de secrets seront toujours déclenchées si vous avez mappé les variables d’environnement avec des références de secrets dans la définition du déploiement, et elles utiliseront l’identité du point de terminaison pour ce faire.

Pour plus d’informations sur la gestion des autorisations d’accès à un espace de travail Azure Machine Learning, consultez Gérer l’accès à Azure Machine Learning.

Pour plus d’informations sur l’injection de secrets, consultez Injection de secret dans les points de terminaison en ligne.

Opérations du plan de données

Les opérations du plan de données ne changent pas les points de terminaison en ligne ; au lieu de cela, elles utilisent des données pour interagir avec les points de terminaison. Un exemple d’opération du plan de données consiste à envoyer une requête de scoring à un point de terminaison en ligne et à obtenir une réponse à partir de celui-ci. Pour les points de terminaison et les déploiements en ligne, les requêtes d’exécution d’opérations du plan de données sont envoyées à l’URI de scoring du point de terminaison.

Authentification pour les opérations du plan de données

Pour les opérations du plan de données, vous pouvez choisir entre trois manières d’authentifier un client pour envoyer des requêtes à l’URI de scoring d’un point de terminaison :

  • key
  • Jeton Azure Machine Learning (aml_token)
  • Jeton Microsoft Entra (aad_token)

Pour plus d’informations sur la façon d’authentifier des clients pour les opérations du plan de données, consultez Guide pratique pour authentifier les clients pour les points de terminaison en ligne.

Autorisation pour les opérations du plan de données

Pour les opérations du plan de données, votre identité utilisateur doit disposer d’un rôle RBAC Azure approprié afin de pouvoir accéder à vos ressources, uniquement si le point de terminaison est configuré de façon à utiliser le jeton Microsoft Entra (aad_token). Plus précisément, pour les opérations du plan de données sur les points de terminaison et les déploiements en ligne, il faut que le rôle soit attribué à l’identité avec les actions suivantes :

Opération Rôle RBAC Azure requis Étendue pour laquelle le rôle est attribué
Appeler des points de terminaison en ligne avec une clé ou un jeton Azure Machine Learning (aml_token). Ne nécessite pas de rôle. Non applicable
Appeler des points de terminaison en ligne managés avec un jeton Microsoft Entra (aad_token). Propriétaire, contributeur ou tout rôle autorisant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action endpoint
Appeler des points de terminaison en ligne Kubernetes avec un jeton Microsoft Entra (aad_token). Ne nécessite pas de rôle. Non applicable

Autorisations nécessaires pour l’identité du point de terminaison

Un déploiement en ligne exécute votre conteneur utilisateur avec l’identité du point de terminaison, c’est-à-dire l’identité managée associée au point de terminaison. L’identité du point de terminaison est une identité Microsoft Entra ID qui prend en charge RBAC Azure. Par conséquent, vous pouvez attribuer des rôles Azure à l’identité du point de terminaison afin de contrôler les autorisations requises pour effectuer des opérations. Cette identité du point de terminaison peut être une identité affectée par le système (SAI) ou une identité affectée par l’utilisateur (UAI). Vous pouvez décider s’il faut utiliser une identité SAI ou UAI lorsque vous créez le point de terminaison.

  • Pour une identité affectée par le système, l’identité est créée automatiquement lorsque vous créez le point de terminaison, et les rôles avec des autorisations fondamentales (telles que l’autorisation d’extraction Azure Container Registry et Lecteur des données blob du stockage) sont automatiquement attribués.
  • Pour une identité affectée par l’utilisateur, vous devez d’abord créer l’identité, puis l’associer au point de terminaison lorsque vous créez ce dernier. Vous êtes également responsable de l’attribution de rôles appropriés à l’identité UAI en fonction des besoins.

Attribution automatique de rôle pour l’identité du point de terminaison

Si l’identité du point d’accès est une identité attribuée par le système, certains rôles sont attribués à l’identité du point d’accès pour des raisons de commodité.

Rôle Description Condition de l’attribution de rôle automatique
AcrPull Permet à l’identité du point de terminaison d’extraire des images du registre Azure Container Registry (ACR) associé à l’espace de travail. L’identité de point de terminaison est une identité attribuée par le système (SAI).
Storage Blob Data Reader Permet à l’identité du point de terminaison de lire des blobs à partir du magasin de données par défaut de l’espace de travail. L’identité de point de terminaison est une identité attribuée par le système (SAI).
AzureML Metrics Writer (preview) Permet à l’identité du point de terminaison d’écrire des métriques dans l’espace de travail. L’identité de point de terminaison est une identité attribuée par le système (SAI).
Azure Machine Learning Workspace Connection Secrets Reader1 Permet à l’identité du point de terminaison de lire les secrets des connexions à l’espace de travail. L’identité de point de terminaison est une identité attribuée par le système (SAI). Le point de terminaison est créé avec un indicateur permettant d’imposer l’accès aux magasins de secrets par défaut. L’identité de l’utilisateur qui crée le point de terminaison a la même autorisation de lire les secrets à partir des connexions d’espace de travail. 2

1 Pour plus d’informations sur le rôle Azure Machine Learning Workspace Connection Secrets Reader, consultez Attribuer des autorisations à l’identité.

2 Même si l’identité de point de terminaison est SAI, si l’indicateur d’application n’est pas défini ou si l’identité de l’utilisateur n’a pas l’autorisation, il n’existe aucune attribution de rôle automatique pour ce rôle. Pour plus d’informations, consultez Comment déployer un point de terminaison en ligne avec injection de secret.

Si l’identité du point de terminaison est une identité affectée par l’utilisateur, il n’existe aucune attribution de rôle automatique. Dans ce cas, vous devez attribuer manuellement des rôles à l’identité du point de terminaison.

Choix des autorisations et de l’étendue pour l’autorisation

RBAC Azure vous permet de définir et d’attribuer des rôles avec un ensemble d’actions autorisées et/ou refusées sur des étendues spécifiques. Vous pouvez personnaliser ces rôles et étendues en fonction de vos besoins métier. Les exemples suivants servent de point de départ et peuvent être étendus si nécessaire.

Exemples pour l’identité de l’utilisateur

  • Pour contrôler toutes les opérations répertoriées dans le tableau pour les opérations du plan de contrôle et le tableau pour les opérations du plan de données précédents, vous pouvez envisager d’utiliser un rôle intégré AzureML Data Scientist qui inclut l’action d’autorisation Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions.
  • Pour contrôler les opérations pour un point de terminaison spécifique, utilisez l’étendue /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>.
  • Pour contrôler les opérations pour tous les points de terminaison d’un espace de travail, utilisez l’étendue /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>.

Exemples pour l’identité du point de terminaison

  • Pour permettre au conteneur utilisateur de lire des objets blob, utilisez un rôle intégré Storage Blob Data Reader qui inclut l’action de données d’autorisation Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read.

Pour plus d’informations sur les instructions relatives aux opérations du plan de contrôle, consultez Gérer l’accès à Azure Machine Learning. Pour plus d’informations sur la définition de rôle, l’étendue et l’attribution de rôle, consultez RBAC Azure. Pour comprendre l’étendue des rôles attribués, consultez Présentation de l’étendue pour RBAC Azure.