Kurz: Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup k Azure Data Lake Storu

Spravované identity pro prostředky Azure jsou funkcí ID Microsoft Entra. Každá ze služeb Azure, které podporují spravované identity pro prostředky Azure, se řídí vlastní časovou osou. Než začnete, nezapomeňte zkontrolovat stav dostupnosti spravovaných identit pro váš prostředek a známé problémy.

V tomto kurzu se dozvíte, jak pomocí spravované identity přiřazené systémem pro virtuální počítač s Windows získat přístup k Azure Data Lake Storu. Spravované identity se automaticky spravují v Azure. Umožňují vaší aplikaci ověřovat se ve službách, které podporují ověřování Microsoft Entra, aniž by do kódu museli vkládat přihlašovací údaje.

V tomto článku získáte informace o těchto tématech:

  • Udělení přístupu virtuálnímu počítači ke službě Azure Data Lake Store
  • Získání přístupového tokenu pomocí identity virtuálního počítače a jeho použití k přístupu ke službě Azure Data Lake Store

Požadavky

Povolit

Povolení spravované identity přiřazené systémem je prostředí jedním kliknutím. Můžete ho buď povolit při vytváření virtuálního počítače, nebo ve vlastnostech existujícího virtuálního počítače.

Screenshot shows the System assigned tab for a virtual machine where you can turn on the System assigned status.

Povolení spravované identity přiřazené systémem na novém virtuálním počítači:

  1. Přihlaste se k portálu Azure Portal.

  2. Vytvoření virtuálního počítače s povolenou identitou přiřazenou systémem

Udělení přístupu

Teď můžete virtuálnímu počítači udělit přístup k souborům a složkám ve službě Azure Data Lake Store. Pro tento krok můžete použít stávající službu Data Lake Store nebo vytvořit novou. Pokud chcete vytvořit novou službu Data Lake Store pomocí webu Azure Portal, postupujte podle tohoto rychlého startu ke službě Azure Data Lake Store. Rychlé starty s využitím Azure CLI a Azure PowerShellu najdete v dokumentaci ke službě Azure Data Lake Store.

Ve službě Data Lake Store vytvořte novou složku a udělte identitě přiřazené systémem virtuálního počítače oprávnění. Identita potřebuje práva ke čtení, zápisu a spouštění souborů v této složce:

  1. Na webu Azure Portal vyberte v levém navigačním panelu Data Lake Store .
  2. Vyberte Službu Data Lake Store, kterou chcete použít pro účely tohoto kurzu.
  3. Na panelu příkazů vyberte Průzkumníka dat.
  4. Vybere se kořenová složka služby Data Lake Store. Na panelu příkazů vyberte Access .
  5. Vyberte Přidat. Do pole Vybrat zadejte název vašeho virtuálního počítače, například DevTestVM. Vyberte virtuální počítač z výsledků hledání a pak vyberte Vybrat.
  6. Vyberte Vybrat oprávnění. Vyberte oprávnění Číst a Spustit, přidejte je k Tato složka a přidejte je jako Položka oprávnění k přístupu. Vyberte OK. Oprávnění by mělo být úspěšně přidané.
  7. Zavřete okno Přístup.
  8. Pro tento kurz vytvořte novou složku. Na panelu příkazů vyberte Novou složku a pojmenujte novou složku, například TestFolder. Vyberte OK.
  9. Vyberte složku, kterou jste vytvořili, a pak na panelu příkazů vyberte Access .
  10. Podobně jako v kroku 5 vyberte Přidat, do pole Vybrat zadejte název virtuálního počítače, vyberte ho a vyberte Vybrat.
  11. Podobně jako v kroku 6 vyberte Vybrat oprávnění, vyberte Čtení, Zápis a Spustit, přidejte ji do této složky a přidejte jako položku oprávnění pro přístup a výchozí položku oprávnění. Vyberte OK. Oprávnění by mělo být úspěšně přidané.

Spravovaná identita přiřazená systémem virtuálního počítače teď může provádět všechny operace se soubory ve složce, kterou jste vytvořili. Další informace o správě přístupu ke službě Data Lake Store najdete v tomto článku o Řízení přístupu v Data Lake Store.

Přístup k datům

Azure Data Lake Store nativně podporuje ověřování Microsoft Entra, takže může přímo přijímat přístupové tokeny získané pomocí spravovaných identit pro prostředky Azure. Pokud se chcete ověřit v systému souborů Data Lake Store, odešlete přístupový token vydaný ID Microsoft Entra do koncového bodu systému souborů Data Lake Store v autorizační hlavičce. Záhlaví má formát Bearer <ACCESS_TOKEN_VALUE>. Další informace o podpoře ověřování Microsoft Entra ve službě Data Lake Store najdete v tématu Ověřování s využitím Microsoft Entra ID.

Poznámka:

Klientské sady SDK systému souborů Data Lake Store zatím spravované identity pro prostředky Azure nepodporují. Jakmile se do sady SDK přidá podpora, tento kurz budeme aktualizovat.

