Authentification et autorisation pour les terminaux en ligne
S’APPLIQUE À :Extension Azure CLI v2 (actuelle)
Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)
Cet article explique les concepts d’identité et d’autorisation dans le contexte des points de terminaison en ligne Azure Machine Learning. L’article décrit les IDs Microsoft Entra qui prennent en charge le contrôle d’accès et les autorisations basés sur les rôles. Un identifiant Microsoft Entra est appelé identité d’utilisateur ou identité de point de terminaison, selon son objectif.
Une identité d’utilisateur est un ID Microsoft Entra qui peut créer un point de terminaison et ses déploiements, ou interagir avec des points de terminaison ou des espaces de travail. Une identité d’utilisateur émet des demandes aux points de terminaison, aux déploiements ou aux espaces de travail. L’identité de l’utilisateur a besoin d’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. Le conteneur utilisateur utilise l’identité du point de terminaison pour le déploiement. L’identité du point de terminaison nécessite également des autorisations appropriées pour que le conteneur utilisateur puisse interagir avec les ressources selon les besoins. Par exemple, l’identité du point de terminaison a besoin des autorisations appropriées pour extraire des images d’Azure Container Registry ou pour interagir avec d’autres services Azure.
L’identité de l’utilisateur et l’identité du point de terminaison ont des exigences d’autorisation distinctes. 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.
Important
L’authentification Microsoft Entra ID aad_token
est prise en charge uniquement pour les points de terminaison en ligne gérés. Pour les points de terminaison en ligne Kubernetes, vous pouvez utiliser une clé ou un Azure Machine Learning aml_token
.
Autorisations et portée de l'autorisation
Le contrôle d'accès basé sur les rôles Azure (RBAC) 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 que vous pouvez étendre si nécessaire.
Pour l’identité de l’utilisateur :
- Pour gérer les opérations du plan de contrôle et du plan de données, vous pouvez utiliser le rôle intégré AzureML Data Scientist qui inclut l’action d’autorisation
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions
. - Pour contrôler les opérations d'un point de terminaison spécifique, utilisez la portée
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>
. - Pour contrôler les opérations de tous les points de terminaison d'un espace de travail, utilisez la portée
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
.
Pour l'identité du point de terminaison, pour permettre au conteneur utilisateur de lire les blobs, le rôle intégré Lecteur de données d'objet blob de stockage inclut l'action de données d'autorisation Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
.
Pour plus d'informations sur la gestion de l'autorisation d'accès aux espaces de travail Azure Machine Learning, 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.
Autorisations nécessaires pour l’identité de l’utilisateur
Lorsque vous vous connectez à votre locataire Azure avec votre compte Microsoft, par exemple en utilisant az login
, vous terminez l’étape d’authentification de l’utilisateur authn qui détermine votre identité en tant qu’utilisateur. Pour créer un point de terminaison en ligne sous un espace de travail Azure Machine Learning, votre identité a besoin de l’autorisation appropriée, également appelée autorisation ou authz. Les identités des utilisateurs ont besoin d’autorisations appropriées pour effectuer les opérations du plan de contrôle et du plan de données.
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 de plan de contrôle, vous utilisez un jeton Microsoft Entra pour authentifier un client auprès de l’espace de travail. En fonction de votre cas d’usage, vous pouvez choisir parmi plusieurs workflows d’authentification pour obtenir ce jeton. L’identité de l’utilisateur doit également disposer du rôle Azure RBAC approprié attribué pour accéder aux ressources.
Autorisation pour les opérations du plan de contrôle
Pour les opérations de plan de contrôle, votre identité d’utilisateur doit disposer du rôle Azure RBAC approprié attribué pour accéder à vos ressources. Plus précisément, pour les opérations CRUD sur les points de terminaison et les déploiements en ligne, l'identité de l'utilisateur doit avoir des rôles attribués pour les actions suivantes :
Opération | Rôle RBAC Azure requis | Étendue |
---|---|---|
Effectuez des opérations de création/mise à jour sur les points de terminaison et les déploiements en ligne. | Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write |
Espace de travail |
Effectuez des opérations de suppression sur les points de terminaison et les déploiements en ligne. | Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete |
Espace de travail |
Effectuez des opérations de création/mise à jour/suppression sur des points de terminaison et des déploiements en ligne via Azure Machine Learning Studio. | Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.Resources/deployments/write |
Groupe de ressources contenant l’espace de travail |
Effectuez des opérations de lecture sur des points de terminaison et des déploiements en ligne. | Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read |
Espace de travail |
Récupérez un jeton Azure Machine Learning (aml_token ) pour appeler les points de terminaison en ligne gérés et Kubernetes à partir de l’espace de travail. |
Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action |
Point de terminaison |
Récupérez une clé pour appeler des points de terminaison en ligne (gérés et Kubernetes) à partir de l'espace de travail. | Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action |
Point de terminaison |
Régénérez les clés pour les points de terminaison gérés et Kubernetes Online. | Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action |
Point de terminaison |
Récupérez un Microsoft Entra aad_token pour appeler des points de terminaison en ligne gérés. |
Ne nécessite pas de rôle | Sans objet* |
* Vous pouvez récupérer votre Microsoft Entra aad_token
directement à partir de l’ID Microsoft Entra une fois connecté, de sorte que cette opération ne nécessite pas d’autorisation Azure RBAC sur l’espace de travail.
Autorisations pour l'identité de l'utilisateur pour imposer l'accès aux magasins de secrets par défaut
Si vous utilisez la fonctionnalité d'injection de secrets et que vous définissez l'indicateur pour appliquer l'accès aux magasins de secrets par défaut lors de la création de points de terminaison, votre identité d'utilisateur doit avoir l'autorisation de lire les secrets à partir des connexions à l'espace de travail.
Une identité de point de terminaison peut être soit une identité attribuée par le système (SAI), soit une identité attribuée par l'utilisateur (UAI). Lorsque le point de terminaison est créé avec un SAI et que l'indicateur permettant d'appliquer l'accès aux magasins de secrets par défaut est défini, une identité d'utilisateur doit disposer des autorisations nécessaires pour lire les secrets des connexions à l'espace de travail lors de la création d'un point de terminaison et des déploiements. 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é d'utilisateur qui n'a pas l'autorisation de lire les secrets des connexions à l'espace de travail tente de créer un point de terminaison ou un déploiement avec un SAI et que l'indicateur du point de terminaison est défini pour appliquer l'accès aux magasins de secrets par défaut, la création du point de terminaison ou du déploiement est rejetée.
Si le point de terminaison est créé avec un UAI ou s'il utilise un SAI mais que l'indicateur permettant d'appliquer l'accès aux magasins de secrets par défaut n'est pas défini, l'identité de l'utilisateur n'a pas besoin de pouvoir lire les secrets des connexions à l'espace de travail pour créer un point de terminaison ou un déploiement. Dans ce cas, l'identité du point de terminaison ne reçoit pas automatiquement l'autorisation de lire les secrets, mais peut se voir accorder manuellement cette autorisation en attribuant le rôle approprié.
Que l'attribution de rôle soit automatique ou manuelle, la récupération et l'injection du secret sont déclenchées si vous avez mappé les variables d'environnement avec des références secrètes dans le point de terminaison ou la définition de déploiement. La fonction d’injection de secret utilise l’identité du point de terminaison pour effectuer la récupération et l’injection de secret. 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 modifient pas les points de terminaison en ligne, mais utilisent des données qui interagissent 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 de plan de données, vous pouvez choisir parmi les méthodes suivantes pour authentifier un client afin d'envoyer des requêtes à l'URI de notation d'un point de terminaison :
- Clé
- Azure Machine Learning
aml_token
- 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 de plan de données, votre identité d'utilisateur a besoin de rôles Azure RBAC appropriés pour autoriser l'accès à vos ressources uniquement si le point de terminaison est configuré pour utiliser Microsoft Entra aad_token
. Pour les opérations de plan de données sur les points de terminaison et les déploiements en ligne, l'identité de l'utilisateur doit avoir un rôle attribué avec les actions suivantes :
Opération | Rôle RBAC Azure requis | Étendue |
---|---|---|
Appelez des points de terminaison en ligne avec key ou Azure Machine Learning aml_token . |
Ne nécessite pas de rôle. | Non applicable |
Appelez des points de terminaison en ligne gérés avec Microsoft Entra aad_token . |
Propriétaire, Contributeur ou tout autre rôle permettant Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action |
Point de terminaison |
Appelez les points de terminaison Kubernetes Online avec Microsoft Entra aad_token . |
Le point de terminaison en ligne Kubernetes ne prend pas en charge le jeton Microsoft Entra pour les opérations de plan de données. | 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 un ID Microsoft Entra qui prend en charge Azure RBAC. 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é de point de terminaison peut être un SAI ou un UAI. Vous pouvez décider s’il faut utiliser une identité SAI ou UAI lorsque vous créez le point de terminaison.
- Pour un SAI, 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 de Container Registry AcrPull et le Lecteur de données Storage Blob, sont automatiquement attribués.
- Pour un UAI, vous devez d’abord créer l’identité, puis l’associer au point de terminaison lorsque vous créez le point de terminaison. 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 de terminaison est un SAI, les rôles suivants sont attribués à l’identité du point de terminaison pour plus de commodité.
Rôle | Description | Condition pour l'attribution automatique des rôles |
---|---|---|
AcrPull | Permet à l'identité du point de terminaison d'extraire des images du registre de conteneurs Azure associé à l'espace de travail | L'identité du point de terminaison est un SAI. |
Lecteur des données blob du stockage | Permet à l'identité du point de terminaison de lire les blobs à partir du magasin de données par défaut de l'espace de travail | L'identité du point de terminaison est un SAI. |
Rédacteur de métriques AzureML (aperçu) | Permet à l'identité du point de terminaison d'écrire des métriques dans l'espace de travail | L'identité du point de terminaison est un SAI. |
Lecteur des secrets de connexion à l'espace de travail Azure Machine Learning | Permet à l'identité du point de terminaison de lire les secrets des connexions à l'espace de travail | L'identité du point de terminaison est un SAI et la création du point de terminaison dispose d'un indicateur pour appliquer l'accès aux magasins de secrets par défaut. L’identité de l’utilisateur qui crée le point de terminaison dispose également de l’autorisation de lire les secrets des connexions à l’espace de travail. |
- Si l’identité du point de terminaison est un SAI et que l’indicateur d’application n’est pas défini ou que l’identité de l’utilisateur n’a pas l’autorisation de lire les secrets, il n’y a pas d’attribution automatique de rôle pour le rôle Lecteur de secrets de connexion à l’espace de travail Azure Machine Learning. 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 un UAI, il n’y a pas d’attribution automatique de rôle pour le rôle de Lecteur de secrets de connexion à l’espace de travail Azure Machine Learning. Dans ce cas, vous devez attribuer manuellement des rôles à l'identité du point de terminaison.
Pour plus d’informations sur le rôle Lecteur des secrets de connexion à l’espace de travail Azure Machine Learning, consultez Attribuer des autorisations à l’identité.