Didacticiel : Utiliser une identité managée attribuée par le système de la machine virtuelle Linux pour accéder à Azure Data Lake StoreTutorial: Use a Linux VM system-assigned managed identity to access Azure Data Lake Store

Identités managées pour ressources Azure est une fonctionnalité d’Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Les services Azure prenant en charge les identités managées pour ressources Azure sont soumis à leur propre chronologie.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. 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.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Ce tutoriel vous indique comment utiliser une identité managée affectée par le système pour une machine virtuelle Linux afin d’accéder à Azure Data Lake Store.This tutorial shows you how to use a system-assigned managed identity for a Linux virtual machine (VM) to access Azure Data Lake Store. Vous allez apprendre à effectuer les actions suivantes :You learn how to:

Dans ce tutoriel, vous allez apprendre à :In this tutorial, you learn how to:

  • Accorder à votre machine virtuelle l’accès à Azure Data Lake StoreGrant your VM access to Azure Data Lake Store.
  • Obtenez un jeton d’accès à l’aide de l’identité managée attribuée par le système de la machine virtuelle pour accéder à Azure Data Lake Store.Get an access token by using the VM's system-assigned managed identity to access Azure Data Lake Store.

Conditions préalables requisesPrerequisites

Accorder l'accèsGrant access

Cette section montre comment accorder à votre machine virtuelle l’accès à des fichiers et des dossiers dans Azure Data Lake Store.This section shows how to grant your VM access to files and folders in Azure Data Lake Store. Pour cette étape, vous pouvez utiliser une instance Data Lake Store existante ou bien en créer une.For this step, you can use an existing Data Lake Store instance or create a new one. Pour créer une nouvelle instance Data Lake Store via le portail Azure, suivez ce Démarrage rapide de Azure Data Lake Store.To create a Data Lake Store instance by using the Azure portal, follow the Azure Data Lake Store quickstart. Des procédures de démarrage rapide utilisant Azure CLI et Azure PowerShell sont également décrites dans la Documentation Azure Data Lake Store.There are also quickstarts that use Azure CLI and Azure PowerShell in the Azure Data Lake Store documentation.

Dans Data Lake Store, créez un dossier et autorisez l’identité managée attribuée par le système de la machine virtuelle Linux à lire, écrire et exécuter des fichiers dans ce dossier :In Data Lake Store, create a new folder and grant our Linux VM system-assigned managed identity permission to read, write, and execute files in that folder:

  1. Dans le volet de gauche du portail Azure, sélectionnez Data Lake Store.In the Azure portal, select Data Lake Store in the left pane.
  2. Sélectionnez l’instance Data Lake Store que vous souhaitez utiliser.Select the Data Lake Store instance that you want to use.
  3. Cliquez sur Explorateur de données dans la barre de commandes.Select Data Explorer on the command bar.
  4. Le dossier racine de l’instance Data Lake Store est sélectionné.The root folder of the Data Lake Store instance is selected. Dans la barre de commandes, sélectionnez Accès.Select Access on the command bar.
  5. Sélectionnez Ajouter.Select Add. Dans le champ Sélectionner, saisissez le nom de votre machine virtuelle, par exemple DevTestVM.In the Select box, enter the name of your VM--for example, DevTestVM. Sélectionnez votre machine virtuelle à partir des résultats de recherche, puis cliquez sur Sélectionner.Select your VM from the search results, and then click Select.
  6. Cliquez sur Sélectionner les autorisations.Click Select Permissions. Sélectionnez Lire et Exécuter, ajoutez à Ce dossier et ajoutez en tant qu’une Autorisation d’accès uniquement.Select Read and Execute, add to This folder, and add as An access permission only. Sélectionnez OK.Select Ok. L’autorisation doit être ajoutée avec succès.The permission should be added successfully.
  7. Fermez le panneau Accès.Close the Access pane.
  8. Pour ce didacticiel, créons un nouveau dossier.For this tutorial, create a new folder. Cliquez sur Nouveau dossier dans la barre de commandes et donnez-lui un nom, par exemple TestFolder.Select New Folder on the command bar, and give the new folder a name--for example TestFolder. Sélectionnez OK.Select Ok.
  9. Sélectionnez le dossier que vous avez créé, puis sélectionnez accès sur la barre de commandes.Select the folder that you created, and then select Access on the command bar.
  10. Comme à l’étape 5, sélectionnez Ajouter.Similar to step 5, select Add. Dans le champ Sélectionner, saisissez le nom de votre machine virtuelle.In the Select box, enter the name of your VM. Sélectionnez votre machine virtuelle à partir des résultats de recherche, puis cliquez sur Sélectionner.Select your VM from the search results, and then click Select.
  11. Comme à l’étape 6, cliquez sur Sélectionner les autorisations.Similar to step 6, select Select Permissions. Cliquez sur Lire, Écrire et Exécuter, ajoutez Ce dossier, et ajoutez en tant qu’Une entrée d’autorisation d’accès et une entrée d’autorisation par défaut.Select Read, Write, and Execute, add to This folder, and add as An access permission entry and a default permission entry. Sélectionnez OK.Select Ok. L’autorisation doit être ajoutée avec succès.The permission should be added successfully.

