Delen via


Service-principals voor CI/CD

In dit artikel wordt beschreven hoe u service-principals gebruikt voor CI/CD met Azure Databricks. Een service-principal is een identiteit die is gemaakt voor gebruik met geautomatiseerde hulpprogramma's en toepassingen, waaronder:

Als best practice voor beveiliging raadt Databricks u aan om een service-principal en het bijbehorende token te gebruiken in plaats van uw Azure Databricks-gebruiker of uw persoonlijke Databricks-toegangstoken voor uw werkruimtegebruiker om CI/CD-platforms toegang te geven tot Azure Databricks-resources. Enkele voordelen van deze aanpak zijn onder andere:

  • U kunt de toegang tot Azure Databricks-resources voor een service-principal onafhankelijk van een gebruiker verlenen en beperken. Zo kunt u bijvoorbeeld voorkomen dat een service-principal als beheerder in uw Azure Databricks-werkruimte fungeert terwijl andere specifieke gebruikers in uw werkruimte nog steeds als beheerders kunnen fungeren.
  • Gebruikers kunnen hun toegangstokens beschermen tegen toegang door CI/CD-platforms.
  • U kunt een service-principal tijdelijk uitschakelen of permanent verwijderen zonder dat dit van invloed is op andere gebruikers. Zo kunt u bijvoorbeeld de toegang onderbreken of verwijderen van een service-principal waarvan u vermoedt dat deze op schadelijke wijze wordt gebruikt.
  • Als een gebruiker uw organisatie verlaat, kunt u die gebruiker verwijderen zonder dat dit van invloed is op een service-principal.

Ga als volgt te werk om een CI/CD-platform toegang te geven tot uw Azure Databricks-werkruimte:

Kies een van de volgende ondersteunde MS Entra-verificatiemechanismen met een serviceverbinding:

Vereisten

  • Het Azure Databricks OAuth-token of Microsoft Entra ID-token voor een door Azure Databricks beheerde service-principal of een door Microsoft Entra ID beheerde service-principal. Zie Service-principals beheren om een door Azure Databricks beheerde service-principal of door Microsoft Entra ID beheerde service-principal en het bijbehorende Azure Databricks OAuth-token of het Microsoft Entra ID-token te maken.
  • Een account met uw Git-provider.

GitHub Actions instellen

GitHub Actions moet toegang hebben tot uw Azure Databricks-werkruimte. Als u Azure Databricks Git-mappen wilt gebruiken, moet uw werkruimte ook toegang hebben tot GitHub.

Als u Wilt dat GitHub Actions toegang krijgt tot uw Azure Databricks-werkruimte, moet u informatie opgeven over uw beheerde service-principal van Azure Databricks of de door Microsoft Entra ID beheerde service-principal voor GitHub Actions. Dit kan informatie bevatten, zoals de toepassings-id (client),de directory-id (tenant) voor een door Microsoft Entra ID beheerde service-principal, de door Azure Databricks beheerde service-principal of het clientgeheim van de door Microsoft Entra ID beheerde service-principal of de access_token waarde voor een door Azure Databricks beheerde service-principal, afhankelijk van de vereisten van de GitHub Action. Zie service-principals en de documentatie van de GitHub Action beheren voor meer informatie.

Als u uw Azure Databricks-werkruimte ook wilt inschakelen voor toegang tot GitHub wanneer u Azure Databricks Git-mappen gebruikt, moet u het persoonlijke GitHub-toegangstoken voor een GitHub-machinegebruiker toevoegen aan uw werkruimte.

Geef informatie over uw service-principal op voor GitHub Actions

In deze sectie wordt beschreven hoe u GitHub Actions toegang kunt geven tot uw Azure Databricks-werkruimte.

Als best practice voor beveiliging raadt Databricks u aan geen informatie over uw service-principal rechtstreeks in de hoofdtekst van een GitHub Actions-bestand in te voeren. U moet deze informatie doorgeven aan GitHub Actions door in plaats daarvan versleutelde gitHub-geheimen te gebruiken.

GitHub Actions, zoals de acties die Door Databricks worden vermeld in continue integratie en levering met behulp van GitHub Actions, zijn afhankelijk van verschillende met GitHub versleutelde geheimen, zoals:

  • DATABRICKS_HOST, dit is de waarde https:// gevolgd door de naam van uw werkruimte-exemplaar, bijvoorbeeld adb-1234567890123456.7.azuredatabricks.net.
  • AZURE_CREDENTIALS, een JSON-document dat de uitvoer vertegenwoordigt van het uitvoeren van de Azure CLI voor informatie over een door Microsoft Entra ID beheerde service-principal. Zie de documentatie voor de GitHub Action voor meer informatie.
  • AZURE_SP_APPLICATION_ID, wat de waarde is van de toepassings-id (client) voor een door Microsoft Entra ID beheerde service-principal.
  • AZURE_SP_TENANT_ID, wat de waarde is van de directory-id (tenant) voor een door Microsoft Entra ID beheerde service-principal.
  • AZURE_SP_CLIENT_SECRET, wat de waarde is van de waarde van het clientgeheim voor een door Microsoft Entra ID beheerde service-principal.

