Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Федерация токенов OAuth в Databricks, также известная как OpenID Connect (OIDC), позволяет автоматическим рабочим нагрузкам, работающим за пределами Databricks, безопасно обращаться к Databricks без использования секретов Databricks. См. сведения о проверке подлинности доступа к Azure Databricks с помощью федерации токенов OAuth.
Чтобы включить федерацию удостоверений рабочей нагрузки для GitHub Actions:
После включения федерации удостоверений рабочей нагрузки пакеты SDK Databricks и CLI Databricks автоматически извлекают токены удостоверения рабочей нагрузки из GitHub и обменивают их на токены OAuth Databricks.
Создание политики федерации
Сначала создайте политику федерации идентичности нагрузки. Инструкции см. в разделе "Настройка политики федерации субъекта-службы". Для GitHub задайте следующие значения политики:
-
Организация: Имя организации Github. Например, если URL-репозитория —
https://github.com/databricks-inc/data-platform, то организация —databricks-inc. -
Хранилище: Имя одного репозитория, разрешающего, например
data-platform. -
Тип сущности: Тип сущности GitHub, представленной в утверждении маркера (субъект). Значение по умолчанию — Branch. Databricks рекомендует использовать Environment, который можно включить, задав атрибут
environmentв файле YAML GitHub Actions. См. статью "Развертывание в определенной среде". -
URL-адрес издателя:
https://token.actions.githubusercontent.com - Тема: Строка, сформированная путем объединения значений из контекста задания GitHub Actions.
- Аудитории: Databricks рекомендует задать этот параметр для идентификатора учетной записи Azure Databricks. Если опущено, идентификатор учетной записи используется по умолчанию.
-
Утверждение субъекта: (необязательно) Утверждение JWT, содержащее значение удостоверения рабочей нагрузки (
sub) из токена OIDC. Для GitHub оставьте поле в видеsub, которое кодирует репозиторий, ветвь, тег, запрос на вытягивание или слияние или среду, активировавшие рабочий процесс. Чтобы пройти проверку подлинности в качестве повторно используемого рабочего процесса, а не вызывающего репозитория, см. статью "Проверка подлинности с помощью повторно используемого рабочего процесса".
Например, следующая команда Databricks CLI создает политику федерации для организации с именем my-org и числовым идентификатором субъекта-службы Databricks 5581763342009999:
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://token.actions.githubusercontent.com",
"audiences": [
"a2222dd9-33f6-455z-8888-999fbbd77900"
],
"subject": "repo:my-github-org/my-repo:environment:prod"
}
}'
Настройка YAML-файла GitHub Actions
Затем настройте YAML-файл GitHub Actions. Задайте следующие переменные среды:
-
DATABRICKS_AUTH_TYPE:github-oidc -
DATABRICKS_HOST: URL-адрес рабочей области Databricks -
DATABRICKS_CLIENT_ID: идентификатор учетной записи службы (приложения)
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: workflow_dispatch
permissions:
id-token: write
contents: read
jobs:
my_script_using_wif:
runs-on: ubuntu-latest
environment: prod
env:
DATABRICKS_AUTH_TYPE: github-oidc
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Databricks CLI
uses: databricks/setup-cli@main
- name: Run Databricks CLI commands
run: databricks current-user me
Проверка подлинности с помощью повторно используемого рабочего процесса
По умолчанию sub запрос определяет вызывающий репозиторий. Чтобы выполнить проверку подлинности в качестве повторно используемого рабочего процесса, а не вызовом из репозитория, установите subject_claim на job_workflow_ref в политике федерации. Любая команда может вызвать повторно используемый рабочий процесс, но только повторно используемый рабочий процесс проходит проверку подлинности с помощью Databricks.
Создание политики федерации
Создайте политику федерации, используя ее в job_workflow_ref качестве утверждения субъекта. Задайте subject ссылку на файл рабочих процессов, который можно повторно использовать.
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://token.actions.githubusercontent.com",
"audiences": [
"a2222dd9-33f6-455z-8888-999fbbd77900"
],
"subject": "my-github-org/shared-workflows/.github/workflows/deploy.yml@refs/heads/main",
"subject_claim": "job_workflow_ref"
}
}'
Настройте эти YAML-файлы для GitHub Actions
Создайте повторно используемый рабочий процесс, прошедший проверку подлинности с помощью Azure Databricks, и вызывающий рабочий процесс в любом репозитории, который вызывает его.
В следующем примере показан повторно используемый файл рабочего процесса (.github/workflows/deploy.yml в общем репозитории рабочих процессов):
on:
workflow_call:
jobs:
deploy:
runs-on: ubuntu-latest
env:
DATABRICKS_AUTH_TYPE: github-oidc
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Databricks CLI
uses: databricks/setup-cli@main
- name: Run Databricks CLI commands
run: databricks current-user me
В следующем примере показан процесс вызова в любом репозитории, использующем переработанный рабочий процесс.
on: workflow_dispatch
permissions:
id-token: write
contents: read
jobs:
call-deploy:
uses: my-github-org/shared-workflows/.github/workflows/deploy.yml@main
Note
Задайте permissions: id-token: write для вызывающего рабочего процесса, а не для повторно используемого рабочего процесса. GitHub включает только утверждение job_workflow_ref в маркере OIDC, если id-token: write предоставляется в рабочем процессе вызова.