重要
Databricks OAuth 令牌联合身份验证处于 公共预览版。
Databricks OAuth 令牌联合(也称为 OpenID Connect(OIDC))允许在 Databricks 外部运行的自动化工作负荷以安全的方式访问 Databricks,而无需 Databricks 密钥。 请参阅使用 OAuth 令牌联合身份验证对 Azure Databricks 进行身份验证。
若要为 GitHub Actions 启用工作负荷标识联合身份验证,请执行以下操作:
启用工作负荷标识联合后,Databricks SDK 和 Databricks CLI 会自动从 GitHub 提取工作负载标识令牌,并将其交换为 Databricks OAuth 令牌。
创建联合策略
首先,使用 Databricks CLI 创建 工作负荷标识联合策略。 对于 GitHub,请为策略设置以下值:
-
issuer
:https://token.actions.githubusercontent.com
-
audiences
:存储库 URL。 或者可以省略此字段,而是使用 Databricks 帐户 ID。 -
subject
:从 GitHub Actions 作业上下文中获取的值的串联
例如,给定一个名为 my-repo
属于名为 my-org
GitHub 组织的 GitHub 存储库,其 Databricks 服务主体数字 ID 为 5581763342009999
,请使用以下 Databricks CLI 命令创建联合策略:
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://token.actions.githubusercontent.com",
"audiences": [
"https://github.com/my-org"
],
"subject": "repo:my-github-org/my-repo:environment:prod"
}
}'
配置 GitHub Actions YAML 文件
接下来,配置 GitHub Actions YAML 文件。 设置以下环境变量:
-
DATABRICKS_AUTH_TYPE
:github-oidc
-
DATABRICKS_HOST
:你的 Databricks 工作区网址 -
DATABRICKS_CLIENT_ID
:服务主体(应用程序)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