CircleCI のワークロード ID フェデレーションを有効にする
プレビュー
Databricks OAuth トークン フェデレーションは パブリック プレビュー段階です。
Databricks OAuth トークン フェデレーション (OpenID Connect (OIDC) とも呼ばれます) を使用すると、Databricks の外部で実行されている自動化されたワークロードで、Databricks シークレットを必要とせずに Databricks に安全にアクセスできます。「OAuth トークン フェデレーションを使用して Databricks へのアクセスを認証する」を参照してください。
CircleCI のワークロード ID フェデレーションを有効にするには、以下の手順を実行します。
ワークロード ID のフェデレーションを有効にすると、Databricks SDK と Databricks CLI は CircleCI からワークロード ID トークンを自動的にフェッチし、Databricks OAuth トークンと交換します。
フェデレーション ポリシーを作成する
まず、Databricks CLI を使用して、 ワークロード ID フェデレーション ポリシーを作成します。CircleCI の場合は、ポリシーに次の値を設定します。
issuer
:https://oidc.circleci.com/org/<org_id>
(<org-id>
は組織 ID に置き換えられます)audiences
: お客様の CircleCI 組織 IDsubject
: CircleCI プロジェクト IDsubject_claim
:oidc.circleci.com/project-id
たとえば、組織 ID が 1234
で、プロジェクト ID が 5678
で、Databricks サービスプリンシパルの数値 ID が 5581763342009999
の場合、次の Databricks CLI コマンドを使用してフェデレーション ポリシーを作成します。
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 config.yml
ファイルで DATABRICKS_OIDC_TOKEN_ENV
を設定して、Databricks SDK または CLI に CIRCLE_OIDC_TOKEN_V2
でトークンを検索するように指示します。(古い CIRCLE_OIDC_TOKEN
環境変数を使用することもできます。
DATABRICKS_AUTH_TYPE
:env-oidc
DATABRICKS_HOST
: Databricks ワークスペースの URLDATABRICKS_CLIENT_ID
: サービスプリンシパル (application) 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