다음을 통해 공유


Terraform을 사용하여 Azure Databricks Git 폴더 관리

Terraform 및 databricks_repoTerraform 리소스를 사용하여 완전히 자동화된 환경에서 Azure Databricks Git 폴더를 관리할 수 있습니다.

이 항목에서는 다음 두 가지 인증 방법을 다룹니다.

  • PAT(개인 액세스 토큰) 인증: 리포지토리 액세스에 Git 개인용 액세스 토큰 사용
  • 페더레이션된 자격 증명을 사용하는 서비스 주체: Azure DevOps 리포지토리에 대한 안전하고 토큰 없는 인증을 위해 OIDC(OpenID Connect) 토큰과 함께 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 서비스 주체 계정에 대한 권한 부여 토큰을 설정합니다. 사용자 관리> 서비스 주체 아래의 Azure Databricks 계정 콘솔에서서비스 주체의 애플리케이션 ID를 찾을 수 있습니다.

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 공급자를 사용합니다. 공급자에 대한 인증은 보안 워크스테이션에서 Terraform을 실행할 때 CI(연속 통합)의 환경 변수 또는 서비스 주체와 같은 조직의 표준 방법을 사용할 수 있습니다.

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 Databricks에 Azure DevOps에 대한 Azure Active Directory 지원 페더레이션을 사용하도록 지시합니다.

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]
}