Udostępnij za pośrednictwem


Jednostki usługi dla ciągłej integracji/ciągłego wdrażania

W tym artykule opisano sposób używania jednostek usługi do ciągłej integracji/ciągłego wdrażania w usłudze Azure Databricks. Jednostka usługi to tożsamość utworzona do użycia z zautomatyzowanymi narzędziami i aplikacjami, w tym:

Najlepszym rozwiązaniem w zakresie zabezpieczeń usługa Databricks zaleca użycie jednostki usługi i jego tokenu zamiast użytkownika usługi Azure Databricks lub osobistego tokenu dostępu usługi Databricks dla użytkownika obszaru roboczego w celu udzielenia platformom ciągłej integracji/ciągłego wdrażania dostępu do zasobów usługi Azure Databricks. Niektóre korzyści z tego podejścia obejmują następujące elementy:

  • Możesz udzielić i ograniczyć dostęp do zasobów usługi Azure Databricks dla jednostki usługi niezależnie od użytkownika. Na przykład pozwala to uniemożliwić jednostce usługi działanie jako administrator w obszarze roboczym usługi Azure Databricks, jednocześnie zezwalając innym określonym użytkownikom w obszarze roboczym na dalsze działanie jako administratorzy.
  • Użytkownicy mogą chronić swoje tokeny dostępu przed dostępem przez platformy ciągłej integracji/ciągłego wdrażania.
  • Możesz tymczasowo wyłączyć lub trwale usunąć jednostkę usługi bez wpływu na innych użytkowników. Na przykład pozwala to wstrzymać lub usunąć dostęp z jednostki usługi, którą podejrzewasz, jest używany w złośliwy sposób.
  • Jeśli użytkownik opuści organizację, możesz usunąć tego użytkownika bez wpływu na jednostkę usługi.

Aby przyznać platformie ciągłej integracji/ciągłego wdrażania dostęp do obszaru roboczego usługi Azure Databricks, wykonaj następujące czynności:

Wybierz jeden z następujących obsługiwanych mechanizmów uwierzytelniania usługi MS Entra z połączeniem usługi:

Wymagania

  • Token OAuth usługi Azure Databricks lub token identyfikatora entra firmy Microsoft dla jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID. Aby utworzyć jednostkę usługi zarządzanej usługi Azure Databricks lub jednostkę usługi zarządzanej Microsoft Entra ID i jej token OAuth usługi Azure Databricks lub token identyfikatora Entra firmy Microsoft, zobacz Zarządzanie jednostkami usługi.
  • Konto z dostawcą usługi Git.

Konfigurowanie funkcji GitHub Actions

Funkcja GitHub Actions musi mieć dostęp do obszaru roboczego usługi Azure Databricks. Jeśli chcesz używać folderów Usługi Git usługi Azure Databricks, obszar roboczy musi mieć również dostęp do usługi GitHub.

Aby włączyć funkcję GitHub Actions w celu uzyskania dostępu do obszaru roboczego usługi Azure Databricks, musisz podać informacje o jednostce usługi zarządzanej usługi Azure Databricks lub jednostce usługi zarządzanej microsoft Entra ID w funkcji GitHub Actions. Może to obejmować informacje, takie jak identyfikator aplikacji (klienta), identyfikator katalogu (dzierżawy) dla jednostki usługi zarządzanej Microsoft Entra ID, jednostka usługi zarządzanej usługi Azure Databricks lub klucz tajny klienta zarządzanej jednostki usługi Microsoft Entra ID lub access_token wartość jednostki usługi zarządzanej usługi Azure Databricks, w zależności od wymagań akcji usługi GitHub. Aby uzyskać więcej informacji, zobacz Zarządzanie jednostkami usługi i dokumentacją akcji usługi GitHub.

Jeśli chcesz również włączyć obszar roboczy usługi Azure Databricks w celu uzyskiwania dostępu do usługi GitHub podczas korzystania z folderów git usługi Azure Databricks, musisz dodać osobisty token dostępu usługi GitHub dla użytkownika maszyny GitHub do obszaru roboczego.

Podaj informacje o jednostce usługi w funkcji GitHub Actions

