Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Управление папками Azure Databricks Git в полностью автоматизированной среде с помощью Terraform и поставщика Databricks Terraform.
В этом разделе рассматриваются два подхода к проверке подлинности:
- Проверка подлинности личного маркера доступа (PAT): Использует Личные маркеры доступа Git для доступа к репозиторию
- Служебный принципал с федеративными учетными данными: Использует служебные принципалы Azure с токенами OpenID Connect (OIDC) для безопасной аутентификации без использования токенов в репозиториях Azure DevOps.
Проверка подлинности с помощью личных токенов доступа
Этот подход использует персональные токены доступа Git для аутентификации репозитория с сервисным принципалом.
Terraform оценивает конфигурации провайдера перед созданием любых ресурсов, поэтому вы не можете ссылаться на значение ресурса, например токен от имени (OBO), в блоке провайдера в той же конфигурации Terraform. Чтобы обойти это ограничение, разбейте настройку на две отдельные конфигурации.
- Часть 1. Создание субъекта-службы: создает субъект-службу и создает маркер OBO.
- Часть 2. Настройка учетных данных Git. Использует маркер OBO для проверки подлинности в качестве субъекта-службы, а затем настраивает учетные данные Git и создает папку Git.
Часть 1. Создание субъекта-службы
setup/ Создайте каталог с файломmain.tf.
Шаг 1. Объявление поставщика и переменных
terraform {
required_providers {
databricks = {
source = "databricks/databricks"
}
}
}
variable "databricks_host" {}
variable "databricks_admin_token" {
sensitive = true
}
variable "service_principal_name" {}
provider "databricks" {
host = var.databricks_host
token = var.databricks_admin_token
}
Шаг 2. Создание субъекта-службы
Выберите отображаемое имя субъекта-службы. Terraform создаёт объект с этим именем.
resource "databricks_service_principal" "sp" {
display_name = var.service_principal_name
}
Шаг 3. Создание и экспорт маркера авторизации
Создайте токен OBO для пользователя службы и экспортируйте его для использования в следующей конфигурации.
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
}
output "obo_token_value" {
value = databricks_obo_token.this.token_value
sensitive = true
}
Шаг 4. Применение конфигурации
Из каталога setup/ инициализируйте, примените и получите токен:
terraform init
terraform apply
terraform output -raw obo_token_value
Шаг 5. Подготовка переменных для части 2
Создайте файл в каталоге terraform.tfvarsgit-credentials/ с маркером OBO и другими необходимыми значениями:
databricks_host = "https://<your-workspace>.cloud.databricks.com"
obo_token_value = "<token from previous step>"
git_username = "<your-git-username>"
git_provider = "<gitHub|gitLab|azureDevOpsServices|...>"
git_personal_access_token = "<your-git-PAT>"
repo_url = "https://github.com/<your-org>/<your-repo>.git"
Note
Добавьте terraform.tfvars в .gitignore файл, чтобы избежать фиксации конфиденциальных значений в элементе управления версиями. Terraform автоматически считывает этот файл при запуске terraform apply.
Часть 2. Настройка учетных данных Git
Создайте отдельный git-credentials/ каталог с собственным main.tf файлом.
Шаг 1. Объявление поставщика и переменных
Передайте маркер OBO из выходных setup/ данных конфигурации как obo_token_value чтобы пройти проверку подлинности в качестве учетной записи службы.
terraform {
required_providers {
databricks = {
source = "databricks/databricks"
}
}
}
variable "databricks_host" {}
variable "obo_token_value" {
sensitive = true
}
variable "git_username" {}
variable "git_provider" {}
variable "git_personal_access_token" {
sensitive = true
}
variable "repo_url" {}
provider "databricks" {
alias = "sp"
host = var.databricks_host
token = var.obo_token_value
}
Шаг 2. Настройка учетных данных Git
Задайте учетные данные Git, которые субъект-служба будет использовать для доступа к репозиторию Git.
resource "databricks_git_credential" "sp" {
provider = databricks.sp
git_username = var.git_username
git_provider = var.git_provider
personal_access_token = var.git_personal_access_token
}
Шаг 3. Создание папки Git
resource "databricks_repo" "this" {
provider = databricks.sp
url = var.repo_url
depends_on = [databricks_git_credential.sp]
}
Шаг 4. Применение конфигурации учетных данных Git
Из каталога git-credentials/ выполните инициализацию и применение.
terraform init
terraform apply
Аутентификация с помощью служебного принципала и федеративных учетных записей
Федеративные учетные данные для репозиториев Azure DevOps позволяют проходить проверку подлинности без хранения долго хранимых секретов. Этот подход использует служебный принципал с токеном OIDC, выданным конвейерами Azure DevOps, что устраняет необходимость в личных токенах доступа.
Предпосылки
Перед настройкой федеративной идентификации для папок Git Azure Databricks настройте следующие компоненты:
- Сервисный принципал Azure в вашей рабочей области Azure Databricks и организации Azure DevOps. См. Использование сервисных принципалов и управляемых удостоверений в Azure DevOps.
- Разрешение на настройку федеративных учетных данных для субъекта-службы. См. раздел "Настройка приложения для доверия к внешнему поставщику удостоверений".
- Репозиторий Git в организации Azure DevOps с разрешениями, предоставленными для доступа к репозиторию.
- Конвейер Azure DevOps, который может запросить токен OIDC.
Шаг 1. Настройка переменных
Укажите значения для следующих переменных в terraform.tfvars файле:
-
databricks_host: URL-адрес рабочей области Azure Databricks, напримерhttps://adb-123417477717.17.azuredatabricks.net -
entra_client_id: идентификатор клиента субъекта-службы Azure -
entra_client_secret: секрет клиента для субъекта-службы Azure -
entra_tenant_id: идентификатор Microsoft Entra, в котором зарегистрирован субъект-служба -
ado_repo_url: URL-адрес HTTPS репозитория Git в Azure DevOps
Step 2. Настройка поставщика Azure Databricks
В конфигурации Terraform используйте официальный databricks провайдер. Проверка подлинности для поставщика может использовать стандартный метод вашей организации, например переменные среды в непрерывной интеграции (CI) или субъект-службу при запуске Terraform с безопасной рабочей станции.
terraform {
required_providers {
databricks = {
source = "databricks/databricks"
}
}
}
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
}
Step 3. Создание федеративных учетных данных Git для Azure DevOps
Эти учетные данные доступа указывают Azure Databricks использовать федерацию, поддерживаемую Microsoft Entra ID, для Azure DevOps.
resource "databricks_git_credential" "sp_ado" {
git_provider = "azureDevOpsServicesAad"
is_default_for_provider = true
}
Step 4. Укажите папку Git в репозитории Azure DevOps
Создайте или обновите папку Git, чтобы использовать URL-адрес репозитория Azure DevOps.
resource "databricks_repo" "this" {
url = var.ado_repo_url
depends_on = [databricks_git_credential.sp_ado]
}