Condividi tramite


Gestire le cartelle Git di Azure Databricks con Terraform

È possibile gestire le cartelle Git di Azure Databricks in un ambiente completamente automatizzato usando Terraform e la risorsa databricks_repo Terraform.

Questo argomento illustra due approcci di autenticazione:

  • Autenticazione del token di accesso personale (PAT): Usa i token di accesso personale Git per l'accesso al repository
  • Entità servizio con credenziali federate: Usa le entità servizio di Azure con token OpenID Connect (OIDC) per l'autenticazione sicura senza token nei repository Di Azure DevOps

Autenticazione con token di accesso personali

Questo approccio usa i token di accesso personale Git per l'autenticazione del repository.

Nel file di configurazione di Terraform (.tf) impostare databricks_repo sull'URL del repository Git che verrà usato per le cartelle Git:

resource "databricks_repo" "this" {
  url = "https://github.com/user/demo.git"
}

Per usare un'entità servizio di Azure Databricks con credenziali Git basate su token di accesso personale, seguire i seguenti passaggi:

Passaggio 1: Configurare il provider di Azure Databricks

Impostare il provider databricks sull'URL dell'area di lavoro di Azure Databricks. Il token databricks_obo_token di accesso verrà definito in un passaggio successivo.

provider "databricks" {
  # Configuration options
}

# Example 'databricks' provider configuration
provider "databricks" {
  alias = "sp"
  host = "https://....cloud.databricks.com"
  token = databricks_obo_token.this.token_value
}

Passaggio 2: Creare il principale del servizio

Definire le risorse per il principale di servizio di Azure Databricks. È possibile trovare il nome del principale del servizio nella console dell'account Azure Databricks sotto Gestione utenti>Principali del servizio.

resource "databricks_service_principal" "sp" {
  display_name = "<service_principal_name_here>"
}

Passaggio 3: Creare il token di autorizzazione

Imposta il token di autorizzazione per l'account principale di servizio di Azure Databricks utilizzando l'ID dell'applicazione. È possibile trovare l'ID applicazione dell'entità servizio nella console dell'account Azure Databricks in Gestione utenti>Entità servizio.

resource "databricks_obo_token" "this" {
  application_id   = databricks_service_principal.sp.application_id
  comment          = "PAT on behalf of ${databricks_service_principal.sp.display_name}"
  lifetime_seconds = 3600
}

Passaggio 4: Configurare le credenziali Git

Configura le credenziali Git che l'entità del servizio utilizzerà per accedere al tuo repository Git.

resource "databricks_git_credential" "sp" {
  provider = databricks.sp
  depends_on = [databricks_obo_token.this]
  git_username          = "<the_git_user_account_used_by_the_servcie_principal>"
  git_provider          = "<your_git_provider_string here>"
  personal_access_token = "<auth_token_string_for_git_user>"
}

Autenticazione con un'entità servizio e credenziali federate

Per i repository Di Azure DevOps, è possibile usare le credenziali di identità federate per l'autenticazione senza archiviare segreti di lunga durata. Questo approccio utilizza un principale del servizio di Azure Databricks con un token OIDC emesso dalle pipeline di Azure DevOps, eliminando la necessità di token di accesso personali.

Prerequisiti

Prima di configurare l'autenticazione dell'identità federata per le cartelle Git di Azure Databricks, configurare i componenti seguenti:

Passaggio 1: Configurare le variabili

Specificare i valori per le variabili seguenti in un terraform.tfvars file:

  • databricks_host: URL dell'area di lavoro di Azure Databricks, ad esempio https://adb-123417477717.17.azuredatabricks.net
  • entra_client_id: ID del client principale del servizio Azure
  • entra_client_secret: segreto del client per il principale del servizio di Azure
  • entra_tenant_id: ID Microsoft Entra in cui è registrata l'entità servizio
  • ado_repo_url: URL HTTPS del Git repository in Azure DevOps

Passaggio 2: Configurare il provider di Azure Databricks

Nella configurazione di Terraform usare il provider ufficiale databricks . L'autenticazione per il provider può usare il metodo standard dell'organizzazione, ad esempio le variabili di ambiente nell'integrazione continua (CI) o un'entità servizio quando si esegue Terraform da una workstation sicura.

terraform {
  required_providers {
    databricks = {
      source  = "databricks/databricks"
      version = "1.78.0"
    }
  }
}

provider "databricks" {
  host                = var.databricks_host
  azure_client_id     = var.entra_client_id
  azure_client_secret = var.entra_client_secret
  azure_tenant_id     = var.entra_tenant_id
}

Passaggio 3: Creare una credenziale Git federata per Azure DevOps

Questa credenziale indica ad Azure Databricks di usare la federazione supportata da Azure Active Directory per Azure DevOps.

resource "databricks_git_credential" "sp_ado" {
  git_provider            = "azureDevOpsServicesAad"
  is_default_for_provider = true
}

Passaggio 4: Puntare una cartella Git al repository di Azure DevOps

Creare o aggiornare la cartella Git per usare l'URL del repository Azure DevOps.

resource "databricks_repo" "this" {
  url        = var.ado_repo_url
  depends_on = [databricks_git_credential.sp_ado]
}