Zie Service-principals en de documentatie voor die GitHub Action beheren voor meer informatie over welke versleutelde GitHub-geheimen vereist zijn voor een GitHub Action.

Zie Versleutelde geheimen maken voor een opslagplaats in de GitHub-documentatie om deze met GitHub versleutelde geheimen toe te voegen aan uw GitHub-opslagplaats . Zie Versleutelde geheimen in de GitHub-documentatie voor andere methoden voor het toevoegen van deze GitHub-opslagplaatsgeheimen.

Het persoonlijke GitHub-toegangstoken voor een GitHub-machinegebruiker toevoegen aan uw Azure Databricks-werkruimte

In deze sectie wordt beschreven hoe u uw Azure Databricks-werkruimte kunt inschakelen voor toegang tot GitHub met Azure Databricks Git-mappen. Dit is een optionele taak in CI/CD-scenario's.

Als best practice voor beveiliging raadt Databricks u aan om gebruikers van GitHub-machines te gebruiken in plaats van persoonlijke GitHub-accounts, om veel van dezelfde redenen dat u een service-principal moet gebruiken in plaats van een Azure Databricks-gebruiker. Ga als volgt te werk om het persoonlijke GitHub-toegangstoken voor een GitHub-machinegebruiker toe te voegen aan uw Azure Databricks-werkruimte:

  1. Maak een GitHub-machinegebruiker als u er nog geen hebt. Een GitHub-machinegebruiker is een persoonlijk GitHub-account, gescheiden van uw eigen persoonlijke GitHub-account, dat u kunt gebruiken om activiteiten op GitHub te automatiseren. Maak een nieuw afzonderlijk GitHub-account dat moet worden gebruikt als gebruiker van een GitHub-machine, als u er nog geen hebt.

    Notitie

    Wanneer u een nieuw afzonderlijk GitHub-account maakt als gebruiker van een GitHub-computer, kunt u dit niet koppelen aan het e-mailadres voor uw eigen persoonlijke GitHub-account. In plaats daarvan raadpleegt u de e-mailbeheerder van uw organisatie over het verkrijgen van een afzonderlijk e-mailadres dat u kunt koppelen aan dit nieuwe afzonderlijke GitHub-account als gebruiker van een GitHub-computer.

    Zie de accountbeheerder van uw organisatie over het beheren van het afzonderlijke e-mailadres en de bijbehorende GitHub-computergebruiker en de bijbehorende persoonlijke GitHub-toegangstokens binnen uw organisatie.

  2. Geef de Gebruiker van de GitHub-machine toegang tot uw GitHub-opslagplaats. Zie Een team of persoon uitnodigen in de GitHub-documentatie. Als u de uitnodiging wilt accepteren, moet u zich mogelijk eerst afmelden bij uw persoonlijke GitHub-account en vervolgens weer aanmelden als de gebruiker van de GitHub-computer.

  3. Meld u als computergebruiker aan bij GitHub en maak vervolgens een persoonlijk GitHub-toegangstoken voor die computergebruiker. Zie Een persoonlijk toegangstoken maken in de GitHub-documentatie. Zorg ervoor dat u de persoonlijke toegangstokenopslagplaats van GitHub verleent.

  4. Verzamel het Microsoft Entra ID-token voor uw service-principal, de gebruikersnaam van uw GitHub-machine en voeg vervolgens referenties van de Git-provider toe aan een Azure Databricks-werkruimte.

Azure Pipelines instellen

Azure Pipelines moet toegang hebben tot uw Azure Databricks-werkruimte. Als u ook Azure Databricks Git-mappen wilt gebruiken, moet uw werkruimte toegang hebben tot Azure Pipelines.

YAML-pijplijnbestanden van Azure Pipelines zijn afhankelijk van omgevingsvariabelen voor toegang tot uw Azure Databricks-werkruimte. Deze omgevingsvariabelen zijn onder andere:

  • DATABRICKS_HOST, dit is de waarde https:// gevolgd door de naam van uw werkruimte-exemplaar, bijvoorbeeld adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, dit is de waarde van de token_value waarde die u hebt gekopieerd nadat u het Microsoft Entra ID-token hebt gemaakt voor de beheerde service-principal van Microsoft Entra ID.

