Databricks OAuth トークン フェデレーション (OpenID Connect (OIDC) とも呼ばれます) を使用すると、Databricks の外部で実行されている自動化されたワークロードは、Databricks シークレットを必要とせずに Databricks に安全にアクセスできます。 OAuth トークン フェデレーションを使用した Azure Databricks へのアクセスの認証に関するページを参照してください。
Terraform Cloud、Atlassian Bitbucket Pipelines、または Jenkins のワークロード ID フェデレーションを有効にするには:
ワークロード ID フェデレーションを有効にすると、Databricks SDK と Databricks CLI によって、ID プロバイダーからワークロード ID トークンが自動的にフェッチされ、Databricks OAuth トークンと交換されます。
フェデレーション ポリシーを作成する
まず、カスタム ワークロード ID フェデレーション ポリシーを作成します。 手順については、「 サービス プリンシパルのフェデレーション ポリシーを構成する」を参照してください。 次の値を設定する必要があります。
- 発行者 URL: 通常、プロバイダーのトークン URL
- 観客: 通常、組織識別子
- 件名: 通常、ジョブまたはプロジェクトのコンテキストを指定する値
たとえば、次の Databricks CLI コマンドは、GitHub URL https://gitlab.com/example-group のフェデレーション ポリシーと、 5581763342009999の Databricks サービス プリンシパルの数値 ID を作成します。
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:..."
}
}'
ID プロバイダーを構成する
次に、ID プロバイダーの構成で、Databricks OIDC トークン環境変数をプロバイダーの既定の ID OIDC トークン環境変数に設定します。
Jenkins
Jenkins のワークロード ID フェデレーションを有効にするには、 DATABRICKS_OIDC_TOKENでトークンを設定します。 または、ファイル内のトークンを設定し、そのファイルを指すように DATABRICKS_OIDC_TOKEN_FILEPATH を設定します。
Terraform Cloud
Terraform Cloud のワークロード ID フェデレーションを有効にするには、 DATABRICKS_OIDC_TOKEN_ENV 環境変数を設定して、 TFC_WORKLOAD_IDENTITY_TOKENでトークンを検索するように Databricks SDK に指示します。
DATABRICKS_OIDC_TOKEN_ENV = TFC_WORKLOAD_IDENTITY_TOKEN
Atlassian Bitbucket Pipelines
Bitbucket Pipelines のワークロード ID フェデレーションを有効にするには、 DATABRICKS_OIDC_TOKEN_ENV 環境変数を設定して、 BITBUCKET_STEP_OIDC_TOKENでトークンを検索するように Databricks SDK に指示します。
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