Zelfstudie: Een door het Linux-VM-systeem toegewezen beheerde identiteit gebruiken voor toegang tot Azure Data Lake Store

Beheerde identiteiten voor Azure-resources is een functie van Microsoft Entra ID. Voor alle Azure-services die beheerde identiteiten voor Azure-resources ondersteunen, geldt een eigen tijdlijn. Controleer de beschikbaarheidsstatus van beheerde identiteiten voor uw resource en eventuele bekende problemen voordat u begint.

Deze zelfstudie laat zien hoe u toegang krijgt tot Azure Data Lake Store met een door het systeem toegewezen beheerde identiteit voor een virtuele Linux-machine (VM). U leert het volgende:

In deze zelfstudie leert u het volgende:

  • Uw virtuele machine toegang verlenen tot Azure Data Lake Storage.
  • Een toegangstoken ophalen met behulp van de door het systeem toegewezen beheerde identiteit voor de Linux-VM om toegang te krijgen tot Azure Data Lake Storage.

Vereisten

Toegang verlenen

In deze sectie leert u hoe u uw VM toegang tot bestanden en mappen in Azure Data Lake Storage kunt verlenen. Voor deze stap kunt u een bestaand Data Lake Storage-exemplaar gebruiken, of een nieuw exemplaar maken. Als u een Data Lake Storage wilt maken met behulp van Azure Portal, volgt u deze snelstart voor Azure Data Lake Storage. Er zijn ook snelstarts in de documentatie over Azure Data Lake Storage voor het gebruik van Azure CLI en Azure Powershell.

Maak een nieuwe map in Data Lake Store, en verleen de door het systeem toegewezen beheerde identiteit voor de Linux-VM toestemming voor het lezen, schrijven en uitvoeren van bestanden in die map:

  1. Selecteer in Azure Portal Data Lake Storage in het linkerdeelvenster.
  2. Selecteer het Data Lake Storage-exemplaar dat u wilt gebruiken.
  3. Selecteer Data Explorer in de opdrachtbalk.
  4. De hoofdmap van het Data Lake Storage-exemplaar wordt geselecteerd. Selecteer Toegang op de opdrachtbalk.
  5. Selecteer Toevoegen. Voer in het vak Selecteren de naam van uw virtuele machine in, bijvoorbeeld DevTestVM. Selecteer uw virtuele machine in de zoekresultaten en selecteer vervolgens Selecteren.
  6. Selecteer Machtigingen selecteren. Selecteer Lezen en Uitvoeren, voeg deze toe aan Deze map als Alleen een toegangsmachtiging. Selecteer OK. De machtiging wordt toegevoegd.
  7. Sluit het deelvenster Toegang.
  8. Voor deze zelfstudie maakt u een nieuwe map. Selecteer Nieuwe map in de opdrachtbalk en geef de nieuwe map een naam, bijvoorbeeld TestFolder. Selecteer OK.
  9. Selecteer de map die u hebt gemaakt en selecteer vervolgens Toegang op de opdrachtbalk.
  10. Selecteer Toevoegen, net als in stap 5. Voer in het vak Selecteren de naam van uw virtuele machine in. Selecteer uw virtuele machine in de zoekresultaten en selecteer vervolgens Selecteren.
  11. Selecteer Machtigingen selecteren, net als bij stap 6. Selecteer Lezen, Schrijven en Uitvoeren, voeg deze toe aan Deze map als Een toegangsmachtiging en een standaardmachtiging. Selecteer OK. De machtiging wordt toegevoegd.

Beheerde identiteiten voor Azure-resources kunnen nu alle bewerkingen uitvoeren op bestanden in de map die u hebt gemaakt. Lees het artikel over toegangsbeheer in Data Lake Storage voor meer informatie over het beheren van de toegang tot Data Lake Storage.

Een toegangstoken opvragen