Als u deze omgevingsvariabelen wilt toevoegen aan uw Azure-pijplijn, raadpleegt u Azure Key Value-geheimen gebruiken in Azure Pipelines en geheime variabelen instellen in de Azure-documentatie.

Zie ook de volgende Databricks-blog:

Optioneel voor CI/CD-scenario's: als uw werkruimte gebruikmaakt van Azure Databricks Git-mappen en u uw werkruimte toegang wilt geven tot Azure Pipelines, verzamelt u:

  • Het Microsoft Entra ID-token voor uw service-principal
  • De gebruikersnaam van Uw Azure Pipelines

Voeg vervolgens referenties van een Git-provider toe aan een Azure Databricks-werkruimte.

GitLab CI/CD instellen

GitLab CI/CD moet toegang hebben tot uw Azure Databricks-werkruimte. Als u ook Azure Databricks Git-mappen wilt gebruiken, moet uw werkruimte toegang hebben tot GitLab CI/CD.

Voor toegang tot uw Azure Databricks-werkruimte zijn GitLab CI/CD-bestanden .gitlab-ci.yml , zoals die als onderdeel van de Basic Python-sjabloon , dbxafhankelijk van aangepaste CI/CD-variabelen, zoals:

  • DATABRICKS_HOST, dit is de waarde https:// gevolgd door de naam van uw werkruimte-exemplaar, bijvoorbeeld adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, dit is de waarde van de token_value waarde die u hebt gekopieerd nadat u het Microsoft Entra ID-token voor de service-principal hebt gemaakt.

Zie Een CI/CD-variabele toevoegen aan een project in de GitLab CI/CD-documentatie om deze aangepaste variabelen toe te voegen aan uw GitLab CI/CD-project .

Als uw werkruimte gebruikmaakt van Databricks Git-mappen en u uw werkruimte toegang wilt geven tot GitLab CI/CD, verzamelt u:

  • Het Microsoft Entra ID-token voor uw service-principal
  • Uw GitLab CI/CD-gebruikersnaam

Voeg vervolgens referenties van een Git-provider toe aan een Azure Databricks-werkruimte.

Referenties van Git-provider toevoegen aan een Azure Databricks-werkruimte

In deze sectie wordt beschreven hoe u uw Azure Databricks-werkruimte kunt inschakelen voor toegang tot een Git-provider voor Azure Databricks Git-mappen. Dit is optioneel in CI/CD-scenario's. U wilt bijvoorbeeld alleen dat uw Git-provider toegang heeft tot uw Azure Databricks-werkruimte, maar u wilt niet ook Azure Databricks Git-mappen in uw werkruimte gebruiken met uw Git-provider. Zo ja, sla dan deze sectie over.

Voordat u begint, verzamelt u de volgende informatie en hulpprogramma's:

  • Het Microsoft Entra ID-token voor uw service-principal.
  • De gebruikersnaam die is gekoppeld aan uw Git-provider.
  • Het toegangstoken dat is gekoppeld aan de gebruiker voor uw Git-provider.

Notitie

Zie Persoonlijke toegangstokens gebruiken op de Azure-website voor Azure Pipelines.

  • Databricks CLI versie 0.205 of hoger. Zie Wat is de Databricks CLI? U kunt de gebruikersinterface van Azure Databricks niet gebruiken.
  • Een Azure Databricks-configuratieprofiel in uw .databrickscfg bestand, waarbij de velden van het profiel correct zijn ingesteld voor de gerelateerde host url van uw Azure Databricks per werkruimte, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.neten token het Microsoft Entra ID-token voor uw service-principal vertegenwoordigen. (Gebruik het persoonlijke toegangstoken van Databricks niet voor uw werkruimtegebruiker.) Zie persoonlijke toegangstokenverificatie van Azure Databricks.

Gebruik de Databricks CLI om de volgende opdracht uit te voeren:

databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
  • Gebruik een van de volgende opties voor <git-provider-short-name>:
    • Gebruik voor GitHub GitHub.
    • Gebruik AzureDevOpsServicesvoor Azure Pipelines.
    • Gebruik voor GitLab CI/CD GitLab.
  • Vervang <git-provider-user-name> door de gebruikersnaam die is gekoppeld aan uw Git-provider.
  • Vervang <git-provider-access-token> door het toegangstoken dat is gekoppeld aan de gebruiker voor uw Git-provider.
  • Vervang <profile-name> door de naam van het Azure Databricks-configuratieprofiel in uw .databrickscfg bestand.

Tip

Om te bevestigen dat de aanroep is geslaagd, kunt u een van de volgende Databricks CLI-opdrachten uitvoeren en de uitvoer controleren:

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