Tutoriel : Utiliser une identité managée de machine virtuelle Windows attribuée par le système pour accéder à Azure Key Vault

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.

Ce tutoriel vous indique comment une machine virtuelle Windows peut utiliser une identité managée affectée par le système pour accéder à Azure Key Vault. Key Vault permet à votre application client d'utiliser un secret pour accéder aux ressources non sécurisées par Microsoft Entra ID. Les identités managées sont gérées automatiquement par Azure. Ils vous permettent de vous authentifier auprès des services prenant en charge l'authentification Microsoft Entra, sans inclure d'informations d'authentification dans votre code.

Vous allez apprendre à effectuer les actions suivantes :

  • Accorder à votre machine virtuelle l’accès à un secret stocké dans Key Vault
  • Obtenir un jeton d’accès à l’aide d’une identité de machine virtuelle et l’utiliser pour récupérer un secret de Key Vault

Prérequis

Créer un coffre de clés

Conseil

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

Cette section montre comment accorder à votre machine virtuelle l’accès à un secret stocké dans un coffre de clés. Lorsque vous utilisez des identités managées pour les ressources Azure, votre code peut obtenir des jetons d'accès pour s'authentifier auprès des ressources qui prennent en charge l'authentification Microsoft Entra.  Toutefois, tous les services Azure ne prennent pas en charge l’authentification Microsoft Entra. Pour utiliser des identités managées pour les ressources Azure avec ces services, stockez les informations d’identification des services dans Azure Key Vault, puis utilisez des identités managées de machine virtuelle afin d’accéder à Key Vault pour récupérer les informations d’identification.

Tout d’abord, nous devons créer un Key Vault et accorder son accès à l’identité managée attribuée par le système de machine virtuelle.

  1. Connectez-vous au portail Azure.

  2. En haut de la barre de navigation à gauche, sélectionnez Créer une ressource.

  3. Dans la zone Rechercher dans la Place de marché, tapez Coffre de clés, puis appuyez sur Entrer.

  4. Sélectionnez Coffre de clés dans les résultats.

  5. Sélectionnez Créer.

  6. Indiquez un Nom pour le nouveau Coffre de clés.

    Créez un écran Coffre de clés.

  7. Remplissez toutes les informations requises. Veillez à choisir l’abonnement et le groupe de ressources que vous utilisez pour ce tutoriel.

  8. Sélectionner Vérifier + créer

  9. Sélectionnez Créer

Créer un secret

Ajoutez ensuite un secret au coffre de clés afin de pouvoir le récupérer ultérieurement à l’aide du code en cours d’exécution dans votre machine virtuelle. Dans ce tutoriel, nous utilisons PowerShell, mais les mêmes concepts s’appliquent à tout code s’exécutant dans cette machine virtuelle.

  1. Accédez au coffre de clés que vous venez de créer.

  2. Sélectionnez Secrets, puis Ajouter.

  3. Sélectionnez Générer/Importer.

  4. Dans l’écran Créer un secret, dans les Options de chargement laissez Manuel sélectionné.

  5. Entrez un nom et une valeur pour le secret.  Vous pouvez choisir la valeur de votre choix. 

  6. Laissez les champs pour la date d’activation et la date d’expiration vides, puis pour Activé, laissez la valeur Oui

  7. Sélectionnez Créer pour créer le secret.

    Capture d’écran illustrant la création d’un secret.

Accorder l'accès

L’identité managée utilisée par la machine virtuelle doit disposer d’un accès pour lire le secret que nous allons stocker dans le coffre de clés.

  1. Accédez au coffre de clés que vous venez de créer.

  2. Dans le menu de gauche, sélectionnez Stratégie d’accès.

  3. Sélectionnez Ajouter une stratégie d’accès.

    Capture d’écran illustrant la stratégie d’accès au coffre de clés.

  4. Dans la section Ajouter une stratégie d’accès sous Configurer à partir du modèle (facultatif), choisissez Gestion des secrets dans le menu déroulant.

  5. Choisissez Sélectionner le principal, et dans la zone de recherche entrez le nom de la machine virtuelle créée précédemment.  Sélectionnez la machine virtuelle dans la liste des résultats, puis choisissez Sélectionner.

  6. Sélectionnez Ajouter

  7. Cliquez sur Enregistrer.

Accéder aux données

Cette section montre comment obtenir un jeton d’accès à l’aide d’une identité de machine virtuelle et comment l’utiliser pour récupérer le secret dans le coffre de clés. Si PowerShell 4.3.1 ou version ultérieure n’est pas installé, vous devez télécharger et installer la dernière version.

Tout d’abord, nous utilisons l’identité managée attribuée par le système de machine virtuelle pour obtenir un jeton d’accès permettant de s’authentifier auprès de Key Vault :

  1. Dans le portail, accédez à Machines virtuelles et accédez à votre machine virtuelle Windows. Puis, dans Vue d’ensemble, sélectionnez Connecter.
  2. Entrez le Nom d’utilisateur et le Mot de passe que vous avez ajoutés lorsque vous avez créé la machine virtuelle Windows.  
  3. Maintenant que vous avez créé une Connexion Bureau à distance avec la machine virtuelle, ouvrez PowerShell dans la session à distance.  
  4. Dans PowerShell, appelez la requête web sur le client pour obtenir le jeton de l’hôte local dans le port spécifique pour la machine virtuelle.  

La requête PowerShell :

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"} 

Vous pouvez voir ci-dessous à quoi ressemble la réponse :

Capture d’écran illustrant une demande avec une réponse par jeton.

Ensuite, extrayez le jeton d’accès de la réponse.  

   $KeyVaultToken = $Response.access_token

Enfin, utilisez la commande Invoke-WebRequest de PowerShell pour récupérer le secret que vous avez créé précédemment dans Key Vault et transmettre le jeton d’accès vers l’en-tête d’autorisation.  Vous avez besoin de l’URL de votre Key Vault qui se trouve dans la section Bases de la page Vue d’ensemble de Key Vault.  

Invoke-RestMethod -Uri https://<your-key-vault-URL>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}

La réponse aura l’aspect suivant :

  value       id                                                                                    attributes
  -----       --                                                                                    ----------
  'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16…

Après avoir récupéré le secret à partir de Key Vault, vous pouvez l’utiliser pour vous authentifier sur un service qui requiert un nom et un mot de passe.

Nettoyer les ressources

Si vous souhaitez nettoyer les ressources, connectez-vous au Portail Azure, sélectionnez Groupes de ressources, puis localisez et sélectionnez le groupe de ressources créé au moyen de ce tutoriel (par exemple mi-test). Ensuite, utilisez la commande Supprimer le groupe de ressources.

Vous pouvez également nettoyer les ressources à l’aide de PowerShell ou de l’interface CLI

Étapes suivantes

Dans ce tutoriel, vous avez appris à utiliser une identité managée de machine virtuelle Windows attribuée par le système pour accéder à Azure Key Vault. Pour en savoir plus sur Azure Key Vault, consultez :