Tutoriel : Utiliser une identité managée attribuée par le système sur une VM pour accéder à Azure Resource Manager

Ce guide de démarrage rapide vous montre comment utiliser une identité managée affectée par le système en tant qu’identité de machine virtuelle pour accéder à l’API Azure Resource Manager. Les identités managées pour ressources Azure sont gérées automatiquement par Azure et vous permettent de vous authentifier auprès des services prenant en charge l’authentification Microsoft Entra sans avoir à insérer des informations d’identification dans votre code.

Les identités managées pour les ressources Azure sont une fonctionnalité de Microsoft Entra ID. Les services Azure prenant en charge les identités managées pour ressources Azure sont soumis à leur propre chronologie. Assurez-vous de passer en revue l’état Disponibilité des identités gérées pour votre ressource et les problèmes connus avant de commencer.

Vous découvrirez comment effectuer les actions suivantes :

  • Octroyer à votre machine virtuelle l’accès à un groupe de ressources dans Azure Resource Manager
  • Obtenir un jeton d’accès à l’aide d’une identité de machine virtuelle, et l’utiliser pour appeler Azure Resource Manager

Utiliser une identité managée affectée par le système de machine virtuelle Windows pour accéder au gestionnaire des ressources

Conseil

Les étapes décrites dans cet article peuvent varier légèrement en fonction du portail de départ.

Ce tutoriel explique comment créer une identité affectée par le système, comment l’affecter à une machine virtuelle Windows, puis l’utiliser pour accéder à l’API Azure Resource Manager. Les identités MSI sont gérées automatiquement par Azure. Elles permettent l’authentification auprès de services prenant en charge l’authentification Microsoft Entra, sans devoir nécessairement incorporer des informations d’identification à votre code.

Vous découvrirez comment effectuer les actions suivantes :

  • Accordez à votre machine virtuelle l’accès à Azure Resource Manager.
  • Obtenez un jeton d’accès à l’aide de l’identité managée affectée par le système de la machine virtuelle pour accéder à Resource Manager.
  1. Connectez-vous au portail Azure avec votre compte d’administrateur.

  2. Accédez à l’onglet Groupes de ressources.

  3. Sélectionnez le groupe de ressources dont vous souhaitez octroyer l’accès à l’identité managée de la machine virtuelle.

  4. Dans le volet gauche, sélectionnez Contrôle d’accès (IAM).

  5. Sélectionnez Ajouter, puis Ajouter une attribution de rôle.

  6. Sous l’onglet Rôle, sélectionnez Lecteur. Ce rôle permet de voir toutes les ressources, mais ne vous autorise pas à apporter des modifications.

  7. Sous l’onglet Membres, dans l’option Attribuer l’accès à, sélectionnez Identité managée, puis + Sélectionner des membres.

  8. Vérifiez que l’abonnement approprié est listé dans la liste déroulante Abonnement. Pour Groupe de ressources, sélectionnez Tous les groupes de ressources.

  9. Dans la liste déroulante Gérer l’identité, sélectionnez Machine virtuelle.

  10. Pour Sélectionner, choisissez votre machine virtuelle dans la liste déroulante, puis sélectionnez Enregistrer.

    Capture d’écran montrant l’ajout du rôle de lecteur à l’identité managée.

Obtention d’un jeton d’accès

Utilisez l’identité managée affectée par le système de la machine virtuelle, puis appelez Resource Manager pour obtenir un jeton d’accès.

Pour effectuer cette procédure, vous avez besoin d’un client SSH. Si vous utilisez Windows, vous pouvez utiliser le client SSH dans le Sous-système Windows pour Linux. Si vous avez besoin d’aide pour configurer les clés de votre client SSH, consultez Comment utiliser les clés SSH avec Windows sur Azure, ou Comment créer et utiliser une paire de clés publique et privée SSH pour les machines virtuelles Linux dans Azure.

  1. Dans le portail, accédez à votre machine virtuelle Linux et dans Vue d’ensemble, sélectionnez Connexion.
  2. Connectez-vous à la machine virtuelle à l’aide du client SSH de votre choix.
  3. Dans la fenêtre de terminal, à l’aide de curl, adressez une requête au point de terminaison d’identités managées pour ressources Azure en vue d’obtenir un jeton d’accès pour Azure Resource Manager.   Vous trouverez la requête curl pour le jeton d’accès ci-dessous.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Remarque

La valeur du paramètre resource doit correspondre exactement aux attentes de Microsoft Entra ID. Dans le cas de l’ID de ressource de Resource Manager, vous devez inclure la barre oblique finale dans l’URI.

La réponse inclut le jeton d’accès dont vous avez besoin pour accéder à Azure Resource Manager.

Réponse :

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Utilisez ce jeton d’accès pour accéder à Azure Resource Manager, par exemple pour lire les détails du groupe de ressources auquel vous avez octroyé l’accès à cette machine virtuelle. Remplacez les valeurs de <SUBSCRIPTION-ID>, <RESOURCE-GROUP>, et <ACCESS-TOKEN> par celles que vous avez créées précédemment.

Remarque