In deze sectie leert u hoe u een toegangstoken kunt downloaden en het bestandssysteem van Data Lake Storage aanroepen. Azure Data Lake Store biedt systeemeigen ondersteuning voor Microsoft Entra-verificatie, zodat toegangstokens die zijn verkregen via beheerde identiteiten voor Azure-resources, rechtstreeks kunnen accepteren. Als u zich wilt verifiëren bij het Data Lake Store-bestandssysteem, verzendt u een toegangstoken dat is uitgegeven door Microsoft Entra ID naar uw Data Lake Store-bestandssysteemeindpunt. Het toegangstoken bevindt zich in een autorisatie-header met de notatie "Bearer <ACCESS_TOKEN_VALUE>". Zie Verificatie met Data Lake Store met behulp van Microsoft Entra-id voor meer informatie over data lake store-ondersteuning voor Microsoft Entra-verificatie.

In deze zelfstudie gebruikt u cURL voor het maken van REST-aanvragen voor verificatie bij de REST-API van het Data Lake Storage-bestandssysteem.

Notitie

Beheerde identiteiten voor Azure-resources worden nog niet ondersteund in de client-SDK's van het Data Lake Storage-bestandssysteem.

U hebt een SSH-client nodig om deze stappen uit te voeren. Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Zie De sleutels van uw SSH-client gebruiken onder Windows in Azure of Een sleutelpaar met een openbare SSH-sleutel en een privé-sleutel maken en gebruiken voor virtuele Linux-machines in Azure als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client.

  1. Blader in de portal naar uw Linux-VM. Selecteer Verbinden in Overzicht.

  2. Maak verbinding met de VM met behulp van de SSH-client van uw keuze.

  3. Dien in het terminalvenster met behulp van cURL een aanvraag in bij het lokale eindpunt van beheerde identiteiten voor Azure-resources om een toegangstoken voor het Data Lake Storage-bestandssysteem op te halen. De resource-id voor Data Lake Storage is https://datalake.azure.net/. Het is belangrijk om de afsluitende slash in de resource-id op te nemen.

    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   
    

    Een succesvol antwoord retourneert het toegangstoken dat u gebruikt voor verificatie bij Data Lake Storage:

    {"access_token":"eyJ0eXAiOiJ...",
     "refresh_token":"",
     "expires_in":"3599",
     "expires_on":"1508119757",
     "not_before":"1508115857",
     "resource":"https://datalake.azure.net/",
     "token_type":"Bearer"}
    
  4. Verzend met behulp van cURL een aanvraag naar het REST-eindpunt van het Data Lake Storage-bestandssysteem om de mappen in de hoofdmap weer te geven. Dit is een eenvoudige manier om te controleren of alles juist is geconfigureerd. Kopieer de waarde van het toegangstoken uit de vorige stap. Het is belangrijk dat de tekenreeks 'Bearer' in de autorisatieheader een hoofdletter 'B' heeft. U vindt de naam van uw Data Lake Store-exemplaar in de sectie Overzicht van het deelvenster Data Lake Store in Azure Portal.

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

    Een geslaagde respons ziet er als volgt uit:

    {"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. Nu kunt u proberen een bestand te uploaden naar uw Data Lake Storage-exemplaar. Maak eerst een bestand om te uploaden.

    echo "Test file." > Test1.txt
    
  6. Verzend met behulp van cURL een aanvraag naar het REST-eindpunt van uw Data Lake Storage-bestandssysteem om het bestand te uploaden naar de map die u eerder hebt gemaakt. Het uploaden omvat een omleiding en cURL volgt de omleiding automatisch.

    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' 
    

    Een geslaagde respons ziet er als volgt uit:

    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
    

Met andere API's voor het Data Lake Storage-bestandssysteem kunt u toevoegen aan bestanden, bestanden downloaden, en nog veel meer.

Volgende stappen

In deze zelfstudie hebt u geleerd een door het systeem toegewezen beheerde identiteit voor een virtuele Linux-machine (VM) te gebruiken om toegang tot een Azure Data Lake Store te krijgen. Zie voor meer informatie over Azure Data Lake Storage: