Didacticiel : Utiliser une identité managée attribuée par le système de la machine virtuelle Linux pour accéder à Azure Data Lake Store
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 utiliser une identité managée affectée par le système pour une machine virtuelle Linux afin d’accéder à Azure Data Lake Store. Vous allez apprendre à effectuer les actions suivantes :
Dans ce tutoriel, vous allez apprendre à :
- Accorder à votre machine virtuelle l’accès à 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.
Conditions préalables requises
- Si vous n’êtes pas familiarisé de la fonctionnalité identités managées pour ressources Azure, consultez cette Vue d’ensemble.
- Si vous n’avez pas encore de compte Azure, Inscrivez-vous sur un compte gratuit avant de continuer.
- Pour effectuer les opérations de création de ressource et de gestion de rôles nécessaires, votre compte doit bénéficier des autorisations « Propriétaire » avec l’étendue appropriée (votre abonnement ou groupe de ressources). Si vous avez besoin d’aide concernant l’attribution de rôle, consultez Attribuer des rôles Azure pour gérer l’accès aux ressources de votre abonnement Azure.
Accorder l'accès
Cette section montre comment accorder à votre machine virtuelle l’accès à des fichiers et des dossiers dans Azure Data Lake Store. Pour cette étape, vous pouvez utiliser une instance Data Lake Store existante ou bien en créer une. Pour créer une nouvelle instance Data Lake Store via le portail Azure, suivez ce Démarrage rapide de Azure Data Lake Store. Des procédures de démarrage rapide utilisant Azure CLI et Azure PowerShell sont également décrites dans la Documentation Azure Data Lake Store.
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 :
- Dans le volet de gauche du portail Azure, sélectionnez Data Lake Store.
- Sélectionnez l’instance Data Lake Store que vous souhaitez utiliser.
- Cliquez sur Explorateur de données dans la barre de commandes.
- Le dossier racine de l’instance Data Lake Store est sélectionné. Dans la barre de commandes, sélectionnez Accès.
- Sélectionnez Ajouter. Dans le champ Sélectionner, saisissez le nom de votre machine virtuelle, par exemple DevTestVM. Sélectionnez votre machine virtuelle à partir des résultats de recherche, puis cliquez sur Sélectionner.
- Sélectionnez Sélectionner les autorisations. Sélectionnez Lire et Exécuter, ajoutez à Ce dossier et ajoutez en tant qu’une Autorisation d’accès uniquement. Sélectionnez OK. L’autorisation doit être ajoutée avec succès.
- Fermez le panneau Accès.
- Pour ce didacticiel, créons un nouveau dossier. Cliquez sur Nouveau dossier dans la barre de commandes et donnez-lui un nom, par exemple TestFolder. Sélectionnez OK.
- Sélectionnez le dossier que vous avez créé, puis sélectionnez accès sur la barre de commandes.
- Comme à l’étape 5, sélectionnez Ajouter. Dans le champ Sélectionner, saisissez le nom de votre machine virtuelle. Sélectionnez votre machine virtuelle à partir des résultats de recherche, puis cliquez sur Sélectionner.
- Comme à l’étape 6, cliquez sur Sélectionner les autorisations. 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. Sélectionnez OK. L’autorisation doit être ajoutée avec succès.
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éé. 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.
Obtention d’un jeton d’accès
Cette section montre comment obtenir un jeton d’accès et appeler le système de fichiers Data Lake Store. Azure Data Lake Storage prenant en charge l’authentification Microsoft Entra en mode natif, il peut accepter directement des jetons d’accès obtenus via l’utilisation d’identités managées pour les ressources Azure. Pour s’authentifier sur le système de fichiers Data Lake Storage, vous envoyez un jeton d’accès émis par Microsoft Entra ID au point de terminaison de votre système de fichiers de Data Lake Storage. Le jeton d’accès est un en-tête d’autorisation au format « Porteur <ACCESS_TOKEN_VALUE> ». Pour en savoir plus sur la prise en charge de Data Lake Storage pour l’authentification Microsoft Entra, consultez Authentification auprès de Data Lake Storage à l’aide de Microsoft Entra ID.
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.
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.
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 p.ur les machines virtuelles Linux dans Azure.
Dans le portail, accédez à votre machine virtuelle Linux. Dans Vue d’ensemble, sélectionnez Connecter.
Connectez-vous à la machine virtuelle à l’aide du client SSH de votre choix.
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. L’identificateur de ressources pour Data Lake Store est
https://datalake.azure.net/
. Il est important d’inclure la barre oblique finale dans l’identificateur de ressource.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 :
{"access_token":"eyJ0eXAiOiJ...", "refresh_token":"", "expires_in":"3599", "expires_on":"1508119757", "not_before":"1508115857", "resource":"https://datalake.azure.net/", "token_type":"Bearer"}
À 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. Il s’agit d’un moyen simple de vérifier que tout est correctement configuré. Copiez la valeur du jeton d’accès de l’étape précédente. Il est important que la chaîne « Bearer » (Porteur) de l’en-tête d’autorisation comporte un « B » majuscule. 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.
curl https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -H "Authorization: Bearer <ACCESS_TOKEN>"
Une réponse correcte se présente ainsi :
{"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"}]}}
Vous pouvez maintenant essayer de charger un fichier sur votre instance Data Lake Store. Commencez par créer un fichier à charger.
echo "Test file." > Test1.txt
À 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. Le chargement implique une redirection, que cURL suit automatiquement.
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 :
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.
Étapes suivantes
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. Pour en savoir plus sur Azure Data Lake Store, consultez :