Uwierzytelnianie dostępu do folderów Git usługi Azure Databricks przy użyciu jednostki usługi Microsoft Entra
Dowiedz się, jak skonfigurować uwierzytelniony dostęp do folderów Git usługi Azure Databricks hostowanych przez usługę Azure DevOps (Azure Repos) przy użyciu jednostki usługi Microsoft Entra.
Jeśli masz foldery Git usługi Databricks w projekcie usługi Databricks, które są wspierane przez repozytoria Git usługi Azure Repos i chcesz zarządzać nimi w automatyzacji, możesz użyć informacji w tym artykule, aby skonfigurować uwierzytelnianie przy użyciu jednostki usługi Microsoft Entra i usługi Azure DevOps. Po ukończeniu tego zadania będziesz mieć uwierzytelnione poświadczenia usługi Databricks Git, których można użyć w automatyzacji.
Dlaczego warto używać firmy Microsoft Entra, a nie pat?
W przeszłości osobiste tokeny dostępu (PAT) były preferowanym sposobem uwierzytelniania podczas wywoływania interfejsu API, który wymaga określonego dostępu i uprawnień do zasobów. Te tokeny elementu nośnego reprezentowały nazwę użytkownika i hasło oraz wymagały regularnej rotacji w celu zminimalizowania przedstawionego ryzyka bezpieczeństwa. Tokeny dostępu identyfikatora Entra firmy Microsoft odnoszą się do tego problemu, automatycznie zarządzają rotacją tych tokenów co godzinę, a usługa Databricks zaleca je jako najlepsze rozwiązanie podczas pracy z zasobami platformy Azure. Tworząc jednostkę usługi Microsoft Entra, możesz zarządzać uprawnieniami przyznanymi w przypadku dostępu do tych zasobów bez korzystania z konta użytkownika platformy Microsoft Azure.
Wymagania
Musisz mieć następujące rozwiązania:
- Dostęp do projektu usługi Azure DevOps za pomocą repozytorium Git usługi Azure Repos połączonego z folderem Git usługi Databricks.
- Uprawnienia do konta platformy Azure w celu utworzenia jednostki usługi MS Entra.
- Zainstalowany interfejs wiersza polecenia platformy Azure.
- Zainstalowany interfejs wiersza polecenia usługi Databricks.
Krok 1. Tworzenie jednostki usługi Microsoft Entra
Ten krok można pominąć, jeśli masz już skonfigurowaną jednostkę usługi Microsoft Entra.
Aby utworzyć jednostkę usługi Microsoft Entra, wykonaj kroki opisane w dokumentacji platformy Microsoft Azure: Rejestrowanie aplikacji Microsoft Entra i tworzenie jednostki usługi. W sekcji "Konfigurowanie uwierzytelniania" w tym artykule zignoruj dwie pierwsze opcje i wykonaj kroki opisane w temacie "Opcja 3: Tworzenie nowego wpisu tajnego klienta".
Po jego skonfigurowaniu będziesz mieć następujące elementy:
- Wpis tajny klienta. Będzie on przedstawiany jako długi ciąg losowych znaków.
-
- Identyfikator jednostki usługi. Jest to unikatowa nazwa przypisana jednostki usługi MS Entra. Najlepszym rozwiązaniem jest również nazwa, która wskazuje, jak i kiedy ma być używana (na przykład
Databricks_CICD_SP
).
- Identyfikator jednostki usługi. Jest to unikatowa nazwa przypisana jednostki usługi MS Entra. Najlepszym rozwiązaniem jest również nazwa, która wskazuje, jak i kiedy ma być używana (na przykład
(Możesz zignorować opcjonalny interfejs użytkownika przekierowania w oknie dialogowym konfiguracji usługi MS Entra, ponieważ nie będzie używany w tej konfiguracji).
Skopiuj je gdzieś, ponieważ będą one używane w przyszłych krokach. Po pomyślnym zakończeniu procesu w tej dokumentacji należy zabezpieczyć lub usunąć te informacje.
Krok 2. Konfigurowanie uprawnień usługi Azure DevOps dla jednostki usługi MS Entra
Najpierw musisz przyznać jednostce usługi MS Entra uprawnienie dostępu do zasobów usługi Azure DevOps. W tym celu należy użyć portalu usługi Azure DevOps.
Zaloguj się do konta usługi Azure DevOps i przejdź do projektu.
W obszarze Ustawienia>projektu Uprawnienia kliknij pozycję Czytelnicy.
Kliknij kartę Członkowie , kliknij przycisk Dodaj, a następnie dodaj nazwę utworzonej jednostki usługi MS Entra.
W konsoli wróć do poziomu organizacji organizacji usługi Azure DevOps i kliknij pozycję Ustawienia organizacji w dolnej części okienka po lewej stronie.
Kliknij pozycję Użytkownicy>Dodaj użytkownika, a następnie skonfiguruj dostęp dla jednostki usługi w następujący sposób:
- Dodaj jednostkę usługi MS Entra przy użyciu utworzonego wcześniej identyfikatora.
- Skonfiguruj dostęp dla jednostki usługi do minimalnego poziomu, który musi wykonywać operacje w usłudze Azure Repos. Zazwyczaj uprawnienia na poziomie podstawowym są wystarczające. Jeśli nie masz pewności, jakiego poziomu użyć, skontaktuj się z administratorem organizacji usługi Azure DevOps.
- Dodaj jednostkę usługi do projektu usługi Azure DevOps.
- Przypisz jednostkę usługi do grupy Współautorzy projektu.
Krok 3. Przypisywanie uprawnień do jednostki usługi w usłudze Azure Databricks
Musisz również przypisać uprawnienia w usłudze Azure Databricks do jednostki usługi Microsoft Entra.
- Zaloguj się do konsoli administracyjnej konta usługi Azure Databricks dla swojego konta.
- Kliknij pozycję Użytkownicy i grupy.
- Kliknij kartę Jednostki usługi, a następnie kliknij pozycję Dodaj jednostkę usługi.
- Na stronie Dodawanie jednostki usługi kliknij pozycję Zarządzany identyfikator entra firmy Microsoft, a następnie dodaj identyfikator aplikacji Microsoft Entra i nazwę główną usługi z sekcji "Krok 1: Tworzenie jednostki usługi Microsoft Entra". Po zakończeniu kliknij przycisk Dodaj .
- Kliknij dodano jednostkę usługi Microsoft Entra, aby wyświetlić kartę Informacje o jednostce.
- Kliknij pozycję Generuj wpis tajny w lewym dolnym rogu strony, aby wygenerować wpis tajny OAuth. Ten wpis tajny umożliwia uwierzytelnianie wywołań interfejsu API usługi Azure Databricks przy użyciu interfejsu wiersza polecenia usługi Databricks.
- Skopiuj ciąg wpisu tajnego i identyfikator klienta, a następnie kliknij przycisk Gotowe. Użyjesz obu tych elementów w następnym kroku. Wybierz pozycję Gotowe.
- Na pasku bocznym po lewej stronie kliknij pozycję Obszary robocze, wybierz obszar roboczy, a następnie kliknij kartę Uprawnienia .
- Przyznaj jednostce usługi uprawnienia "Użytkownik", a następnie kliknij pozycję Dodaj uprawnienia.
Ważne
Jeśli karta Uprawnienia jest wyszarzony, obszar roboczy usługi Azure Databricks nie jest przypisany do magazynu metadanych wykazu aparatu Unity. Skontaktuj się z administratorem usługi Databricks.
Następnie utworzysz poświadczenia usługi Git usługi Azure Databricks.
Krok 4. Tworzenie tokenu dostępu identyfikatora entra firmy Microsoft i przechowywanie go jako poświadczeń usługi Git usługi Azure Databricks.
Uwaga
Ten krok wymaga użycia zarówno interfejsów WIERSZA polecenia platformy Azure, jak i usługi Databricks.
Aby uwierzytelnić się w usłudze Azure Databricks, musisz mieć profil konfiguracji (.databrickscfg
) skonfigurowany przy użyciu wpisu tajnego OAuth utworzonego w poprzednim kroku. Aby skonfigurować tę konfigurację .databrickscfg
, otwórz plik w edytorze i dodaj do pliku następujące polecenie:
[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>
Gdzie host
jest adresem URL obszaru roboczego usługi Databricks, client_id
jest identyfikatorem jednostki usługi Microsoft Entra i client_secret
jest wpisem tajnym klienta OAuth utworzonym w sekcji "Krok 3: Przypisywanie uprawnień do jednostki usługi w usłudze Azure Databricks".
Teraz w tym procesie powinny być dostępne następujące wartości, które należy podać do wywołań interfejsu wiersza polecenia:
- Identyfikator klienta jednostki usługi z kroków 1 lub 3 — powinien być taki sam. (
sp_id
w poniższych przykładach interfejsu wiersza polecenia). - Nazwa główna usługi z kroku 1. (
sp_name
) - Ciąg wpisu tajnego klienta jednostki usługi z kroku 1. (
sp_secret
) - Nazwa organizacji usługi Azure DevOps. (
devops_org
) - Nazwa projektu usługi Azure DevOps. (
devops_project
) - Nazwa repozytorium usługi Azure Repos. (
devops_repo
)
Ponadto potrzebujesz identyfikatora dzierżawy platformy Azure (tenant_id
w poniższych przykładach) dla subskrypcji platformy Azure. Postępuj zgodnie z tymi instrukcjami, aby pobrać go z witryny Azure Portal.
Teraz możesz utworzyć poświadczenie usługi Git z poziomu interfejsu wiersza polecenia platformy Azure.
- Otwórz okno wiersza polecenia z dostępem do interfejsów WIERSZA polecenia platformy Azure i usługi Databricks.
- Uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure, aby zalogować się jako jednostka usługi Microsoft Entra:
az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
- Jako jednostka usługi Microsoft Entra zażądaj tokenu dostępu microsoft Entra ID i przypisz go do zmiennej:
ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
- Użyj tokenu dostępu, aby utworzyć poświadczenie usługi Git dla dostępu do usługi Azure Databricks przy użyciu poziomów uprawnień skonfigurowanych dla niego:
databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
- Na koniec utwórz nowy folder Git przy użyciu jednostki usługi Microsoft Entra:
databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo
Odpowiedni folder Git dla tego repozytorium usługi Azure DevOps jest teraz dostępny w obszarze roboczym usługi Azure Databricks. Możesz podać poświadczenia usługi Git, aby zarządzać nim z poziomu kodu przy użyciu interfejsów API REST usługi Databricks Repos lub interfejsu wiersza polecenia usługi Databricks.
Wiesz już, jak wygenerować token dostępu identyfikatora Entra firmy Microsoft o zakresie do usługi Azure DevOps i zapisać go jako poświadczenie usługi Git usługi Databricks.
Najlepsze rozwiązania
Token dostępu entra ID jest krótkotrwały, więc potok musi zaktualizować poświadczenia usługi Git usługi Databricks przy użyciu polecenia git-credentials update
. Następnie możesz wyzwolić z niego żądanie ściągnięcia przy użyciu polecenia databricks repos update
.
Ważne
Dodatkowe środki bezpieczeństwa są wymagane w ustawieniu produkcyjnym. W środowisku produkcyjnym należy przechowywać klucz tajny klienta jednostki usługi oraz token OAuth usługi Databricks w bezpiecznym magazynie wpisów tajnych, takim jak usługa Azure Key Vault.
Zobacz też
Uwierzytelnianie interfejsu wiersza polecenia platformy Azure
Uwierzytelnianie za pomocą usługi Azure DevOps w usłudze Databricks
Dodawanie poświadczeń dostawcy Git do obszaru roboczego usługi Azure Databricks
Korzystanie z jednostek usługi i tożsamości zarządzanych (dokumentacja usługi Microsoft Azure DevOps)