W tej sekcji opisano sposób włączania funkcji GitHub Actions w celu uzyskania dostępu do obszaru roboczego usługi Azure Databricks.

Najlepszym rozwiązaniem w zakresie zabezpieczeń usługa Databricks zaleca, aby nie wprowadzać informacji o jednostce usługi bezpośrednio w treści pliku funkcji GitHub Actions. Te informacje należy podać do funkcji GitHub Actions przy użyciu zaszyfrowanych wpisów tajnych usługi GitHub.

Funkcja GitHub Actions, taka jak te, które są wyświetlane w usłudze Databricks w ramach ciągłej integracji i dostarczania przy użyciu funkcji GitHub Actions, korzystają z różnych zaszyfrowanych wpisów tajnych usługi GitHub, takich jak:

  • DATABRICKS_HOST, która jest wartością https:// , po której następuje nazwa wystąpienia obszaru roboczego, na przykład adb-1234567890123456.7.azuredatabricks.net.
  • AZURE_CREDENTIALS, który jest dokumentem JSON reprezentującym dane wyjściowe uruchomienia interfejsu wiersza polecenia platformy Azure, aby uzyskać informacje o jednostce usługi zarządzanej identyfikatora entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz dokumentację akcji usługi GitHub.
  • AZURE_SP_APPLICATION_ID, czyli wartość identyfikatora aplikacji (klienta) dla jednostki usługi zarządzanej identyfikatora entra firmy Microsoft.
  • AZURE_SP_TENANT_ID, która jest wartością identyfikatora katalogu (dzierżawy) dla jednostki usługi zarządzanej microsoft Entra ID.
  • AZURE_SP_CLIENT_SECRET, która jest wartością wartości wpisu tajnego klienta dla jednostki usługi zarządzanej identyfikatora entra firmy Microsoft.

Aby uzyskać więcej informacji o tym, które zaszyfrowane wpisy tajne usługi GitHub są wymagane dla akcji usługi GitHub, zobacz Zarządzanie jednostkami usługi i dokumentacją dotyczącą tej akcji usługi GitHub.

Aby dodać te zaszyfrowane wpisy tajne usługi GitHub do repozytorium GitHub, zobacz Tworzenie zaszyfrowanych wpisów tajnych dla repozytorium w dokumentacji usługi GitHub. Aby uzyskać inne podejścia do dodawania tych wpisów tajnych repozytorium GitHub, zobacz Zaszyfrowane wpisy tajne w dokumentacji usługi GitHub.

Dodawanie osobistego tokenu dostępu usługi GitHub dla użytkownika maszyny usługi GitHub do obszaru roboczego usługi Azure Databricks

W tej sekcji opisano sposób włączania obszaru roboczego usługi Azure Databricks w celu uzyskiwania dostępu do usługi GitHub za pomocą folderów git usługi Azure Databricks. Jest to opcjonalne zadanie w scenariuszach ciągłej integracji/ciągłego wdrażania.

