Dienstprinzipale für CI/CD
In diesem Artikel wird beschrieben, wie Dienstprinzipale für CI/CD mit Azure Databricks verwendet werden. Ein Dienstprinzipal ist eine Identität, die für die Verwendung mit automatisierten Tools und Anwendungen erstellt wurde, einschließlich:
- CI/CD-Plattformen wie GitHub Actions, Azure Pipelines und GitLab CI/CD
- Airflow in Datenpipelines
- Jenkins
Als bewährte Sicherheitsmethode empfiehlt Databricks, anstelle von Azure Databricks-Benutzer*innen oder des persönlichen Databricks-Zugriffstokens für Ihren Arbeitsbereichsbenutzer einen Dienstprinzipal und das zugehörige Token zu verwenden, um CI/CD-Plattformen Zugriff auf Azure Databricks-Ressourcen zu gewähren. Dieser Ansatz hat unter anderem folgende Vorteile:
- Der Zugriff auf Azure Databricks-Ressourcen kann für einen Dienstprinzipal unabhängig von einem Benutzer oder einer Benutzerin gewährt und eingeschränkt werden. So können Sie beispielsweise verhindern, dass ein Dienstprinzipal in Ihrem Azure Databricks-Arbeitsbereich als Administrator agiert, während bestimmte anderen Benutzer*innen in Ihrem Arbeitsbereich weiterhin als Administrator*in agieren können.
- Benutzer können ihre Zugriffstoken vor Zugriffen durch CI/CD-Plattformen schützen.
- Sie können einen Dienstprinzipal ohne Auswirkungen auf andere Benutzer*innen vorübergehend deaktivieren oder endgültig löschen. So können Sie beispielsweise den Zugriff eines mutmaßlich böswillig verwendeten Dienstprinzipals aussetzen oder entfernen.
- Wenn ein Benutzer oder eine Benutzerin aus Ihrer Organisation ausscheidet, können Sie diesen Benutzer oder diese Benutzerin ohne Auswirkungen auf einen Dienstprinzipal entfernen.
Um einer CI/CD-Plattform Zugriff auf Ihren Azure Databricks-Arbeitsbereich zu geben, gehen Sie wie folgt vor:
Wählen Sie einen der folgenden unterstützten MS Entra-Authentifizierungsmechanismen mit einer Dienstverbindung aus:
Microsoft Entra-Workloadidentitätsverbund, der die Azure CLI als Authentifizierungsmechanismus verwendet
- Ein Microsoft Entra-Dienstprinzipal, der einen geheimen Microsoft Entra-Clientschlüssel als Authentifizierungsmechanismus verwendet
- Eine verwaltete Identität von Microsoft Entra ID
Ausführliche Informationen zum Implementieren der Authentifizierung mit Microsoft Entra finden Sie unter Authentifizieren mit Azure DevOps in Databricks.
Informationen zum spezifischen Authentifizieren des Zugriffs auf Azure Databricks Git-Ordner mithilfe von Azure DevOps finden Sie unter Verwenden eines Microsoft Entra-Dienstprinzipals zum Authentifizieren des Zugriffs auf Azure Databricks Git-Ordner.
- Ein Microsoft Entra-Dienstprinzipal, der einen geheimen Microsoft Entra-Clientschlüssel als Authentifizierungsmechanismus verwendet
Anforderungen
- Das OAuth-Token von Azure Databricks oder das Microsoft Entra-ID-Token für einen von Azure Databricks verwalteten Dienstprinzipal oder einen verwalteten Dienstprinzipal von Microsoft Entra ID. Informationen zum Erstellen eines verwalteten Dienstprinzipals von Azure Databricks oder Microsoft Entra ID und des OAuth-Tokens von Azure Databricks oder des Microsoft Entra ID-Tokens finden Sie unter Verwalten von Dienstprinzipalen.
- Ein Konto bei Ihrem Git-Anbieter.
Einrichten von GitHub Actions
GitHub Actions benötigt Zugriff auf Ihren Azure Databricks-Arbeitsbereich. Wenn Sie Azure Databricks Git-Ordner verwenden möchten, muss Ihr Arbeitsbereich auch auf GitHub zugreifen können.
Damit GitHub Actions auf Ihren Azure Databricks-Arbeitsbereich zugreifen kann, müssen Sie Informationen zu Ihrem verwalteten Dienstprinzipal von Azure Databricks oder Microsoft Entra ID an GitHub Actions weitergeben. Dies können Informationen wie die Anwendungs-ID (Client-ID), die Verzeichnis-ID (Mandanten-ID) für einen verwalteten Dienstprinzipal von Azure Databricks oder Microsoft Entra ID, der geheime Clientschlüssel des verwalteten Dienstprinzipals von Azure Databricks oder Microsoft Entra ID oder der access_token
-Wert sein, abhängig von den Anforderungen der GitHub-Aktion. Weitere Informationen finden Sie unter Verwalten von Dienstprinzipalen und in der GitHub Actions-Dokumentation.
Wenn Sie Ihrem Azure Databricks-Arbeitsbereich auch den Zugriff auf GitHub ermöglichen möchten, wenn Sie Azure Databricks Git-Ordner verwenden, müssen Sie das persönliche GitHub-Zugriffstoken für einen Benutzer eines GitHub-Computers zu Ihrem Arbeitsbereich hinzufügen.
Weitergeben von Informationen zu Ihrem Dienstprinzipal an GitHub Actions
In diesem Abschnitt erfahren Sie, wie Sie es GitHub Actions ermöglichen, auf Ihren Azure Databricks-Arbeitsbereich zuzugreifen.
Als bewährte Sicherheitsmethode empfiehlt Databricks, keine Informationen zu Ihrem Dienstprinzipal direkt in den Textteil einer GitHub Actions-Datei einzugeben. Verwenden Sie stattdessen verschlüsselte GitHub-Geheimnisse, um diese Informationen an GitHub Actions weiterzugeben.
GitHub Actions-Vorgänge (beispielsweise die von Databricks unter Continuous Integration und Continuous Delivery mithilfe von GitHub Actions angegebenen Aktionen) nutzen verschiedene verschlüsselte GitHub-Geheimnisse, darunter:
DATABRICKS_HOST
: Der Werthttps://
, gefolgt vom Namen Ihrer Arbeitsbereichsinstanz (Beispiel:adb-1234567890123456.7.azuredatabricks.net
).AZURE_CREDENTIALS
: Ein JSON-Dokument, das die Ausgabe der Azure CLI-Ausführung zum Abrufen von Informationen zu einem durch Microsoft Entra ID verwalteten Dienstprinzipal darstellt. Weitere Informationen finden Sie in der Dokumentation für die GitHub-Aktion.AZURE_SP_APPLICATION_ID
: Der Wert der Anwendungs-ID (Client) für den durch Microsoft Entra ID verwalteten Dienstprinzipal.AZURE_SP_TENANT_ID
: Der Wert der Verzeichnis-ID (Mandant) für den durch Microsoft Entra ID verwalteten Dienstprinzipal.AZURE_SP_CLIENT_SECRET
: Der Wert des geheimen Clientschlüssels für den durch Microsoft Entra ID verwalteten Dienstprinzipal.
Weitere Informationen dazu, welche verschlüsselten GitHub-Geheimnisse für einen GitHub Actions-Vorgang erforderlich sind, finden Sie unter Verwalten von Dienstprinzipalen und in der Dokumentation zum jeweiligen GitHub Actions-Vorgang.
Informationen zum Hinzufügen dieser verschlüsselten GitHub-Geheimnisse zu Ihrem GitHub-Repository finden Sie in der GitHub-Dokumentation unter Erstellen verschlüsselter Geheimnisse für ein Repository. Weitere Ansätze zum Hinzufügen dieser GitHub-Repositorygeheimnisse finden Sie in der GitHub-Dokumentation unter Verschlüsselte Geheimnisse.
Hinzufügen des persönlichen GitHub-Zugriffstokens für einen GitHub-Computerbenutzer zu Ihrem Azure Databricks-Arbeitsbereich
In diesem Abschnitt wird beschrieben, wie Sie Ihren Azure Databricks-Arbeitsbereich für den Zugriff auf GitHub mit Azure Databricks Git-Ordner aktivieren. Dies ist eine optionale Aufgabe in CI/CD-Szenarien.
Als bewährte Sicherheitsmethode empfiehlt Databricks die Verwendung von GitHub-Computerbenutzer*innen anstelle von persönlichen GitHub-Konten, und zwar aus vielen der gleichen Gründe, aus denen Sie einen Dienstprinzipal anstelle von Azure Databricks-Benutzer*innen verwenden sollten. Gehen Sie wie folgt vor, um das persönliche GitHub-Zugriffstoken für einen GitHub-Computerbenutzer Ihrem Azure Databricks-Arbeitsbereich hinzuzufügen:
Erstellen Sie einen GitHub-Computerbenutzer, falls noch keiner verfügbar ist. Ein GitHub-Computerbenutzer ist ein persönliches GitHub-Konto, das von Ihrem eigenen persönlichen GitHub-Konto getrennt ist und zum Automatisieren von Aktivitäten auf GitHub verwendet werden kann. Erstellen Sie ein neues separates GitHub-Konto für die Verwendung als GitHub-Computerbenutzer, falls noch keins verfügbar ist.
Hinweis
Wenn Sie ein neues separates GitHub-Konto als GitHub-Computerbenutzer erstellen, können Sie es nicht mit der E-Mail-Adresse für Ihr eigenes persönliches GitHub-Konto verknüpfen. Wenden Sie sich stattdessen an den E-Mail-Administrator Ihrer Organisation, um eine separate E-Mail-Adresse zu erhalten, die Sie diesem neuen separaten GitHub-Konto als GitHub-Computerbenutzer zuordnen können.
Wenden Sie sich zwecks Verwaltung der separaten E-Mail-Adresse und des zugehörigen GitHub-Computerbenutzers sowie der persönlichen GitHub-Zugriffstoken innerhalb Ihrer Organisation an den Kontoadministrator Ihrer Organisation.
Gewähren Sie dem GitHub-Computerbenutzer Zugriff auf Ihr GitHub-Repository. Eine entsprechende Anleitung finden Sie in der GitHub-Dokumentation unter Einladen eines Teams oder einer Person. Um die Einladung annehmen zu können, müssen Sie sich möglicherweise zuerst von Ihrem persönlichen GitHub-Konto abmelden und sich anschließend als GitHub-Computerbenutzer anmelden.
Melden Sie sich bei GitHub als der Computerbenutzer an, und erstellen Sie ein persönliches GitHub-Zugriffstoken für diesen Computerbenutzer. Weitere Informationen finden Sie in der GitHub-Dokumentation unter Erstellen eines persönlichen Zugriffstokens. Denken Sie daran, dem persönlichen GitHub-Zugriffstoken Repositoryzugriff zu gewähren.
Erfassen Sie das Microsoft Entra ID-Token für Ihren Dienstprinzipal, den Benutzernamen Ihres GitHub-Computers, und fügen Sie dann Anmeldeinformationen eines Git-Anbieters zu einem Azure Databricks-Arbeitsbereich hinzu.
Einrichten von Azure Pipelines
Azure Pipelines benötigt Zugriff auf Ihren Azure Databricks-Arbeitsbereich. Wenn Sie auch Azure Databricks Git-Ordner verwenden möchten, muss Ihr Arbeitsbereich in der Lage sein, auf Azure Pipelines zuzugreifen.
YAML-Pipelinedateien von Azure Pipelines benötigen Umgebungsvariablen für den Zugriff auf Ihren Azure Databricks-Arbeitsbereich. Zu diesen Umgebungsvariablen gehören solche wie:
DATABRICKS_HOST
: Der Werthttps://
, gefolgt vom Namen Ihrer Arbeitsbereichsinstanz (Beispiel:adb-1234567890123456.7.azuredatabricks.net
).DATABRICKS_TOKEN
: Der Wert destoken_value
-Werts, den Sie kopiert haben, nachdem Sie das Microsoft Entra ID-Token für den durch Microsoft Entra ID verwalteten Dienstprinzipal erstellt haben.
Informationen zum Hinzufügen dieser Umgebungsvariablen zu Ihrer Azure-Pipeline finden Sie unter Verwenden von Azure Key Value-Geheimnissen in Azure Pipelines und Festlegen geheimer Variablen in der Azure-Dokumentation.
Weitere Informationen finden Sie auch im folgenden Databricks-Blog:
Optional für CI/CD-Szenarien: Wenn Ihr Arbeitsbereich Azure Databricks Git-Ordner verwendet und Sie Ihren Arbeitsbereich für den Zugriff auf Azure Pipelines aktivieren möchten, sammeln Sie Folgendes:
- Das Microsoft Entra ID-Token für Ihren Dienstprinzipal
- Ihren Azure Pipelines-Benutzernamen
Einrichten von GitLab CI/CD
GitLab CI/CD benötigt Zugriff auf Ihren Azure Databricks-Arbeitsbereich. Wenn Sie auch Azure Databricks Git-Ordner verwenden möchten, muss Ihr Arbeitsbereich in der Lage sein, auf GitLab CI/CD zuzugreifen.
Für den Zugriff auf Ihren Azure Databricks-Arbeitsbereich verwenden .gitlab-ci.yml
-Dateien von GitLab CI/CD, wie die in der einfachen Python-Vorlage in dbx
, benutzerdefinierte CI/CD-Variablen wie die Folgenden:
DATABRICKS_HOST
: Der Werthttps://
, gefolgt vom Namen Ihrer Arbeitsbereichsinstanz (Beispiel:adb-1234567890123456.7.azuredatabricks.net
).DATABRICKS_TOKEN
: Der Wert destoken_value
-Werts, den Sie kopiert haben, nachdem Sie das Microsoft Entra ID-Token für den Dienstprinzipal erstellt haben.
Informationen zum Hinzufügen dieser benutzerdefinierten Variablen zu Ihrem GitLab CI/CD-Projekt finden Sie unter Hinzufügen einer CI/CD-Variablen zu einem Projekt in der GitLab CI/CD-Dokumentation.
Wenn Ihr Arbeitsbereich Databricks-Git-Ordner verwendet und Sie den Zugriff Ihres Arbeitsbereichs auf GitLab CI/CD aktivieren möchten, benötigen Sie folgende Informationen:
- Das Microsoft Entra ID-Token für Ihren Dienstprinzipal
- Ihren GitLab CI/CD-Benutzernamen
Hinzufügen von Anmeldeinformationen des Git-Anbieters zu einem Azure Databricks-Arbeitsbereich
Dieser Abschnitt beschreibt, wie Sie Ihren Azure Databricks-Arbeitsbereich für den Zugriff auf einen Git-Anbieter für Azure Databricks Git-Ordner aktivieren. Dies ist in CI/CD-Szenarien optional. Sie möchten z. B., dass Ihr Git-Anbieter nur auf Ihren Azure Databricks-Arbeitsbereich zugreift, aber Sie möchten nicht auch Azure Databricks Git-Ordner in Ihrem Arbeitsbereich mit Ihrem Git-Anbieter verwenden. Wenn dies der Fall ist, dann überspringen Sie diesen Abschnitt.
Bevor Sie beginnen, sollten Sie die folgenden Informationen und Tools sammeln:
- Das Microsoft Entra ID-Token für Ihren Dienstprinzipal.
- Den Ihrem Git-Anbieter zugeordneten Benutzernamen
- Das dem Benutzer für Ihren Git-Anbieter zugeordnete Zugriffstoken
Hinweis
Informationen zu Azure Pipelines finden Sie unter Verwenden von persönlichen Zugriffstoken auf der Azure-Website.
- Databricks-CLI-Version 0.205 oder höher. Weitere Informationen finden Sie unter Was ist die Databricks-CLI?. Die Benutzeroberfläche von Azure Databricks kann nicht verwendet werden.
- Ein Azure Databricks-Konfigurationsprofil in Ihrer
.databrickscfg
-Datei. Dabei müssen die Felder des Profils ordnungsgemäß für den zugehörigen Host (host
), der die arbeitsbereichsspezifische URL für Azure Databricks darstellt (etwahttps://adb-1234567890123456.7.azuredatabricks.net
), und das Tokentoken
festgelegt sein, das das Microsoft Entra ID-Token für Ihren Dienstprinzipal darstellt. (Verwenden Sie nicht das persönliche Zugriffstoken von Databricks für Ihre Arbeitsbereichsbenutzer*innen.) Weitere Informationen finden Sie unter Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken.
Führen Sie den folgenden Befehl mit der Databricks CLI aus:
databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
- Verwenden Sie für
<git-provider-short-name>
einen der folgenden Werte:- Verwenden Sie für GitHub
GitHub
. - Verwenden Sie für Azure Pipelines
AzureDevOpsServices
. - Verwenden Sie für GitLab CI/CD
GitLab
.
- Verwenden Sie für GitHub
- Ersetzen Sie
<git-provider-user-name>
durch den Ihrem Git-Anbieter zugeordneten Benutzernamen. - Ersetzen Sie
<git-provider-access-token>
durch das dem Benutzer oder Benutzerin für Ihren Git-Anbieter zugeordnete Zugriffstoken. - Ersetzen Sie
<profile-name>
durch den Namen des Azure Databricks-Konfigurationsprofils in der Datei.databrickscfg
.
Tipp
Um zu bestätigen, dass der Aufruf erfolgreich war, können Sie einen der folgenden Databricks CLI-Befehle ausführen und die Ausgabe überprüfen:
databricks git-credentials list -p <profile-name>
databricks git-credentials get <credential-id> -p <profile-name>