Les identités managées des ressources Azure peuvent désormais effectuer toutes les opérations sur les fichiers du dossier que vous avez créé.Managed identities for Azure resources can now perform all operations on files in the folder that you created. Pour plus d’informations sur la gestion de l’accès à Data Lake Store, lisez cet article sur le Contrôle d’accès dans Data Lake Store.For more information on managing access to Data Lake Store, see Access Control in Data Lake Store.

Obtention d’un jeton d’accèsGet an access token

Cette section montre comment obtenir un jeton d’accès et appeler le système de fichiers Data Lake Store.This section shows how to obtain an access token and call the Data Lake Store file system. Azure Data Lake Store prenant en charge Azure AD Authentication en mode natif, il peut accepter directement des jetons d’accès obtenus à l’aide d’identités managées attribuées par le système pour les ressources Azure.Azure Data Lake Store natively supports Azure AD authentication, so it can directly accept access tokens obtained via using managed identities for Azure resources. Pour s’authentifier sur le système de fichiers de Data Lake Store, vous envoyez un jeton d’accès émis par Azure AD pour votre point de terminaison de système de fichiers de Data Lake Store.To authenticate to the Data Lake Store file system, you send an access token issued by Azure AD to your Data Lake Store file system endpoint. Le jeton d’accès est un en-tête d’autorisation au format « Porteur <ACCESS_TOKEN_VALUE> ».The access token is in an authorization header in the format "Bearer <ACCESS_TOKEN_VALUE>". Pour en savoir plus sur la prise en charge de Data Lake Store pour Azure AD Authentication, lire Authentification auprès de Data Lake Store à l’aide de Azure Active Directory.To learn more about Data Lake Store support for Azure AD authentication, see Authentication with Data Lake Store using Azure Active Directory.

Dans ce didacticiel, vous vous authentifiez sur l’API REST du système de fichiers de Data Lake Store à l’aide de cURL pour effectuer des requêtes REST.In this tutorial, you authenticate to the REST API for the Data Lake Store file system by using cURL to make REST requests.

Notes

Les kits de développement logiciel (SDK) clients du système de fichiers de Data Lake Store ne gèrent pas encore les identités managées pour les ressources Azure.The client SDKs for the Data Lake Store file system do not yet support managed identities for Azure resources.

