メインコンテンツまでスキップ

GitHub Actions のワークロード ID フェデレーションを有効にする

備考

プレビュー

Databricks OAuth トークン フェデレーションは パブリック プレビュー段階です。

Databricks OAuth トークン フェデレーション (OpenID Connect (OIDC) とも呼ばれます) を使用すると、Databricks の外部で実行されている自動化されたワークロードで、Databricks シークレットを必要とせずに Databricks に安全にアクセスできます。「OAuth トークン フェデレーションを使用して Databricks へのアクセスを認証する」を参照してください。

GitHub Actions のワークロード ID フェデレーションを有効にするには、次のようにします。

  1. フェデレーション ポリシーを作成する
  2. GitHub Actions YAML ファイルを構成する

ワークロード ID フェデレーションを有効にすると、Databricks SDK と Databricks CLI は GitHub からワークロード ID トークンを自動的にフェッチし、Databricks OAuth トークンと交換します。

フェデレーション ポリシーを作成する

まず、Databricks CLI を使用して、 ワークロード ID フェデレーション ポリシーを作成します。GitHub の場合は、ポリシーに次の値を設定します。

  • issuer: https://token.actions.githubusercontent.com
  • audiences: リポジトリの URL。または、このフィールドを省略して、代わりに Databricks アカウント ID を使用することもできます。
  • subject: GitHub Actions ジョブ コンテキストから取得した値を連結したものです
注記

GitHub Actionsの件名の一貫性を確保するために、Databricks では環境を指定することをお勧めします。デプロイメントのための環境の使用および特定の環境のフィルタリングを参照してください。

たとえば、my-orgという名前の GitHub 組織に属する my-repo という名前の GitHub リポジトリがあり、Databricks サービスプリンシパルの数値 ID が 5581763342009999の場合、次の Databricks CLI コマンドを使用してフェデレーション ポリシーを作成します。

Bash
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://token.actions.githubusercontent.com",
"audiences": [
"https://github.com/my-org"
],
"subject": "repo:my-github-org/my-repo:environment:prod"
}
}'

GitHub Actions YAML ファイルを構成する

次に、GitHub Actions YAML ファイルを構成します。次の環境変数を設定します。

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: Databricks ワークスペースの URL
  • DATABRICKS_CLIENT_ID: サービスプリンシパル (application) ID
YAML
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: workflow_dispatch

permissions:
id-token: write
contents: read

jobs:
my_script_using_wif:
runs-on: ubuntu-latest
environment: prod
env:
DATABRICKS_AUTH_TYPE: github-oidc
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Databricks CLI
uses: databricks/setup-cli@main

- name: Run Databricks CLI commands
run: databricks current-user me