Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Ta dokumentacja została wycofana i może nie zostać zaktualizowana.
W tym artykule opisano starsze wzorce konfigurowania dostępu do usługi Azure Data Lake Storage. Usługa Databricks zaleca używanie Unity Catalog z zarządzanymi tożsamościami Azure. Zobacz Używanie tożsamości zarządzanych platformy Azure w Unity Catalog, aby uzyskać dostęp do magazynu.
Ten samouczek przeprowadzi Cię przez wszystkie kroki niezbędne do nawiązania połączenia z usługi Azure Databricks do usługi Azure Data Lake Storage przy użyciu protokołu OAuth 2.0 z główną jednostką usługi Microsoft Entra ID.
Requirements
Przed rozpoczęciem tego samouczka wykonaj następujące zadania:
- Tworzenie obszaru roboczego usługi Azure Databricks. Zobacz Wdrażanie obszaru roboczego przy użyciu witryny Azure Portal
- Utwórz konto usługi Azure Data Lake Storage. Zobacz Wprowadzenie: utworzenie konta magazynowego Azure Data Lake Storage.
- Tworzenie usługi Azure Key Vault. Zobacz Szybki start: tworzenie usługi Azure Key Vault
Krok 1. Tworzenie jednostki usługi Microsoft Entra ID
Aby używać zasad usług do łączenia się z usługą Azure Data Lake Storage, administrator musi utworzyć nową aplikację Microsoft Entra ID. Jeśli masz już dostępną jednostkę usługi Microsoft Entra ID, przejdź do Kroku 2: Utwórz sekretny klucz klienta dla jednostki usługi.
Aby utworzyć jednostkę usługi Microsoft Entra ID, postępuj według poniższych instrukcji:
Zaloguj się do witryny Azure Portal.
Uwaga / Notatka
Portal, który ma być używany, różni się w zależności od tego, czy aplikacja Microsoft Entra ID działa w chmurze publicznej platformy Azure, czy w chmurze krajowej lub suwerennej. Aby uzyskać więcej informacji, zobacz Chmury krajowe.
Jeśli masz dostęp do wielu dzierżaw, subskrypcji lub katalogów, kliknij ikonę Katalogi + subskrypcje w górnym menu, aby przełączyć się do katalogu, w którym chcesz utworzyć główną usługę.
Wyszukaj i wybierz <Microsoft Entra ID.
W obszarze Zarządzanie kliknij pozycję Rejestracje aplikacji > Nowa rejestracja.
W polu Nazwa wprowadź nazwę aplikacji.
W sekcji Obsługiwane typy kont wybierz Konta w tym katalogu organizacyjnym (tylko jeden tenant).
Kliknij pozycję Zarejestruj.
Krok 2: Utwórz tajemnicę klienta dla głównej aplikacji usługi
W Zarządzaniu kliknij pozycję Certyfikaty i tajne.
Na karcie Tajne klienta kliknij pozycję Nowy tajny klucz klienta.
Dodaj w okienku Dodaj tajny klucz klienta w polu Opis opis tajnego klucza klienta.
W przypadku Wygasawybierz okres ważności tajnego klucza klienta, a następnie kliknij Dodaj.
Skopiuj i zapisz Wartość sekretu klienta w bezpiecznym miejscu, ponieważ ten sekret klienta jest hasłem do Twojej aplikacji.
Na stronie Przegląd aplikacji w sekcji Podstawy skopiuj następujące wartości:
- Identyfikator aplikacji (klienta)
- Identyfikator katalogu (klienta)
Krok 3. Udzielanie jednostce usługi dostępu do usługi Azure Data Lake Storage
Można przyznać dostęp do zasobów magazynu, przypisując role głównemu obiektowi usługi. W tym samouczku przypiszesz rolę Współautor danych Blob Storage do jednostki usługi na koncie Azure Data Lake Storage. Może być konieczne przypisanie innych ról w zależności od określonych wymagań.
- W portalu Azure przejdź do Konta magazynu.
- Wybierz konto usługi Azure Storage do użycia.
- Kliknij Kontrola dostępu (IAM).
- Kliknij pozycję + Dodaj i wybierz pozycję Dodaj przypisanie roli z menu rozwijanego.
- Ustaw pole Wybierz na nazwę aplikacji Microsoft Entra ID, którą utworzyłeś w kroku 1, i ustaw Rolę na Współautor danych obiektu blob usługi Storage.
- Kliknij przycisk Zapisz.
Krok 4: Dodaj tajny klienta do usługi Azure Key Vault
Tajny klienta z kroku 1 można przechowywać w usłudze Azure Key Vault.
- W witrynie Azure Portal przejdź do usługi Key Vault .
- Wybierz usługę Azure Key Vault do użycia.
- Na stronach ustawień usługi Key Vault wybierz pozycję Wpisy tajne.
- Kliknij + Wygeneruj/Zaimportuj.
- W obszarze Opcje przekazywaniawybierz opcję Ręczne.
- W polu Nazwa wprowadź nazwę tajemnicy. Tajna nazwa musi być unikatowa w ramach Key Vault.
- W polu Wartość wklej klucz tajny klienta przechowywany w kroku 1.
- Kliknij pozycję Utwórz.
Krok 5. Konfigurowanie wystąpienia usługi Azure Key Vault dla usługi Azure Databricks
- W Azure Portal przejdź do instancji usługi Azure Key Vault.
W obszarze Ustawieniawybierz kartę Konfiguracja dostępu.
Ustaw model uprawnień
na zasady dostępu Vault .Uwaga / Notatka
Tworzenie roli zakresu tajnych danych opartej na Azure Key Vault przyznaje uprawnienia Pobierz i Wylistuj identyfikatorowi aplikacji dla usługi Azure Databricks, przy użyciu zasad dostępu do Azure Key Vault. Model uprawnień kontroli dostępu opartej na rolach platformy Azure nie jest obsługiwany w usłudze Azure Databricks.
W obszarze Ustawienia wybierz pozycję Sieć.
W Zapory i sieci wirtualne ustawić Zezwalaj na dostęp z:Zezwalaj na dostęp publiczny z określonych sieci wirtualnych i adresów IP.
W obszarze Wyjątek zaznacz pole wyboru Zezwalaj na obejście tej zapory przez zaufane usługi firmy Microsoft.
Uwaga / Notatka
Można również ustawić Zezwalaj na dostęp z: na Zezwalaj na dostęp publiczny ze wszystkich sieci.
Krok 6. Utwórz zakres tajemnicy oparty na Azure Key Vault w obszarze roboczym Azure Databricks
Aby odwołać się do sekrety klienta przechowywanej w Azure Key Vault, możesz utworzyć zakres tajemnic wspierany przez Azure Key Vault w Azure Databricks.
Przejdź do
https://<databricks-instance>#secrets/createScope. W tym adresie URL rozróżniana jest wielkość liter; zakres wcreateScopemusi być zapisany dużymi literami.
Wprowadź nazwę zakresu tajnego. W tajnych nazwach zakresów wielkość liter nie ma znaczenia.
Użyj menu rozwijanego Zarządzaj głównym użytkownikiem, aby określić, czy Wszyscy Użytkownicy mają
MANAGEuprawnienia do tego zakresu tajnego, czy tylko Twórca tego zakresu tajnego (to znaczy Ty sam).Wprowadź nazwę DNS (na przykład
https://databrickskv.vault.azure.net/) i identyfikator zasobu, na przykład:/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKVTe właściwości są dostępne na karcie *Właściwości ustawień > usługi Azure Key Vault w witrynie Azure Portal.
Kliknij przycisk Utwórz.
Krok 7. Nawiązywanie połączenia z usługą Azure Data Lake Storage przy użyciu języka Python
Teraz możesz bezpiecznie uzyskiwać dostęp do danych w koncie usługi Azure Storage przy użyciu protokołu OAuth 2.0 z głównym podmiotem usługi aplikacji Microsoft Entra ID do uwierzytelniania z poziomu notebooka w usłudze Azure Databricks.
Przejdź do obszaru roboczego usługi Azure Databricks i utwórz nowy notes języka Python.
Uruchom następujący kod w języku Python, zastępując poniższe elementy, aby nawiązać połączenie z usługą Azure Data Lake Storage.
service_credential = dbutils.secrets.get(scope="<scope>",key="<service-credential-key>") spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth") spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>") spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential) spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")Zamień
-
<scope>z nazwą zakresu tajnego z kroku 5. -
<service-credential-key>z nazwą klucza zawierającego klucz tajny klienta. -
<storage-account>z nazwą konta usługi Azure Storage. z identyfikatorem aplikacji (klienta) dla aplikacji Microsoft Entra ID. -
<directory-id>z identyfikatorem katalogu (dzierżawy) dla aplikacji Microsoft Entra ID.
Teraz pomyślnie połączono obszar roboczy usługi Azure Databricks z kontem usługi Azure Data Lake Storage.
-
Udzielanie obszarowi roboczemu usługi Azure Databricks dostępu do usługi Azure Data Lake Storage
Jeśli skonfigurujesz zaporę w usłudze Azure Data Lake Storage, musisz skonfigurować ustawienia sieci, aby umożliwić obszarowi roboczemu usługi Azure Databricks nawiązywanie połączenia z usługą Azure Data Lake Storage. Najpierw upewnij się, że obszar roboczy usługi Azure Databricks jest wdrożony we własnej sieci wirtualnej zgodnie z instrukcjami podanymi w Wdrażanie usługi Azure Databricks w sieci wirtualnej platformy Azure (iniekcja VNet). Następnie można skonfigurować prywatne punkty końcowe lub dostęp z sieci wirtualnej , aby zezwolić na połączenia z podsieci do konta usługi Azure Data Lake Storage.
Jeśli używasz bezserwerowych obliczeń, takich jak bezserwerowe magazyny SQL, musisz udzielić dostępu z bezserwerowej płaszczyzny obliczeniowej do usługi Azure Data Lake Storage. Zobacz Sieciowanie bezserwerowej warstwy obliczeniowej.
Udzielanie dostępu przy użyciu prywatnych punktów końcowych
Możesz użyć prywatnych punktów końcowych dla konta usługi Azure Data Lake Storage, aby umożliwić obszarowi roboczemu usługi Azure Databricks bezpieczny dostęp do danych za pośrednictwem łącza prywatnego.
Aby utworzyć prywatny punkt końcowy w Portalu Azure, zobacz Samouczek: Nawiązywanie połączenia z kontem magazynu przy użyciu prywatnego punktu końcowego platformy Azure. Upewnij się, że utworzono prywatny punkt końcowy w tej samej sieci wirtualnej, w ramach którego wdrożono obszar roboczy usługi Azure Databricks.
Udzielanie dostępu z sieci wirtualnej
Punkty końcowe usługi sieci wirtualnej umożliwiają zabezpieczenie krytycznych zasobów usługi Azure tylko do Twoich sieci wirtualnych. Punkt końcowy usługi Azure Storage można włączyć w sieci wirtualnej używanej w obszarze roboczym Azure Databricks.
Aby uzyskać więcej informacji, w tym instrukcje dotyczące interfejsu wiersza polecenia platformy Azure i programu PowerShell, zobacz Udzielanie dostępu z sieci wirtualnej.
- Zaloguj się do Azure Portal jako użytkownik z rolą Kontrybutora konta magazynu na koncie Azure Data Lake Storage.
- Przejdź do konta usługi Azure Storage i przejdź do karty Sieć .
- Sprawdź, czy wybrano opcję zezwalania na dostęp z wybranych sieci wirtualnych i adresów IP.
- W obszarze Sieci wirtualnewybierz pozycję Dodaj istniejącą sieć wirtualną.
- W panelu bocznym, w obszarze Subskrypcja, wybierz subskrypcję, w ramach której znajduje się sieć wirtualna.
- W obszarze Sieci wirtualnewybierz sieć wirtualną, w ramach którego wdrożono obszar roboczy usługi Azure Databricks.
- W obszarze Podsieciwybierz Wybierz wszystkie.
- Kliknij przycisk Włącz.
- Wybierz pozycję Zapisz, aby zastosować zmiany.
Rozwiązywanie problemów
Błąd: IllegalArgumentException: Sekret nie istnieje w zakresie: KeyVaultScope i z powiązanym kluczem
Ten błąd prawdopodobnie oznacza:
- Zakres oparty na usłudze Databricks, o którym mowa w kodzie, jest nieprawidłowy.
Przejrzyj nazwę swojego sekretu z kroku 4 w tym artykule.
Błąd: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: Usługa Databricks nie może uzyskać dostępu do Key Vault
Ten błąd prawdopodobnie oznacza:
- Zakres oparty na usłudze Databricks, o którym mowa w kodzie, jest nieprawidłowy. lub tajna informacja przechowywana w usłudze Key Vault wygasła.
Przejrzyj krok 3, aby upewnić się, że sekret usługi Azure Key Vault jest prawidłowy. Sprawdź nazwę swojego sekretu z kroku 4 tego artykułu.
Błąd: ADAuthenticator$HttpException: Błąd HTTP 401: nie udało się uzyskać tokenu z odpowiedzi usługi AzureAD
Ten błąd prawdopodobnie oznacza:
- Klucz tajny klienta jednostki usługi wygasł.
Utwórz nowy sekret klienta zgodnie z krokiem 2 w tym artykule i zaktualizuj sekret w usłudze Azure Key Vault.