Bagikan melalui


Mengaktifkan federasi identitas beban kerja untuk GitHub Actions

Federasi token OAuth Databricks, juga dikenal sebagai OpenID Connect (OIDC), memungkinkan beban kerja otomatis Anda yang berjalan di luar Databricks untuk mengakses Databricks dengan aman tanpa perlu rahasia Databricks. Lihat Mengautentikasi akses ke Azure Databricks menggunakan federasi token OAuth.

Untuk mengaktifkan federasi identitas beban kerja untuk GitHub Actions:

  1. Membuat kebijakan federasi
  2. Konfigurasikan file YAML GitHub Actions

Setelah Anda mengaktifkan federasi identitas beban kerja, Databricks SDK dan Databricks CLI secara otomatis mengambil token identitas beban kerja dari GitHub dan menukarnya dengan token OAuth Databricks.

Membuat kebijakan federasi

Pertama, buat kebijakan federasi identitas beban kerja. Untuk petunjuknya, lihat Mengonfigurasi kebijakan federasi perwakilan layanan. Untuk GitHub, atur nilai berikut untuk kebijakan:

  • Organisasi: Nama organisasi Github Anda. Misalnya, jika URL repositori Anda adalah https://github.com/databricks-inc/data-platform, maka organisasinya adalah databricks-inc.
  • Repositori: Nama repositori tunggal yang diizinkan, seperti data-platform.
  • Jenis entitas: Jenis entitas GitHub yang diwakili dalam sub klaim (subjek) token Anda. Defaultnya adalah Cabang. Databricks merekomendasikan penggunaan Environment, yang dapat Anda aktifkan dengan mengatur environment atribut dalam file YAML GitHub Actions Anda. Lihat Menyebarkan ke lingkungan tertentu.
  • URL Pengeluar Sertifikat:https://token.actions.githubusercontent.com
  • Subyek: String yang dibentuk dengan menggabungkan nilai dari konteks pekerjaan GitHub Actions.
  • Khalayak: Databricks merekomendasikan untuk mengatur ini ke ID akun Azure Databricks Anda. Jika dihilangkan, ID akun digunakan secara default.
  • Klaim subjek: (Opsional) Klaim JWT yang berisi nilai identitas beban kerja (sub) dari token OIDC. Untuk GitHub, biarkan bidang sebagai sub, yang mengodekan repositori, cabang, tag, permintaan pull/merge, atau lingkungan yang memicu alur kerja.

Misalnya, perintah Databricks CLI berikut membuat kebijakan federasi untuk organisasi bernama my-org dan ID numerik perwakilan layanan Databricks dari 5581763342009999:

databricks account service-principal-federation-policy create 5581763342009999 --json '{
  "oidc_policy": {
	"issuer": "https://token.actions.githubusercontent.com",
	"audiences": [
  	  "a2222dd9-33f6-455z-8888-999fbbd77900"
	],
	"subject": "repo:my-github-org/my-repo:environment:prod"
  }
}'

File YAML GitHub Actions dikonfigurasi

Selanjutnya, konfigurasikan file YAML GitHub Actions. Atur variabel lingkungan berikut:

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: URL ruang kerja Databricks Anda
  • DATABRICKS_CLIENT_ID: ID perwakilan layanan (aplikasi)
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