Pour effectuer cette procédure, vous avez besoin d’un client SSH.To complete these steps, you need an SSH client. Si vous utilisez Windows, vous pouvez utiliser le client SSH dans le Sous-système Windows pour Linux.If you are using Windows, you can use the SSH client in the Windows Subsystem for 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 p.ur les machines virtuelles Linux dans Azure.If you need assistance configuring your SSH client's keys, see How to use SSH keys with Windows on Azure or How to create and use an SSH public and private key pair for Linux VMs in Azure.

  1. Dans le portail, accédez à votre machine virtuelle Linux.In the portal, browse to your Linux VM. Dans Vue d’ensemble, sélectionnez Connecter.In Overview, select Connect.

  2. Connectez-vous à la machine virtuelle à l’aide du client SSH de votre choix.Connect to the VM by using the SSH client of your choice.

  3. Dans la fenêtre du terminal, à l’aide de cURL, envoyez une requête aux identités managées locales Azure pour le point de terminaison des ressources Azure afin d’obtenir un jeton d’accès au système de fichiers de Data Lake Store.In the terminal window, by using cURL, make a request to the local managed identities Azure for Azure resources endpoint to get an access token for the Data Lake Store file system. L’identificateur de ressources pour Data Lake Store est https://datalake.azure.net/.The resource identifier for Data Lake Store is https://datalake.azure.net/. Il est important d’inclure la barre oblique finale dans l’identificateur de ressource.It's important to include the trailing slash in the resource identifier.

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fdatalake.azure.net%2F' -H Metadata:true   
    

    Une réponse réussie retourne le jeton d’accès utilisé pour s’authentifier auprès de Data Lake Store :A successful response returns the access token that you use to authenticate to Data Lake Store:

    {"access_token":"eyJ0eXAiOiJ...",
     "refresh_token":"",
     "expires_in":"3599",
     "expires_on":"1508119757",
     "not_before":"1508115857",
     "resource":"https://datalake.azure.net/",
     "token_type":"Bearer"}
    
  4. À l’aide de cURL, faites une requête au point de terminaison REST du système de fichiers de votre instance Data Lake Store pour répertorier les dossiers dans le dossier racine.By using cURL, make a request to your Data Lake Store file system's REST endpoint to list the folders in the root folder. Il s’agit d’un moyen simple de vérifier que tout est correctement configuré.This is a simple way to check that everything is configured correctly. Copiez la valeur du jeton d’accès de l’étape précédente.Copy the value of the access token from the previous step. Il est important que la chaîne « Porteur » de l’en-tête d’autorisation comporte un « P » majuscule.It's important that the string "Bearer" in the Authorization header has a capital "B." Vous pouvez rechercher le nom de votre instance Data Lake Store dans la section Vue d’ensemble du panneau Data Lake Store dans le portail Azure.You can find the name of your Data Lake Store instance in the Overview section of the Data Lake Store pane in the Azure portal.

    curl https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -H "Authorization: Bearer <ACCESS_TOKEN>"
    

    Une réponse correcte se présente ainsi :A successful response looks like this:

    {"FileStatuses":{"FileStatus":[{"length":0,"pathSuffix":"TestFolder","type":"DIRECTORY","blockSize":0,"accessTime":1507934941392,"modificationTime":1508105430590,"replication":0,"permission":"770","owner":"bd0e76d8-ad45-4fe1-8941-04a7bf27f071","group":"bd0e76d8-ad45-4fe1-8941-04a7bf27f071"}]}}
    
  5. Vous pouvez maintenant essayer de charger un fichier sur votre instance Data Lake Store.Now you can try uploading a file to your Data Lake Store instance. Commencez par créer un fichier à charger.First, create a file to upload.

    echo "Test file." > Test1.txt
    
  6. À l’aide de cURL, faites une requête au point de terminaison REST du système de fichiers de votre instance Data Lake Store pour charger le fichier dans le dossier créé précédemment.By using cURL, make a request to your Data Lake Store file system's REST endpoint to upload the file to the folder that you created earlier. Le chargement implique une redirection, que cURL suit automatiquement.The upload involves a redirect, and cURL follows the redirect automatically.

    curl -i -X PUT -L -T Test1.txt -H "Authorization: Bearer <ACCESS_TOKEN>" 'https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/<FOLDER_NAME>/Test1.txt?op=CREATE' 
    

    Une réponse correcte se présente ainsi :A successful response looks like this:

    HTTP/1.1 100 Continue
    HTTP/1.1 307 Temporary Redirect
    Cache-Control: no-cache, no-cache, no-store, max-age=0
    Pragma: no-cache
    Expires: -1
    Location: https://mytestadls.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE&write=true
    x-ms-request-id: 756f6b24-0cca-47ef-aa12-52c3b45b954c
    ContentLength: 0
    x-ms-webhdfs-version: 17.04.22.00
    Status: 0x0
    X-Content-Type-Options: nosniff
    Strict-Transport-Security: max-age=15724800; includeSubDomains
    Date: Sun, 15 Oct 2017 22:10:30 GMT
    Content-Length: 0
    
    HTTP/1.1 100 Continue
    
    HTTP/1.1 201 Created
    Cache-Control: no-cache, no-cache, no-store, max-age=0
    Pragma: no-cache
    Expires: -1
    Location: https://mytestadls.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE&write=true
    x-ms-request-id: af5baa07-3c79-43af-a01a-71d63d53e6c4
    ContentLength: 0
    x-ms-webhdfs-version: 17.04.22.00
    Status: 0x0
    X-Content-Type-Options: nosniff
    Strict-Transport-Security: max-age=15724800; includeSubDomains
    Date: Sun, 15 Oct 2017 22:10:30 GMT
    Content-Length: 0
    

À l’aide d’autres API de système de fichiers de Data Lake Store, vous pouvez ajouter à des fichiers, télécharger des fichiers et bien plus encore.By using other APIs for the Data Lake Store file system, you can append to files, download files, and more.

Étapes suivantesNext steps

Dans ce didacticiel, vous avez appris à utiliser une identité managée attribuée par le système de la machine virtuelle Linux pour accéder à Azure Data Lake Store.In this tutorial, you learned how to use a Linux VM system-assigned managed identity to access an Azure Data Lake Store. Pour en savoir plus sur Azure Data Lake Store, consultez :To learn more about Azure Data Lake Store see: