Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Федерация токенов OAuth Databricks, также известная как OpenID Connect (OIDC), позволяет автоматизированным рабочим процессам, выполняющимся за пределами Databricks, безопасно обращаться к Databricks без необходимости хранения секретов Databricks. См. сведения о проверке подлинности доступа к Azure Databricks с помощью федерации токенов OAuth.
Чтобы включить федерацию идентичности рабочей нагрузки для GitLab CI/CD:
После включения федерации удостоверений рабочей нагрузки SDK Databricks и интерфейс командной строки Databricks автоматически извлекают токены идентификации рабочей нагрузки из GitLab CI/CD и обменивают их на токены OAuth Databricks.
Создание политики федерации
Сначала создайте политику федерации удостоверений рабочей нагрузки. Инструкции см. в разделе "Настройка политики федерации субъекта-службы". Для GitLab CI/CD задайте следующие значения:
-
Группа: Имя группы GitLab. Например, если URL-адрес проекта имеется
https://gitlab.com/databricks-inc/data-platform, то группа .databricks-inc -
Проект: Имя одного проекта GitLab, который требуется разрешить, например
data-platform. -
Тип ссылки: Тип ссылки на Git, представленный в
subутверждении (субъект) маркера. Это может быть запрос Branch, Tag или Merge. - URL-адрес издателя: URL-адрес экземпляра GitLab, который выдает маркер OIDC.
- Тема: Объединение значений, взятых из контекста задания.
-
Аудитории: Ожидаемое
audзначение в токене OIDC. Настройте это в блокеid_tokens:задания. Databricks рекомендует задать его для идентификатора учетной записи Azure Databricks. -
Утверждение субъекта: (необязательно) Утверждение JWT, содержащее значение удостоверения рабочей нагрузки (
sub) из токена OIDC. Для GitLab оставьте поле какsubкодирование проекта, ветви, тега или запроса слияния, активировавшего конвейер.
Например, следующая команда Cli Databricks создает политику федерации для числового идентификатора 5581763342009999субъекта-службы Databricks:
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://gitlab.com/example-group",
"audiences": [
"a2222dd9-33f6-455z-8888-999fbbd77900"
],
"subject": "project_path:my-group/my-project:..."
}
}'
Настройка GitLab YAML-файла
Затем измените файл конфигурации GitLab. Перейдите <databricks-account-id> к идентификатору учетной записи Azure Databricks.
Помимо настройки следующих переменных среды рабочей области, сохраните маркер в переменной DATABRICKS_OIDC_TOKEN среды Azure Databricks. Кроме того, используйте пользовательскую переменную среды и задайте значение DATABRICKS_OIDC_TOKEN_ENV.
-
DATABRICKS_AUTH_TYPE:env-oidc -
DATABRICKS_HOST: URL-адрес рабочей области Databricks -
DATABRICKS_CLIENT_ID: идентификатор субъекта-службы (приложения)
spec:
inputs:
# Specify your Databricks account ID, workspace hostname, and service principal OAuth client ID.
databricks-account-id:
databricks-host:
databricks-client-id:
# See https://docs.gitlab.com/ci/inputs/#define-input-parameters-with-specinputs for more on pipeline input variables.
---
stages:
- my_script_using_wif
variables:
DATABRICKS_AUTH_TYPE: env-oidc
DATABRICKS_HOST: $[[ inputs.databricks-host ]]
DATABRICKS_CLIENT_ID: $[[ inputs.databricks-client-id ]]
my_script_using_wif:
id_tokens:
DATABRICKS_OIDC_TOKEN:
aud: $[[ inputs.databricks-account-id ]]
stage: my_script_using_wif
image: ubuntu:latest
before_script:
- apt-get update -y
- apt-get install -y curl unzip
- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
script:
- databricks current-user me