Entità servizio per CI/CD
Questo articolo descrive come usare le entità servizio per CI/CD con Azure Databricks. Un'entità servizio è un'identità creata per l'uso con strumenti e applicazioni automatizzati, tra cui:
- Piattaforme CI/CD come GitHub Actions, Azure Pipelines e GitLab CI/CD
- Flusso di aria nelle pipeline di dati
- Jenkins
Come procedura consigliata per la sicurezza, Databricks consiglia di usare un'entità servizio e il relativo token anziché l'utente di Azure Databricks o il token di accesso personale di Databricks per consentire all'utente dell'area di lavoro di concedere alle piattaforme CI/CD l'accesso alle risorse di Azure Databricks. Alcuni vantaggi di questo approccio includono i seguenti:
- È possibile concedere e limitare l'accesso alle risorse di Azure Databricks per un'entità servizio indipendentemente da un utente. Ad esempio, ciò consente di impedire a un'entità servizio di agire come amministratore nell'area di lavoro di Azure Databricks, consentendo comunque ad altri utenti specifici dell'area di lavoro di continuare a fungere da amministratori.
- Gli utenti possono proteggere i token di accesso dalle piattaforme CI/CD.
- È possibile disabilitare o eliminare temporaneamente un'entità servizio senza influire sugli altri utenti. Ad esempio, ciò consente di sospendere o rimuovere l'accesso da un'entità servizio che si sospetta venga usata in modo dannoso.
- Se un utente lascia l'organizzazione, è possibile rimuovere l'utente senza alcun impatto sull'entità servizio.
Per concedere a una piattaforma CI/CD l'accesso all'area di lavoro di Azure Databricks, eseguire le operazioni seguenti:
Scegliere uno dei meccanismi di autenticazione MS Entra supportati seguenti con una connessione al servizio:
Federazione dell'identità del carico di lavoro Di Microsoft Entra, usando l'interfaccia della riga di comando di Azure come meccanismo di autenticazione.
- Un'entità servizio Microsoft Entra, che usa un segreto client Microsoft Entra come meccanismo di autenticazione.
- Identità gestita di Microsoft Entra ID.
Per informazioni dettagliate sull'implementazione dell'autenticazione con Microsoft Entra, vedere Eseguire l'autenticazione con Azure DevOps in Databricks.
Per informazioni su come autenticare in modo specifico l'accesso alle cartelle Git di Azure Databricks usando Azure DevOps, vedere Usare un'entità servizio Microsoft Entra per autenticare l'accesso alle cartelle Git di Azure Databricks.
- Un'entità servizio Microsoft Entra, che usa un segreto client Microsoft Entra come meccanismo di autenticazione.
Requisiti
- Token OAuth di Azure Databricks o token ID Microsoft Entra per un'entità servizio gestita di Azure Databricks o un'entità servizio gestita da Microsoft Entra ID. Per creare un'entità servizio gestita di Azure Databricks o un'entità servizio gestita di Microsoft Entra ID e il relativo token OAuth di Azure Databricks o token ID Microsoft Entra, vedere Gestire le entità servizio.
- Un account con il provider Git.
Configurare GitHub Actions
GitHub Actions deve essere in grado di accedere all'area di lavoro di Azure Databricks. Se si vogliono usare le cartelle Git di Azure Databricks, l'area di lavoro deve anche essere in grado di accedere a GitHub.
Per consentire a GitHub Actions di accedere all'area di lavoro di Azure Databricks, è necessario fornire informazioni sull'entità servizio gestita di Azure Databricks o sull'entità servizio gestita di Microsoft Entra ID in GitHub Actions. Può includere informazioni quali l'ID applicazione (client), l'ID directory (tenant) per un'entità servizio gestita di Microsoft Entra ID, l'entità servizio gestita di Azure Databricks o il segreto client dell'entità servizio gestita di Microsoft Entra ID o il access_token
valore per un'entità servizio gestita di Azure Databricks, a seconda dei requisiti di GitHub Action. Per altre informazioni, vedere Gestire le entità servizio e la documentazione di GitHub Action.
Se si vuole anche abilitare l'area di lavoro di Azure Databricks per accedere a GitHub quando si usano le cartelle Git di Azure Databricks, è necessario aggiungere il token di accesso personale gitHub per un utente del computer GitHub all'area di lavoro.
Fornire informazioni sull'entità servizio a GitHub Actions
Questa sezione descrive come abilitare GitHub Actions per accedere all'area di lavoro di Azure Databricks.
Come procedura consigliata per la sicurezza, Databricks consiglia di non immettere informazioni sull'entità servizio direttamente nel corpo di un file GitHub Actions. È consigliabile fornire queste informazioni a GitHub Actions usando invece i segreti crittografati di GitHub.
GitHub Actions, ad esempio quelli elencati da Databricks nell'integrazione e nel recapito continui con GitHub Actions, si basano su vari segreti crittografati di GitHub, ad esempio:
DATABRICKS_HOST
, che è il valorehttps://
seguito dal nome dell'istanza dell'area di lavoro, ad esempioadb-1234567890123456.7.azuredatabricks.net
.AZURE_CREDENTIALS
, ovvero un documento JSON che rappresenta l'output dell'esecuzione dell'interfaccia della riga di comando di Azure per ottenere informazioni su un'entità servizio gestita con ID Microsoft Entra. Per altre informazioni, vedere la documentazione per GitHub Action.AZURE_SP_APPLICATION_ID
, ovvero il valore dell'ID applicazione (client) per un'entità servizio gestita con ID Microsoft Entra.AZURE_SP_TENANT_ID
, ovvero il valore dell'ID directory (tenant) per un'entità servizio gestita con ID Microsoft Entra.AZURE_SP_CLIENT_SECRET
, ovvero il valore del valore del segreto client per un'entità servizio gestita dell'ID Microsoft Entra.
Per altre informazioni sui segreti crittografati di GitHub necessari per un'azione GitHub, vedere Gestire le entità servizio e la documentazione relativa a GitHub Action.
Per aggiungere questi segreti crittografati di GitHub al repository GitHub, vedere Creazione di segreti crittografati per un repository nella documentazione di GitHub. Per altri approcci per aggiungere questi segreti del repository GitHub, vedere Segreti crittografati nella documentazione di GitHub.
Aggiungere il token di accesso personale gitHub per un utente del computer GitHub all'area di lavoro di Azure Databricks
Questa sezione descrive come abilitare l'area di lavoro di Azure Databricks per accedere a GitHub con le cartelle Git di Azure Databricks. Si tratta di un'attività facoltativa negli scenari CI/CD.
Come procedura consigliata per la sicurezza, Databricks consiglia di usare gli utenti del computer GitHub anziché gli account personali di GitHub, per molti degli stessi motivi per cui è consigliabile usare un'entità servizio anziché un utente di Azure Databricks. Per aggiungere il token di accesso personale GitHub per un utente del computer GitHub all'area di lavoro di Azure Databricks, eseguire le operazioni seguenti:
Creare un utente del computer GitHub, se non ne è già disponibile uno. Un utente del computer GitHub è un account personale GitHub, separato dal proprio account personale GitHub, che è possibile usare per automatizzare l'attività in GitHub. Creare un nuovo account GitHub separato da usare come utente del computer GitHub, se non ne è già disponibile uno.
Nota
Quando si crea un nuovo account GitHub separato come utente del computer GitHub, non è possibile associarlo all'indirizzo di posta elettronica per il proprio account personale GitHub. Vedere invece l'amministratore di posta elettronica dell'organizzazione per ottenere un indirizzo di posta elettronica separato che è possibile associare a questo nuovo account GitHub separato come utente del computer GitHub.
Vedere l'amministratore dell'account dell'organizzazione sulla gestione dell'indirizzo di posta elettronica separato e dell'utente del computer GitHub associato e dei relativi token di accesso personali GitHub all'interno dell'organizzazione.
Concedere all'utente del computer GitHub l'accesso al repository GitHub. Vedere Invito di un team o di una persona nella documentazione di GitHub. Per accettare l'invito, potrebbe essere necessario disconnettersi dall'account personale GitHub e quindi accedere di nuovo come utente del computer GitHub.
Accedere a GitHub come utente del computer e quindi creare un token di accesso personale GitHub per l'utente del computer. Vedere Creare un token di accesso personale nella documentazione di GitHub. Assicurarsi di concedere all'accesso al repository del token di accesso personale gitHub.
Raccogliere il token ID Microsoft Entra per l'entità servizio, il nome utente del computer GitHub e quindi aggiungere le credenziali del provider Git a un'area di lavoro di Azure Databricks.
Configurare Azure Pipelines
Azure Pipelines deve essere in grado di accedere all'area di lavoro di Azure Databricks. Se si vogliono usare anche le cartelle Git di Azure Databricks, l'area di lavoro deve essere in grado di accedere ad Azure Pipelines.
I file di pipeline YAML di Azure Pipelines si basano sulle variabili di ambiente per accedere all'area di lavoro di Azure Databricks. Queste variabili di ambiente includono quelle come:
DATABRICKS_HOST
, che è il valorehttps://
seguito dal nome dell'istanza dell'area di lavoro, ad esempioadb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_TOKEN
, che è il valore deltoken_value
valore copiato dopo aver creato il token ID Microsoft Entra per l'entità servizio gestita di Microsoft Entra ID.
Per aggiungere queste variabili di ambiente alla pipeline di Azure, vedere Usare i segreti chiave di Azure Key Value in Azure Pipelines e Impostare le variabili segrete nella documentazione di Azure.
Vedere anche il blog di Databricks seguente:
Facoltativo per gli scenari CI/CD: se l'area di lavoro usa cartelle Git di Azure Databricks e si vuole consentire all'area di lavoro di accedere ad Azure Pipelines, raccogliere:
- Token ID Microsoft Entra per l'entità servizio
- Nome utente di Azure Pipelines
Aggiungere quindi le credenziali del provider Git a un'area di lavoro di Azure Databricks.
Configurare GitLab CI/CD
GitLab CI/CD deve essere in grado di accedere all'area di lavoro di Azure Databricks. Se si vogliono usare anche le cartelle Git di Azure Databricks, l'area di lavoro deve essere in grado di accedere a GitLab CI/CD.
Per accedere all'area di lavoro di Azure Databricks, i file CI/CD .gitlab-ci.yml
di GitLab, ad esempio quelli inclusi nel modello Python di base in dbx
, si basano su variabili CI/CD personalizzate, ad esempio:
DATABRICKS_HOST
, che è il valorehttps://
seguito dal nome dell'istanza dell'area di lavoro, ad esempioadb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_TOKEN
, ovvero il valore deltoken_value
valore copiato dopo aver creato il token ID Microsoft Entra per l'entità servizio.
Per aggiungere queste variabili personalizzate al progetto CI/CD di GitLab, vedere Aggiungere una variabile CI/CD a un progetto nella documentazione di GitLab CI/CD.
Se l'area di lavoro usa cartelle Git di Databricks e si vuole abilitare l'area di lavoro per accedere a GitLab CI/CD, raccogliere:
- Token ID Microsoft Entra per l'entità servizio
- Nome utente CI/CD di GitLab
Aggiungere quindi le credenziali del provider Git a un'area di lavoro di Azure Databricks.
Aggiungere le credenziali del provider Git a un'area di lavoro di Azure Databricks
Questa sezione descrive come abilitare l'area di lavoro di Azure Databricks per accedere a un provider Git per le cartelle Git di Azure Databricks. Questa opzione è facoltativa negli scenari CI/CD. Ad esempio, è possibile che il provider Git accechi solo l'area di lavoro di Azure Databricks, ma non si vogliono usare anche le cartelle Git di Azure Databricks nell'area di lavoro con il provider Git. In tal caso, ignorare questa sezione.
Prima di iniziare, raccogliere le informazioni e gli strumenti seguenti:
- Token ID Microsoft Entra per l'entità servizio.
- Nome utente associato al provider Git.
- Token di accesso associato all'utente per il provider Git.
Nota
Per Azure Pipelines, vedere Usare i token di accesso personale nel sito Web di Azure.
- Interfaccia della riga di comando di Databricks versione 0.205 o successiva. Consultare Che cos'è il Databricks CLI?. Non è possibile usare l'interfaccia utente di Azure Databricks.
- Un profilo di configurazione di Azure Databricks nel
.databrickscfg
file, con i campi del profilo impostati correttamente per l'URL correlatohost
che rappresenta l'URL di Azure Databricks per area di lavoro, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
, etoken
che rappresenta il token ID Microsoft Entra per l'entità servizio. Non usare il token di accesso personale di Databricks per l'utente dell'area di lavoro. Vedere Autenticazione del token di accesso personale di Azure Databricks.
Usare il Databricks CLI eseguire il seguente comando:
databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
- Usare uno dei valori seguenti per
<git-provider-short-name>
:- Per GitHub usare
GitHub
. - Per Azure Pipelines usare
AzureDevOpsServices
. - Per GitLab CI/CD, usare
GitLab
.
- Per GitHub usare
- Sostituire
<git-provider-user-name>
con il nome utente associato al provider Git. - Sostituire
<git-provider-access-token>
con il token di accesso associato all'utente per il provider Git. - Sostituire
<profile-name>
con il nome del profilo di configurazione di Azure Databricks nel.databrickscfg
file.
Suggerimento
Per verificare che la chiamata sia riuscita, è possibile eseguire uno dei comandi dell'interfaccia della riga di comando di Databricks seguenti ed esaminare l'output:
databricks git-credentials list -p <profile-name>
databricks git-credentials get <credential-id> -p <profile-name>