Tutoriel : Utiliser une identité managée de machine virtuelle Linux 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 Linux peut utiliser une identité managée affectée par le système pour accéder à Azure Key Vault. Key Vault permet à votre application cliente d'utiliser ensuite un secret pour accéder aux ressources non sécurisées par Microsoft Entra ID. Les identités de service gérées sont automatiquement gérées par Azure et vous permettent de vous authentifier auprès des services qui prennent 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 la clé secrète 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. À l’aide d’identités managées pour les ressources Azure, votre code peut obtenir des jetons d’accès pour s’authentifier auprès des ressources prenant 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 coffre de clés Key Vault et octroyer son accès à l’identité managée affectée par le système de notre machine virtuelle.

  1. Connectez-vous au portail Azure.

  2. En haut de la barre de navigation de 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. Entrez un Nom pour le nouveau coffre de clés.

    Capture d’écran montrant l’écran de création du coffre de clés Azure.

  7. Renseignez toutes les informations obligatoires en prenant soin de choisir l’abonnement et le groupe de ressources où vous avez créé la machine virtuelle 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 montrant 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 stocké dans Key Vault.

  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 de la création de stratégie d’accès du 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. Sélectionnez Enregistrer.

Accéder aux données

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.

Important

Tous les SDK Azure prennent en charge la bibliothèque Azure.Identity qui facilite l'acquisition de jetons Microsoft Entra pour accéder aux services cibles. Découvrez en plus sur les SDK Azure et tirez parti de la bibliothèque Azure.Identity.

  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, envoyez une requête aux identités managées locales pour le point de terminaison des ressources Azure en vue d’obtenir un jeton d’accès pour Azure Key Vault.    

    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%3A%2F%2Fvault.azure.net' -H Metadata:true  
    

    La réponse inclut le jeton d’accès dont vous avez besoin pour accéder au Gestionnaire des ressources. 

    Réponse :

    {"access_token":"eyJ0eXAi...",
    "refresh_token":"",
    "expires_in":"3599",
    "expires_on":"1504130527",
    "not_before":"1504126627",
    "resource":"https://vault.azure.net",
    "token_type":"Bearer"} 
    

    Vous pouvez utiliser ce jeton d’accès pour vous authentifier sur Azure Key Vault.  La requête CURL suivante montre comment lire un secret de Key Vault à l’aide de CURL et de l’API REST de Key Vault.  Il vous faut l’URL de votre Key Vault, qui se trouve dans la section Essentials de la page Overview de Key Vault.  Il vous faut également le jeton d’accès que vous avez obtenu lors de l’appel précédent. 

    curl 'https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    

    La réponse se présente ainsi :

    {"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}} 
    

Après avoir récupéré le secret à partir de Key Vault, vous pouvez l’utiliser pour vous authentifier auprès d’un service qui nécessite 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 effectuer cette opération par le biais de PowerShell ou de la CLI.

Étapes suivantes

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