L’URL respecte la casse. Vous devez donc vérifier si vous utilisez exactement la même casse que celle que vous avez utilisée plus tôt quand vous avez nommé le groupe de ressources. Vérifiez également la présence du « G » majuscule dans « resourceGroup ».

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

La réponse est retournée avec les informations spécifiques au groupe de ressources :

{
"id":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DevTest",
"name":"DevTest",
"location":"westus",
"properties":
{
  "provisioningState":"Succeeded"
  }
} 

Utiliser une identité managée affectée par le système de machine virtuelle Linux pour accéder à un groupe de ressources dans le gestionnaire des ressources

Conseil

Les étapes décrites dans cet article peuvent varier légèrement en fonction du portail de départ.

Ce tutoriel explique comment créer une identité affectée par le système, comment l’affecter à une machine virtuelle Linux, puis l’utiliser pour accéder à l’API Azure Resource Manager. Les identités MSI sont gérées automatiquement par Azure. Elles permettent l’authentification auprès de services prenant en charge l’authentification Microsoft Entra, sans devoir nécessairement incorporer des informations d’identification à votre code.

Vous allez apprendre à effectuer les actions suivantes :

  • Accordez à votre machine virtuelle l’accès à Azure Resource Manager.
  • Obtenez un jeton d’accès à l’aide de l’identité managée affectée par le système de la machine virtuelle pour accéder au gestionnaire des ressources.
  1. Connectez-vous au portail Azure avec votre compte d’administrateur.

  2. Accédez à l’onglet Groupes de ressources.

  3. Sélectionnez le groupe de ressources dont vous souhaitez octroyer l’accès à l’identité managée de la machine virtuelle.

  4. Dans le volet gauche, sélectionnez Contrôle d’accès (IAM).

  5. Sélectionnez Ajouter, puis Ajouter une attribution de rôle.

  6. Sous l’onglet Rôle, sélectionnez Lecteur. Ce rôle permet de voir toutes les ressources, mais ne vous autorise pas à apporter des modifications.

  7. Sous l’onglet Membres, dans l’option Attribuer l’accès à, sélectionnez Identité managée, puis sélectionnez + Sélectionner des membres.

  8. Vérifiez que l’abonnement approprié est listé dans la liste déroulante Abonnement. Pour Groupe de ressources, sélectionnez Tous les groupes de ressources.

  9. Dans la liste déroulante Gérer l’identité, sélectionnez Machine virtuelle.

  10. Dans l’option Sélectionner, choisissez votre machine virtuelle dans la liste déroulante, puis sélectionnez Enregistrer.

    Capture d’écran montrant l’ajout du rôle de lecteur à l’identité managée.

Obtention d’un jeton d’accès

Utilisez l’identité managée affectée par le système de la machine virtuelle, puis appelez le gestionnaire des ressources pour obtenir un jeton d’accès.

Pour effectuer cette procédure, vous avez besoin d’un client SSH. Si vous utilisez Windows, vous pouvez utiliser le client SSH dans le Sous-système Windows pour Linux. Si vous avez besoin d’aide pour configurer les clés de votre client SSH, consultez Comment utiliser les clés SSH avec Windows sur Azure, ou Comment créer et utiliser une paire de clés publique et privée SSH pour les machines virtuelles Linux dans Azure.

  1. Dans le portail Azure, accédez à votre machine virtuelle Linux.
  2. Dans la Vue d’ensemble, sélectionnez Connecter.
  3. Connectez-vous à la machine virtuelle à l’aide du client SSH de votre choix.
  4. Dans la fenêtre de terminal, à l’aide de curl, adressez une requête au point de terminaison d’identités managées pour les ressources Azure en vue d’obtenir un jeton d’accès pour Azure Resource Manager.   Vous trouverez la requête curl pour le jeton d’accès ci-dessous.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Remarque

La valeur du paramètre resource doit correspondre exactement aux attentes de Microsoft Entra ID. Dans le cas de l’ID de ressource du gestionnaire des ressources, vous devez inclure la barre oblique finale dans l’URI.

La réponse inclut le jeton d’accès dont vous avez besoin pour accéder à Azure Resource Manager.

Réponse :

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Utilisez ce jeton d’accès pour accéder à Azure Resource Manager. Par exemple, pour lire les détails du groupe de ressources auquel vous avez précédemment accordé l’accès à cette machine virtuelle. Remplacez les valeurs de <SUBSCRIPTION-ID>, <RESOURCE-GROUP>, et <ACCESS-TOKEN> par celles que vous avez créées précédemment.

Remarque

L’URL respecte la casse. Vous devez donc veiller à utiliser exactement la même casse que celle que vous avez utilisée plus tôt quand vous avez nommé le groupe de ressources. Vérifiez également la présence du « G » majuscule dans resourceGroup.

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

La réponse est retournée avec les informations spécifiques au groupe de ressources :

{
"id":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DevTest",
"name":"DevTest",
"location":"westus",
"properties":
{
  "provisioningState":"Succeeded"
  }
} 

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez appris à utiliser une identité managée affectée par le système sur une machine virtuelle pour accéder à l’API Azure Resource Manager. Pour en savoir plus sur Azure Resource Manager, consultez :