次の方法で共有


Terraform を使用して Azure Databricks Git フォルダーを管理する

Terraform と databricks_repoTerraform リソースを使用して、完全に自動化された環境で Azure Databricks Git フォルダーを管理できます。

このトピックでは、次の 2 つの認証方法について説明します。

  • 個人用アクセス トークン (PAT) 認証: リポジトリ アクセスに Git 個人用アクセス トークンを使用する
  • フェデレーション資格情報を持つサービス プリンシパル: Azure DevOps リポジトリに対するセキュリティで保護されたトークンレス認証のために、OpenID Connect (OIDC) トークンで Azure サービス プリンシパルを使用します

個人用アクセス トークンを使用した認証

この方法では、リポジトリ認証に Git 個人用アクセス トークンを使用します。

Terraform 構成 (.tf) ファイルで、 databricks_repo Git フォルダーに使用する Git リポジトリの URL に設定します。

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

個人用アクセス トークンベースの Git 資格情報で Azure Databricks サービス プリンシパルを使用するには、次の手順に従います。

手順 1: Azure Databricks プロバイダーを構成する

プロバイダーの databricks を Azure Databricks ワークスペースの URL に設定します。 アクセス トークンの databricks_obo_token は、後の手順で定義します。

provider "databricks" {
  # Configuration options
}

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

手順 2: サービス プリンシパルを作成する

Azure Databricks サービス プリンシパルのリソースを定義します。 サービス プリンシパル名は、Azure Databricks アカウント コンソールの [ユーザー管理>サービス プリンシパル] にあります。

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

手順 3: 承認トークンを作成する

アプリケーション ID を使用して、Azure Databricks サービス プリンシパル アカウントの承認トークンを設定します。 サービス プリンシパルのアプリケーション ID は、Azure Databricks アカウント コンソールの [ユーザー管理>サービス プリンシパル] にあります。

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
}

手順 4: Git 資格情報を構成する

サービス プリンシパルが Git リポジトリへのアクセスに使用する 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>"
}

サービス プリンシパルとフェデレーション資格情報を使用した認証

Azure DevOps リポジトリの場合、フェデレーション ID 資格情報を使用して、有効期間の長いシークレットを格納せずに認証できます。 この方法では、Azure DevOps パイプラインによって発行された OIDC トークンを使用して Azure Databricks サービス プリンシパルを使用します。これにより、個人用アクセス トークンが不要になります。

[前提条件]

Azure Databricks Git フォルダーのフェデレーション ID 認証を設定する前に、次のコンポーネントを構成します。

手順 1: 変数を構成する

terraform.tfvars ファイルで次の変数の値を指定します。

  • databricks_host: Azure Databricks ワークスペースの URL (例: https://adb-123417477717.17.azuredatabricks.net
  • entra_client_id: Azure サービス プリンシパルのクライアント ID
  • entra_client_secret: Azure サービス プリンシパルのクライアント シークレット
  • entra_tenant_id: サービス プリンシパルが登録されている Microsoft Entra ID
  • ado_repo_url: Azure DevOps の Git リポジトリの HTTPS URL

手順 2: Azure Databricks プロバイダーを構成する

Terraform 構成で、公式の databricks プロバイダーを使用します。 プロバイダーの認証では、継続的インテグレーション (CI) の環境変数や、セキュリティで保護されたワークステーションから Terraform を実行する場合のサービス プリンシパルなど、組織の標準的な方法を使用できます。

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
}

手順 3: Azure DevOps のフェデレーション Git 資格情報を作成する

この資格情報は、Azure DevOps に Azure Active Directory でサポートされるフェデレーションを使用するように Azure Databricks に指示します。

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

手順 4: Azure DevOps リポジトリで Git フォルダーをポイントする

Azure DevOps リポジトリの URL を使用するように Git フォルダーを作成または更新します。

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