GitLab CI/CD のワークロード ID フェデレーションを有効にする
プレビュー
Databricks OAuth トークン フェデレーションは パブリック プレビュー段階です。
Databricks OAuth トークン フェデレーション (OpenID Connect (OIDC) とも呼ばれます) を使用すると、Databricks の外部で実行されている自動化されたワークロードで、Databricks シークレットを必要とせずに Databricks に安全にアクセスできます。「OAuth トークン フェデレーションを使用して Databricks へのアクセスを認証する」を参照してください。
GitLab CI/CD のワークロード ID フェデレーションを有効にするには:
ワークロード ID フェデレーションを有効にすると、Databricks SDK と Databricks CLI は GitLab CI/CD からワークロード ID トークンを自動的にフェッチし、それらを Databricks OAuth トークンと交換します。
フェデレーション ポリシーを作成する
まず、Databricks CLI を使用して、 ワークロード ID フェデレーション ポリシーを作成します。GitLab CI/CD の場合は、次の値を設定します。
issuer
: GitLab組織のURLaudiences
: GitLabの組織URLsubject
: ジョブコンテキストから取得した値の連結
たとえば、GitLabのURLが https://gitlab.com/example-group
、Databricks サービスプリンシパルの数値 ID が 5581763342009999
の場合、以下のDatabricks CLIコマンドを用いて、フェデレーションポリシーを作成します。
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:..."
}
}'
GitLab YAML ファイルを構成する
次に、GitLab設定ファイルを変更します。以下のワークスペース 環境変数を設定するほか、
トークンを DATABRICKS_OIDC_TOKEN
Databricks 環境変数に格納します。 または、カスタム環境変数を使用して DATABRICKS_OIDC_TOKEN_ENV
.
DATABRICKS_AUTH_TYPE
:env-oidc
DATABRICKS_HOST
: Databricks ワークスペースの URLDATABRICKS_CLIENT_ID
: サービスプリンシパル (application) ID
stages:
- my_script_using_wif
variables:
DATABRICKS_AUTH_TYPE: env-oidc
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r
my_script_using_wif:
id_tokens:
DATABRICKS_OIDC_TOKEN:
aud: https://gitlab.com/example-group
stage: explore
image: ubuntu:latest
before_script:
- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
script:
- databricks current-user me