Databricks OAuth 令牌联合(也称为 OpenID Connect(OIDC))允许在 Databricks 外部运行的自动化工作负荷以安全的方式访问 Databricks,而无需 Databricks 密钥。 请参阅使用 OAuth 令牌联合身份验证对 Azure Databricks 进行身份验证。
若要为 Terraform Cloud、Atlassian Bitbucket Pipelines 或 Jenkins 启用工作负荷标识联合:
启用工作负荷标识联合后,Databricks SDK 和 Databricks CLI 会自动从标识提供者提取工作负荷标识令牌,并将其交换为 Databricks OAuth 令牌。
创建联合策略
首先,创建自定义工作负荷标识联合策略。 有关说明,请参阅 配置服务主体联合策略。 需要设置以下值:
- 颁发者 URL: 通常提供程序的令牌 URL
- 观众: 通常为组织标识符
- 主题: 通常,一个指定作业或项目上下文的值
例如,以下 Databricks CLI 命令为 GitHub URL https://gitlab.com/example-group
和 Databricks 服务主体数字 ID 5581763342009999
创建联合策略:
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:..."
}
}'
配置标识提供者
接下来,在标识提供者配置中,将 Databricks OIDC 令牌环境变量设置为提供程序的默认标识 OIDC 令牌环境变量。
Jenkins
若要为 Jenkins 启用工作负载身份联合,请在DATABRICKS_OIDC_TOKEN
中设置令牌。 或者,在文件中设置令牌,并将 DATABRICKS_OIDC_TOKEN_FILEPATH
设置为指向该文件。
Terraform Cloud(云平台)
若要为 Terraform Cloud 启用工作负荷身份联合,请设置环境变量,以指示 Databricks SDK 在 DATABRICKS_OIDC_TOKEN_ENV
中搜索令牌。
DATABRICKS_OIDC_TOKEN_ENV = TFC_WORKLOAD_IDENTITY_TOKEN
Atlassian Bitbucket 流水线
若要为 Bitbucket Pipelines 启用工作负荷身份联合,请设置 DATABRICKS_OIDC_TOKEN_ENV
环境变量来指示 Databricks SDK 在 BITBUCKET_STEP_OIDC_TOKEN
中搜索令牌。
image: atlassian/default-image
pipelines:
default:
- step:
oidc: true
script:
- export DATABRICKS_CLIENT_ID=a1b2c3d4-ee42-1eet-1337-f00b44r
- export DATABRICKS_HOST=https://my-workspace.cloud.databricks.com/
- export DATABRICKS_OIDC_TOKEN_ENV=BITBUCKET_STEP_OIDC_TOKEN
- export DATABRICKS_AUTH_TYPE=env-oidc
- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
- databricks --version
- databricks current-user me