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 認証を設定する前に、次のコンポーネントを構成します。
- Azure Databricks ワークスペースと Azure DevOps 組織の Azure サービス プリンシパル。 Azure DevOps でのサービス プリンシパルとマネージド ID の使用に関するページを参照してください。
- サービス プリンシパルのフェデレーションクレデンシャルを設定するためのアクセス許可。 外部 ID プロバイダーを信頼するようにアプリを構成するを参照してください。
- Azure DevOps 組織の Git リポジトリ。リポジトリへのアクセス許可が付与されています。
- OIDC トークンを要求できる Azure DevOps パイプライン。
手順 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]
}