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
W tym artykule opisano starsze wzorce konfigurowania dostępu do usługi Azure Data Lake Storage. Usługa Databricks zaleca korzystanie z Unity Catalog. Zobacz Utwórz metasklep Unity Catalog i Połącz się z magazynem obiektów w chmurze za pomocą Unity Catalog.
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.
Wymagania
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: Tworzenie wpisu tajnego klienta dla jednostki usługi.
Aby utworzyć jednostkę usługi Microsoft Entra ID, wykonaj następujące instrukcje:
Zaloguj się w witrynie Azure Portal.
Uwaga
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 i subskrypcje (katalog z filtrem) w górnym menu, aby przełączyć się do katalogu, w którym chcesz aprowizować jednostkę usługi.
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. Tworzenie wpisu tajnego klienta dla jednostki usługi
W obszarze Zarządzanie kliknij pozycję Certyfikaty i wpisy tajne.
Na karcie Wpisy tajne klienta kliknij pozycję Nowy klucz tajny klienta.
W okienku Dodawanie wpisu tajnego klienta w polu Opis wprowadź opis wpisu tajnego 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 (dzierżawy)
Krok 3. Udzielanie jednostce usługi dostępu do usługi Azure Data Lake Storage
Dostęp do zasobów magazynu można udzielić, przypisując role do jednostki 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 witrynie Azure Portal przejdź do usługi Konta magazynu.
- Wybierz konto usługi Azure Storage do użycia.
- Kliknij pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
- Kliknij + Dodaj i wybierz 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. Dodawanie wpisu tajnego klienta do usługi Azure Key Vault
Wpis tajny klienta można przechowywać w kroku 1 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ę wpisu tajnego. Nazwa wpisu tajnego musi być unikatowa w usłudze 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 witrynie Azure Portal przejdź do wystąpienia usługi Azure Key Vault.
W obszarze Ustawieniawybierz kartę Konfiguracja dostępu.
Ustaw modelu uprawnień
na zasady dostępu Vault .Uwaga
Tworzenie roli zakresu wpisów tajnych opartych na usłudze Azure Key Vault przyznaje uprawnienia Uzyskiwanie i lista list do identyfikatora aplikacji dla usługi Azure Databricks przy użyciu zasad dostępu do magazynu kluczy. 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
Można również ustawić Zezwalaj na dostęp z: na Zezwalaj na dostęp publiczny ze wszystkich sieci.
Krok 6. Tworzenie zakresu wpisów tajnych opartych na usłudze Azure Key Vault w obszarze roboczym usługi Azure Databricks
Aby odwołać się do wpisu tajnego klienta przechowywanego w usłudze Azure Key Vault, możesz utworzyć zakres wpisów tajnych wspierany przez usługę Azure Key Vault w usłudze Azure Databricks.
Przejdź do
https://<databricks-instance>#secrets/createScope. W tym adresie URL jest uwzględniana wielkość liter; zakres wcreateScopemusi być wielkimi literami.
Wprowadź nazwę zakresu wpisu tajnego. W nazwach zakresów wpisów tajnych nie jest rozróżniana wielkość liter.
Użyj menu rozwijanego Zarządzaj podmiotem zabezpieczeń , aby określić, czy wszyscy użytkownicy mają
MANAGEuprawnienia do tego zakresu wpisu tajnego, czy tylko Twórca zakresu wpisu tajnego (to znaczy Ty).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 na koncie usługi Azure Storage przy użyciu protokołu OAuth 2.0 z jednostką usługi aplikacji Microsoft Entra ID na potrzeby uwierzytelniania z poziomu notesu usługi 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 wpisu tajnego z kroku 5. -
<service-credential-key>z nazwą klucza zawierającego klucz tajny klienta. -
<storage-account>z nazwą konta usługi Azure Storage. -
<application-id>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 został wdrożony we własnej sieci wirtualnej, a następnie wdróż usługę Azure Databricks w sieci wirtualnej platformy Azure (iniekcja sieci wirtualnej).Najpierw upewnij się, że obszar roboczy usługi Azure Databricks jest wdrożony we własnej sieci wirtualnej. 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 Sieć bezserwerowej płaszczyzny 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 przy użyciu witryny Azure Portal, 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 dla sieci wirtualnej umożliwiają zabezpieczanie krytycznych zasobów usługi platformy Azure tylko do sieci wirtualnych. Punkt końcowy usługi dla usługi Azure Storage można włączyć w sieci wirtualnej, która była używana w obszarze roboczym usługi 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 Zapisz, aby zastosować zmiany.
Rozwiązywanie problemów
Błąd: IllegalArgumentException: Wpis tajny nie istnieje z zakresem: KeyVaultScope i klucz
Ten błąd prawdopodobnie oznacza:
- Zakres oparty na usłudze Databricks, o którym mowa w kodzie, jest nieprawidłowy.
Przejrzyj nazwę wpisu tajnego 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 magazynu kluczy
Ten błąd prawdopodobnie oznacza:
- Zakres oparty na usłudze Databricks, o którym mowa w kodzie, jest nieprawidłowy. lub wpis tajny przechowywany w usłudze Key Vault wygasł.
Przejrzyj krok 3, aby upewnić się, że wpis tajny usługi Azure Key Vault jest prawidłowy. Przejrzyj nazwę wpisu tajnego z kroku 4 w tym artykule.
Błąd: ADAuthenticator$HttpException: Błąd HTTP 401: token nie może 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.