Najlepszym rozwiązaniem w zakresie zabezpieczeń usługa Databricks zaleca używanie użytkowników maszyn usługi GitHub zamiast kont osobistych usługi GitHub z wielu powodów, dla których należy użyć jednostki usługi zamiast użytkownika usługi Azure Databricks. Aby dodać osobisty token dostępu usługi GitHub dla użytkownika maszyny GitHub do obszaru roboczego usługi Azure Databricks, wykonaj następujące czynności:

  1. Utwórz użytkownika maszyny usługi GitHub, jeśli jeszcze go nie masz. Użytkownik maszyny usługi GitHub to osobiste konto usługi GitHub, oddzielone od własnego konta osobistego usługi GitHub, za pomocą którego można zautomatyzować aktywność w usłudze GitHub. Utwórz nowe oddzielne konto usługi GitHub do użycia jako użytkownik komputera usługi GitHub, jeśli jeszcze go nie masz.

    Uwaga

    Podczas tworzenia nowego oddzielnego konta usługi GitHub jako użytkownika maszyny usługi GitHub nie można skojarzyć go z adresem e-mail dla własnego konta osobistego usługi GitHub. Zamiast tego zapoznaj się z administratorem poczty e-mail organizacji, aby uzyskać oddzielny adres e-mail, który można skojarzyć z tym nowym oddzielnym kontem usługi GitHub jako użytkownik maszyny usługi GitHub.

    Zobacz administratora konta organizacji na temat zarządzania oddzielnym adresem e-mail i skojarzonym z nim użytkownikiem maszyny usługi GitHub oraz osobistymi tokenami dostępu usługi GitHub w organizacji.

  2. Nadaj użytkownikowi usługi GitHub dostęp użytkownika do repozytorium GitHub. Zobacz Zapraszanie zespołu lub osoby w dokumentacji usługi GitHub. Aby zaakceptować zaproszenie, może być konieczne wylogowanie się z konta osobistego usługi GitHub, a następnie zalogowanie się ponownie jako użytkownik komputera usługi GitHub.

  3. Zaloguj się do usługi GitHub jako użytkownik komputera, a następnie utwórz osobisty token dostępu usługi GitHub dla tego użytkownika komputera. Zobacz Tworzenie osobistego tokenu dostępu w dokumentacji usługi GitHub. Upewnij się, że masz dostęp do osobistego repozytorium tokenu dostępu w usłudze GitHub.

  4. Zbierz token Identyfikator entra firmy Microsoft dla jednostki usługi, nazwę użytkownika maszyny usługi GitHub, a następnie dodaj poświadczenia dostawcy Git do obszaru roboczego usługi Azure Databricks.

Konfigurowanie usługi Azure Pipelines

Usługa Azure Pipelines musi mieć dostęp do obszaru roboczego usługi Azure Databricks. Jeśli chcesz również używać folderów Git usługi Azure Databricks, obszar roboczy musi mieć dostęp do usługi Azure Pipelines.

Pliki potoków YAML usługi Azure Pipelines korzystają ze zmiennych środowiskowych w celu uzyskania dostępu do obszaru roboczego usługi Azure Databricks. Te zmienne środowiskowe obejmują takie, jak:

  • DATABRICKS_HOST, która jest wartością https:// , po której następuje nazwa wystąpienia obszaru roboczego, na przykład adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, która jest wartością token_value skopiowaną po utworzeniu tokenu identyfikatora Entra firmy Microsoft dla jednostki usługi zarządzanej microsoft Entra ID.

Aby dodać te zmienne środowiskowe do potoku platformy Azure, zobacz Używanie wpisów tajnych wartości klucza platformy Azure w usłudze Azure Pipelines i Ustawianie zmiennych tajnych w dokumentacji platformy Azure.

Zobacz również następujący blog usługi Databricks:

Opcjonalnie w scenariuszach ciągłej integracji/ciągłego wdrażania: jeśli obszar roboczy korzysta z folderów Git usługi Azure Databricks i chcesz umożliwić obszarowi roboczemu dostęp do usługi Azure Pipelines, zbierz:

  • Token identyfikatora Entra firmy Microsoft dla jednostki usługi
  • Nazwa użytkownika usługi Azure Pipelines

Następnie dodaj poświadczenia dostawcy Git do obszaru roboczego usługi Azure Databricks.

Konfigurowanie ciągłej integracji/ciągłego wdrażania usługi GitLab

Ciągła integracja/ciągłe wdrażanie usługi GitLab musi mieć dostęp do obszaru roboczego usługi Azure Databricks. Jeśli chcesz również używać folderów Usługi Git usługi Azure Databricks, obszar roboczy musi mieć dostęp do ciągłej integracji/ciągłego wdrażania usługi GitLab.

Aby uzyskać dostęp do obszaru roboczego usługi Azure Databricks, pliki ciągłej integracji/ciągłego wdrażania w narzędziu GitLab, takie jak jeden jako część podstawowego szablonu języka Python w programie dbx, polegają na niestandardowych zmiennych ciągłej integracji/ciągłego wdrażania.gitlab-ci.yml, takich jak:

  • DATABRICKS_HOST, która jest wartością https:// , po której następuje nazwa wystąpienia obszaru roboczego, na przykład adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, która jest wartością token_value skopiowaną po utworzeniu tokenu identyfikatora Entra firmy Microsoft dla jednostki usługi.

