다음을 통해 공유

为 Terraform Cloud、Bitbucket Pipelines 或 Jenkins 启用工作负荷身份联合

Databricks OAuth 令牌联合(也称为 OpenID Connect(OIDC))允许在 Databricks 外部运行的自动化工作负荷以安全的方式访问 Databricks,而无需 Databricks 密钥。 请参阅使用 OAuth 令牌联合身份验证对 Azure Databricks 进行身份验证。

若要为 Terraform Cloud、Atlassian Bitbucket Pipelines 或 Jenkins 启用工作负荷标识联合:

  1. 创建联合策略

  2. 配置身份提供者

启用工作负荷标识联合后,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