Databricks OAuth トークン フェデレーション (OpenID Connect (OIDC) とも呼ばれます) を使用すると、Databricks の外部で実行されている自動化されたワークロードは、Databricks シークレットを必要とせずに Databricks に安全にアクセスできます。 OAuth トークン フェデレーションを使用した Azure Databricks へのアクセスの認証に関するページを参照してください。
CircleCI のワークロード ID フェデレーションを有効にするには:
ワークロード ID フェデレーションを有効にすると、Databricks SDK と Databricks CLI によって、CircleCI からワークロード ID トークンが自動的にフェッチされ、Databricks OAuth トークンと交換されます。
フェデレーション ポリシーを作成する
まず、カスタム ワークロード ID フェデレーション ポリシーを作成します。 手順については、「 サービス プリンシパルのフェデレーション ポリシーを構成する」を参照してください。 CircleCI の場合は、ポリシーに次の値を設定します。
-
発行者 URL:
https://oidc.circleci.com/org/<org_id>。<org-id>は組織 ID です - 対象者: CircleCI 組織 ID
- 件名: CircleCI プロジェクト ID
-
サブジェクト要求:
oidc.circleci.com/project-id
たとえば、次の Databricks CLI コマンドは、組織 ID 1234 のフェデレーション ポリシーと、 5581763342009999の Databricks サービス プリンシパルの数値 ID を作成します。
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://oidc.circleci.com/org/1234",
"audiences": [
"1234"
],
"subject": "5678",
"subject_claim": "oidc.circleci.com/project-id"
}
}'
CircleCI YAML の構成
次に、CircleCI 構成ファイルを変更します。 次の変数に加えて、CircleCI DATABRICKS_OIDC_TOKEN_ENV ファイルにconfig.ymlを設定して、databricks SDK または CLI にCIRCLE_OIDC_TOKEN_V2でトークンを検索するように指示します。 (以前の CIRCLE_OIDC_TOKEN 環境変数を使用することもできます)。
-
DATABRICKS_AUTH_TYPE:env-oidc -
DATABRICKS_HOST: Databricks ワークスペースの URL -
DATABRICKS_CLIENT_ID: サービス プリンシパル (アプリケーション) ID
version: 2.1
jobs:
build:
docker:
- image: cimg/base:current
environment:
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r
DATABRICKS_OIDC_TOKEN_ENV: CIRCLE_OIDC_TOKEN
DATABRICKS_AUTH_TYPE: env-oidc
steps:
- checkout
- run:
name: Install Databricks CLI
command: |
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sudo sh
databricks --version
- run:
name: Run Databricks CLI commands
command: databricks current-user me