Aby dodać te zmienne niestandardowe do projektu ciągłej integracji/ciągłego wdrażania w narzędziu GitLab, zobacz Dodawanie zmiennej ciągłej integracji/ciągłego wdrażania do projektu w dokumentacji ciągłej integracji/ciągłego wdrażania w narzędziu GitLab.

Jeśli obszar roboczy korzysta z folderów Git usługi Databricks i chcesz umożliwić obszarowi roboczemu dostęp do ciągłej integracji/ciągłego wdrażania usługi GitLab, zbierz:

  • Token identyfikatora Entra firmy Microsoft dla jednostki usługi
  • Nazwa użytkownika ciągłej integracji/ciągłego wdrażania usługi GitLab

Następnie dodaj poświadczenia dostawcy Git do obszaru roboczego usługi Azure Databricks.

Dodawanie poświadczeń dostawcy Git do obszaru roboczego usługi Azure Databricks

W tej sekcji opisano sposób włączania obszaru roboczego usługi Azure Databricks w celu uzyskania dostępu do dostawcy usługi Git dla folderów git usługi Azure Databricks. Jest to opcjonalne w scenariuszach ciągłej integracji/ciągłego wdrażania. Na przykład możesz chcieć, aby dostawca usługi Git mógł uzyskać dostęp do obszaru roboczego usługi Azure Databricks, ale nie chcesz również używać folderów Usługi Git usługi Azure Databricks w obszarze roboczym z dostawcą usługi Git. Jeśli tak, pomiń tę sekcję.

Przed rozpoczęciem zbierz następujące informacje i narzędzia:

  • Token identyfikatora Entra firmy Microsoft dla jednostki usługi.
  • Nazwa użytkownika skojarzona z dostawcą usługi Git.
  • Token dostępu skojarzony z użytkownikiem dostawcy usługi Git.

Uwaga

W przypadku usługi Azure Pipelines zobacz Używanie osobistych tokenów dostępu w witrynie internetowej platformy Azure.

  • Interfejs wiersza polecenia usługi Databricks w wersji 0.205 lub nowszej. Zobacz Co to jest interfejs wiersza polecenia usługi Databricks?. Nie można użyć interfejsu użytkownika usługi Azure Databricks.
  • Profil konfiguracji usługi Azure Databricks w .databrickscfg pliku z polami profilu ustawionymi poprawnie dla powiązanego adresu host URL obszaru roboczego usługi Azure Databricks, na przykład https://adb-1234567890123456.7.azuredatabricks.neti token reprezentujący token identyfikatora Entra firmy Microsoft dla jednostki usługi. (Nie używaj osobistego tokenu dostępu usługi Databricks dla użytkownika obszaru roboczego). Zobacz Uwierzytelnianie osobistego tokenu dostępu w usłudze Azure Databricks.

Użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić następujące polecenie:

databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
  • Użyj jednej z następujących opcji dla <git-provider-short-name>polecenia :
    • W przypadku usługi GitHub użyj polecenia GitHub.
    • W przypadku usługi Azure Pipelines użyj polecenia AzureDevOpsServices.
    • W przypadku ciągłej integracji/ciągłego wdrażania narzędzia GitLab użyj polecenia GitLab.
  • Zastąp <git-provider-user-name> ciąg nazwą użytkownika skojarzona z dostawcą usługi Git.
  • Zastąp <git-provider-access-token> ciąg tokenem dostępu skojarzonym z użytkownikiem dostawcy usługi Git.
  • Zastąp <profile-name> ciąg nazwą profilu konfiguracji usługi Azure Databricks w .databrickscfg pliku.

Napiwek

Aby potwierdzić, że wywołanie zakończyło się pomyślnie, możesz uruchomić jedno z następujących poleceń interfejsu wiersza polecenia usługi Databricks i przejrzeć dane wyjściowe:

databricks git-credentials list -p <profile-name>
databricks git-credentials get <credential-id> -p <profile-name>