Samouczek: używanie przypisanej przez system tożsamości zarządzanej na maszynie wirtualnej z systemem Windows do uzyskiwania dostępu do usługi Azure Data Lake Store
Tożsamości zarządzane dla zasobów platformy Azure to funkcja identyfikatora Entra firmy Microsoft. Każda usługa platformy Azure obsługująca tożsamości zarządzane dla zasobów platformy Azure ma własną oś czasu. Pamiętaj, aby przed rozpoczęciem sprawdzić stan dostępności tożsamości zarządzanych dla swojego zasobu i znane problemy.
W tym samouczku przedstawiono sposób używania tożsamości zarządzanej przypisanej przez system dla maszyny wirtualnej z systemem Windows w celu uzyskania dostępu do usługi Azure Data Lake Store. Tożsamości zarządzane są automatycznie zarządzane przez platformę Azure. Umożliwiają one aplikacji uwierzytelnianie w usługach obsługujących uwierzytelnianie firmy Microsoft Entra bez konieczności wstawiania poświadczeń do kodu.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Udzielanie maszynie wirtualnej praw dostępu do usługi Azure Data Lake Store
- Uzyskiwanie tokenu dostępu przy użyciu tożsamości maszyny wirtualnej oraz używanie go do uzyskiwania dostępu do usługi Azure Data Lake Store
Wymagania wstępne
- Znajomość tożsamości zarządzanych. Jeśli nie znasz funkcji tożsamości zarządzanych dla zasobów platformy Azure, zobacz to omówienie.
- Konto platformy Azure, utwórz bezpłatne konto.
- Uprawnienia "Właściciel" w odpowiednim zakresie (subskrypcja lub grupa zasobów) do wykonania wymaganych kroków tworzenia zasobów i zarządzania rolami. Jeśli potrzebujesz pomocy dotyczącej przypisywania ról, zobacz Przypisywanie ról platformy Azure w celu zarządzania dostępem do zasobów subskrypcji platformy Azure.
- Potrzebna jest również maszyna wirtualna z systemem Windows z włączoną przypisaną przez system tożsamościami zarządzanymi.
- Jeśli musisz utworzyć maszynę wirtualną na potrzeby tego samouczka, możesz skorzystać z artykułu zatytułowanego Tworzenie maszyny wirtualnej z włączoną tożsamością przypisaną przez system
Włączanie
Włączenie tożsamości zarządzanej przypisanej przez system jest jednym kliknięciem. Można ją włączyć podczas tworzenia maszyny wirtualnej lub we właściwościach istniejącej maszyny wirtualnej.
Aby włączyć tożsamość zarządzaną przypisaną przez system na nowej maszynie wirtualnej:
Zaloguj się do witryny Azure Portal.
Udzielanie dostępu
Teraz możesz udzielić maszynie wirtualnej praw dostępu do plików i folderów w usłudze Azure Data Lake Store. W tym kroku możesz użyć istniejącej usługi Data Lake Store lub utworzyć nową. Aby utworzyć nową usługę Data Lake Store przy użyciu witryny Azure Portal, wykonaj czynności opisane w przewodniku Szybki start dotyczącym usługi Azure Data Lake Store. W dokumentacji usługi Azure Data Lake Store są również dostępne przewodniki Szybki start, które używają interfejsu wiersza polecenia platformy Azure oraz programu Azure PowerShell.
W usłudze Data Lake Store utwórz nowy folder i przyznaj przypisane przez system uprawnienia tożsamości maszyny wirtualnej. Tożsamość musi mieć uprawnienia do odczytu, zapisu i wykonywania plików w tym folderze:
- W witrynie Azure Portal wybierz pozycję Data Lake Store w obszarze nawigacji po lewej stronie.
- Wybierz usługę Data Lake Store, której chcesz użyć w tym samouczku.
- Wybierz pozycję Eksplorator danych na pasku poleceń.
- Zostanie zaznaczony folder główny usługi Data Lake Store. Wybierz pozycję Dostęp na pasku poleceń.
- Wybierz Dodaj. W polu Wybierz wprowadź nazwę maszyny wirtualnej, na przykład DevTestVM. Wybierz, aby wybrać maszynę wirtualną z wyników wyszukiwania, a następnie wybierz pozycję Wybierz.
- Wybierz pozycję Wybierz uprawnienia. Wybierz pozycje Odczyt i Wykonywanie, dodaj do pozycji Ten folder i dodaj jako Tylko uprawnienie dostępu. Wybierz OK Dodawanie uprawnienia powinno zakończyć się pomyślnie.
- Zamknij blok Dostęp.
- W tym samouczku utworzymy nowy folder. Wybierz pozycję Nowy folder na pasku poleceń i nadaj nowemu folderowi nazwę, na przykład TestFolder. Wybierz OK
- Wybierz utworzony folder, a następnie wybierz pozycję Dostęp na pasku poleceń.
- Podobnie jak w kroku 5, wybierz pozycję Dodaj, w polu Wybierz wprowadź nazwę maszyny wirtualnej, wybierz ją i wybierz pozycję Wybierz.
- Podobnie jak w kroku 6, wybierz pozycję Wybierz uprawnienia, wybierz pozycję Odczyt, Zapis i Wykonaj, dodaj do tego folderu i dodaj jako wpis uprawnień dostępu i domyślny wpis uprawnień. Wybierz OK Dodawanie uprawnienia powinno zakończyć się pomyślnie.
Przypisana przez system tożsamość usługi zarządzanej maszyny wirtualnej może teraz wykonywać wszystkie operacje na plikach w utworzonym folderze. Aby uzyskać więcej informacji na temat zarządzania dostępem do usługi Data Lake Store, przeczytaj ten artykuł w sekcji Kontrola dostępu w usłudze Data Lake Store.
Uzyskiwanie dostępu do danych
Usługa Azure Data Lake Store natywnie obsługuje uwierzytelnianie firmy Microsoft Entra, dzięki czemu może bezpośrednio akceptować tokeny dostępu uzyskane przy użyciu tożsamości zarządzanych dla zasobów platformy Azure. Aby uwierzytelnić się w systemie plików usługi Data Lake Store, należy wysłać token dostępu wystawiony przez identyfikator firmy Microsoft do punktu końcowego systemu plików usługi Data Lake Store w nagłówku autoryzacji. Nagłówek ma format "Bearer <ACCESS_TOKEN_VALUE>". Aby dowiedzieć się więcej o obsłudze uwierzytelniania usługi Data Lake Store w usłudze Microsoft Entra, przeczytaj Artykuł Authentication with Data Lake Store using Microsoft Entra ID (Uwierzytelnianie za pomocą usługi Data Lake Store przy użyciu identyfikatora Entra firmy Microsoft)
Uwaga
Zestawy SDK klientów systemu plików usługi Data Lake Store jeszcze nie obsługują przypisanej przez system tożsamości zarządzanej dla zasobów platformy Azure. Ten samouczek zostanie zaktualizowany po dodaniu obsługi do zestawów SDK.
W tym samouczku uwierzytelniasz się w interfejsie REST API dla systemu plików usługi Data Lake Store przy użyciu programu PowerShell w celu wysłania żądań REST. Aby użyć przypisanej przez system tożsamości zarządzanej maszyny wirtualnej na potrzeby uwierzytelniania, musisz wysłać żądania z maszyny wirtualnej.
W portalu przejdź do pozycji Maszyny wirtualne, przejdź do maszyny wirtualnej z systemem Windows, a następnie w obszarze Przegląd wybierz pozycję Połączenie.
Wprowadź nazwę użytkownika i hasło dodane podczas tworzenia maszyny wirtualnej z systemem Windows.
Po utworzeniu Połączenie pulpitu zdalnego z maszyną wirtualną otwórz program PowerShell w sesji zdalnej.
Używając polecenia
Invoke-WebRequest
programu PowerShell, wyślij żądanie do lokalnego punktu końcowego tożsamości zarządzanych dla zasobów platformy Azure, aby uzyskać token dostępu na potrzeby usługi Azure Data Lake Store. Identyfikator zasobu usługi Data Lake Store tohttps://datalake.azure.net/
. Usługa Data Lake wykonuje dokładne dopasowanie identyfikatora zasobu — końcowy ukośnik jest ważny.$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"}
Skonwertuj odpowiedź z obiektu JSON do obiektu PowerShell.
$content = $response.Content | ConvertFrom-Json
Wyodrębnij token dostępu z odpowiedzi.
$AccessToken = $content.access_token
Sprawdź, czy wszystko jest poprawnie skonfigurowane. Za pomocą polecenia „Invoke-WebRequest” programu PowerShell wyślij żądanie do punktu końcowego REST usługi Data Lake Store, aby wyświetlić listę folderów w folderze głównym. Ważne jest, aby ciąg "Bearer" w nagłówku autoryzacji miał wielkie litery "B". Nazwę usługi Data Lake Store można znaleźć w sekcji Przegląd usługi Data Lake Store.
Invoke-WebRequest -Uri https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -Headers @{Authorization="Bearer $AccessToken"}
Odpowiedź oznaczająca powodzenie wygląda następująco:
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
Teraz możesz spróbować przekazać plik do usługi Data Lake Store. Najpierw utwórz plik do przekazania.
echo "Test file." > Test1.txt
Za pomocą polecenia
Invoke-WebRequest
programu PowerShell wyślij żądanie do punktu końcowego REST usługi Data Lake Store, aby przekazać plik do utworzonego wcześniej folderu. To żądanie ma dwa kroki. W pierwszym kroku tworzy się żądanie i uzyskuje przekierowanie do lokalizacji, do której należy przekazać plik. W drugim kroku plik zostaje faktycznie przekazany. Pamiętaj, aby odpowiednio ustawić nazwę folderu i pliku, jeżeli użyto innych wartości niż stosowanych w tym samouczku.$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
Jeśli sprawdzisz wartość
$HdfsRedirectResponse
, powinna ona wyglądać podobnie do następującej odpowiedzi: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
Zakończ przekazywanie, wysyłając żądanie do punktu końcowego przekierowania:
Invoke-WebRequest -Uri $HdfsRedirectResponse.Headers.Location -Method PUT -Headers @{Authorization="Bearer $AccessToken"} -Infile Test1.txt -MaximumRedirection 0
Odpowiedź oznaczająca powodzenie wygląda następująco:
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
Za pomocą innych interfejsów API systemu plików usługi Data Lake Store można dołączać dane do plików, pobierać pliki i wykonywać inne operacje.
Wyłącz
Aby wyłączyć tożsamość przypisaną przez system na maszynie wirtualnej, ustaw stan tożsamości przypisanej przez system na wartość Wyłączone.
Następne kroki
W tym samouczku przedstawiono sposób użycia przypisanej przez system tożsamości zarządzanej na maszynie wirtualnej z systemem Windows w celu uzyskania dostępu do usługi Azure Data Lake Store. Aby dowiedzieć się więcej o usłudze Azure Data Lake Store, zobacz: