重要
Databricks OAuth 令牌联合身份验证处于 公共预览版。
Databricks OAuth 令牌联合(也称为 OpenID Connect(OIDC))允许在 Databricks 外部运行的自动化工作负荷以安全的方式访问 Databricks,而无需 Databricks 密钥。 请参阅使用 OAuth 令牌联合身份验证对 Azure Databricks 进行身份验证。
若要为 GitLab CI/CD 启用负载身份联合:
启用工作负荷标识联合后,Databricks SDK 和 Databricks CLI 会自动从 GitLab CI/CD 提取工作负载标识令牌,并将其交换为 Databricks OAuth 令牌。
创建联合策略
首先,使用 Databricks CLI 创建 工作负荷标识联合策略。 对于 GitLab CI/CD,请设置以下值:
-
issuer
:GitLab 组织的网址 -
audiences
:GitLab 的组织 URL -
subject
:从作业上下文中获取的值的串联
例如,给定一个 GitLab URLhttps://gitlab.com/example-group
和一个 Databricks 服务主体数字 ID5581763342009999
,请使用以下 Databricks CLI 命令创建联合策略:
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://gitlab.com/example-group",
"audiences": [
"https://gitlab.com/example-group"
],
"subject": "project_path:my-group/my-project:..."
}
}'
配置 GitLab YAML 文件
接下来,修改 GitLab 配置文件。 除了设置以下工作区环境变量,请将令牌存储在 Databricks 环境变量中 DATABRICKS_OIDC_TOKEN
。 或者,使用自定义环境变量并设置 DATABRICKS_OIDC_TOKEN_ENV
。
-
DATABRICKS_AUTH_TYPE
:env-oidc
-
DATABRICKS_HOST
:你的 Databricks 工作区网址 -
DATABRICKS_CLIENT_ID
:服务主体(应用程序)ID
stages:
- my_script_using_wif
variables:
DATABRICKS_AUTH_TYPE: env-oidc
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r
my_script_using_wif:
id_tokens:
DATABRICKS_OIDC_TOKEN:
aud: https://gitlab.com/example-group
stage: explore
image: ubuntu:latest
before_script:
- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
script:
- databricks current-user me