V tomto kurzu pomocí PowerShellu provedete ověření v rozhraní REST API systému souborů Data Lake Store, abyste mohli odesílat požadavky REST. Pokud chcete k ověření použít spravovanou identitu přiřazenou systémem virtuálního počítače, musíte požadavek odeslat z příslušného virtuálního počítače.

  1. Na portálu přejděte na Virtuální počítače, přejděte na virtuální počítač s Windows a v části Přehled vyberte Připojení.

  2. Zadejte své Uživatelské jméno a Heslo, které jste přidali při vytváření virtuálního počítače s Windows.

  3. Teď, když jste vytvořili vzdálenou plochu Připojení s virtuálním počítačem, otevřete PowerShell ve vzdálené relaci.

  4. Pomocí příkazu Invoke-WebRequest v PowerShellu požádejte místní spravované identity o koncový bod prostředků Azure k získání přístupového tokenu pro Azure Data Lake Store. Identifikátor prostředku pro Data Lake Store je https://datalake.azure.net/. Služba Data Lake hledá přesnou shodu s identifikátorem prostředku, proto je koncové lomítko důležité.

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

    Převeďte odpověď z objektu JSON na objekt PowerShellu.

    $content = $response.Content | ConvertFrom-Json
    

    Extrahujte z odpovědi přístupový token.

    $AccessToken = $content.access_token
    
  5. Zkontrolujte, jestli je všechno správně nakonfigurované. Pomocí Invoke-WebRequest v PowerShellu odešlete do koncového bodu REST vaší služby Data Lake Store požadavek na výpis složek v kořenové složce. Je důležité, aby řetězec "Bearer" v autorizační hlavičce má velké písmeno "B". Název služby Data Lake Store najdete v části Přehled služby Data Lake Store.

    Invoke-WebRequest -Uri https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -Headers @{Authorization="Bearer $AccessToken"}
    

    Úspěšná odpověď vypadá takto:

    StatusCode        : 200
    StatusDescription : OK
    Content           : {"FileStatuses":{"FileStatus":[{"length":0,"pathSuffix":"TestFolder","type":"DIRECTORY", "blockSize":0,"accessTime":1507934941392, "modificationTime":1507944835699,"replication":0, "permission":"770","ow..."
    RawContent        : HTTP/1.1 200 OK
                        Pragma: no-cache
                        x-ms-request-id: b4b31e16-e968-46a1-879a-3474aa7d4528
                        x-ms-webhdfs-version: 17.04.22.00
                        Status: 0x0
                        X-Content-Type-Options: nosniff
                        Strict-Transport-Security: ma...
    Forms             : {}
    Headers           : {[Pragma, no-cache], [x-ms-request-id, b4b31e16-e968-46a1-879a-3474aa7d4528],
                        [x-ms-webhdfs-version, 17.04.22.00], [Status, 0x0]...}
    Images            : {}
    InputFields       : {}
    Links             : {}
    ParsedHtml        : System.__ComObject
    RawContentLength  : 556
    
  6. Teď můžete zkusit do služby Data Lake Store nahrát soubor. Nejprve vytvořte soubor, který chcete nahrát.

    echo "Test file." > Test1.txt
    
  7. Pomocí Invoke-WebRequest v PowerShellu odešlete do koncového bodu REST vaší služby Data Lake Store požadavek na nahrání souboru do složky, kterou jste vytvořili dříve. Tento požadavek se skládá ze dvou kroků. V prvním kroku odešlete požadavek a budete přesměrování do umístění, do kterého by se soubor měl nahrát. V druhém kroku provedete samotné nahrání souboru. Pokud jste použili jiné hodnoty, než jsou uvedené v tomto kurzu, nezapomeňte nastavit název složky a souboru odpovídajícím způsobem.

    $HdfsRedirectResponse = Invoke-WebRequest -Uri https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE -Method PUT -Headers @{Authorization="Bearer $AccessToken"} -Infile Test1.txt -MaximumRedirection 0
    

    Pokud zkontrolujete hodnotu $HdfsRedirectResponse, měla by vypadat jako následující odpověď:

    PS C:\> $HdfsRedirectResponse
    
    StatusCode        : 307
    StatusDescription : Temporary Redirect
    Content           : {}
    RawContent        : HTTP/1.1 307 Temporary Redirect
                        Pragma: no-cache
                        x-ms-request-id: b7ab492f-b514-4483-aada-4aa0611d12b3
                        ContentLength: 0
                        x-ms-webhdfs-version: 17.04.22.00
                        Status: 0x0
                        X-Content-Type-Options: nosn...
    Headers           : {[Pragma, no-cache], [x-ms-request-id, b7ab492f-b514-4483-aada-4aa0611d12b3], 
                        [ContentLength, 0], [x-ms-webhdfs-version, 17.04.22.00]...}
    RawContentLength  : 0
    

    Dokončete nahrávání odesláním požadavku do koncového bodu přesměrování:

    Invoke-WebRequest -Uri $HdfsRedirectResponse.Headers.Location -Method PUT -Headers @{Authorization="Bearer $AccessToken"} -Infile Test1.txt -MaximumRedirection 0
    

    Úspěšná odpověď vypadá takto:

    StatusCode        : 201
    StatusDescription : Created
    Content           : {}
    RawContent        : HTTP/1.1 201 Created
                        Pragma: no-cache
                        x-ms-request-id: 1e70f36f-ead1-4566-acfa-d0c3ec1e2307
                        ContentLength: 0
                        x-ms-webhdfs-version: 17.04.22.00
                        Status: 0x0
                        X-Content-Type-Options: nosniff
                        Strict...
    Headers           : {[Pragma, no-cache], [x-ms-request-id, 1e70f36f-ead1-4566-acfa-d0c3ec1e2307],
                        [ContentLength, 0], [x-ms-webhdfs-version, 17.04.22.00]...}
    RawContentLength  : 0
    

Pomocí dalších rozhraní API systému souborů Data Lake Store můžete provádět připojování k souborům, stahování souborů a další.

Zakázat

Pokud chcete na virtuálním počítači zakázat identitu přiřazenou systémem, nastavte stav identity přiřazené systémem na Vypnuto.

Screenshot shows the System assigned tab for a virtual machine where you can turn off the System assigned status.

Další kroky

V tomto kurzu jste zjistili, jak použít spravovanou identitu přiřazenou systémem pro virtuální počítač s Windows pro přístup ke službě Azure Data Lake Store. Další informace o Azure Data Lake Store najdete tady: