Sdílet prostřednictvím


Povolení federace identit úloh pro GitHub Actions

Federace tokenů OAuth Databricks, označovaná také jako OpenID Connect (OIDC), umožňuje automatizovaným úlohám spuštěným mimo Databricks zabezpečený přístup k Databricks bez nutnosti tajných kódů Databricks. Viz Ověřování přístupu k Azure Databricks pomocí federace tokenů OAuth.

Pro umožnění federace pracovních identit pro GitHub Actions:

  1. Vytvořit politiku federace
  2. Konfigurace souboru YAML gitHub Actions

Jakmile povolíte federaci identit úloh, sady SDK Databricks a rozhraní příkazového řádku Databricks automaticky načítají tokeny identity úloh z GitHubu a vyměňují je za tokeny OAuth Databricks.

Vytvořit zásady federace

Nejprve vytvořte zásady federace identit úloh. Pokyny najdete v tématu Konfigurace zásad federace instančního objektu. Pro GitHub nastavte pro zásadu následující hodnoty:

  • Organizace: Název vaší organizace na GitHubu Pokud je adresa URL https://github.com/databricks-inc/data-platformvašeho úložiště například , pak je databricks-incorganizace .
  • Skladiště: Název jednoho úložiště, které se má povolit, například data-platform.
  • Typ entity: Druh entity GitHubu reprezentovaný v sub deklaraci (předmětu) vašeho tokenu. Výchozí hodnota je Branch. Databricks doporučuje používat prostředí, které můžete povolit nastavením atributu environment v souboru YAML GitHub Actions. Viz Nasazení do konkrétního prostředí.
  • Adresa URL vystavitele:https://token.actions.githubusercontent.com
  • Předmět: Řetězec vytvořený zřetězením hodnot z kontextu úlohy GitHub Actions
  • Publika: Databricks doporučuje toto nastavení na ID vašeho účtu Azure Databricks. Pokud ho vynecháte, použije se ve výchozím nastavení ID účtu.
  • Deklarace identity subjektu: (Volitelné) Deklarace identity JWT, která obsahuje hodnotu identity (sub) úlohy z tokenu OIDC. U GitHubu ponechte pole jako sub, které kóduje úložiště, větev, značku, žádost o přijetí změn nebo sloučení nebo prostředí, které aktivovalo pracovní postup.

Například následující příkaz rozhraní příkazového řádku Databricks vytvoří zásadu federace pro organizaci s názvem my-org a id instančního 5581763342009999objektu Databricks:

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"
  }
}'

Konfigurujte soubor YAML GitHub Actions

Dále nakonfigurujte soubor YAML GitHub Actions. Nastavte následující proměnné prostředí:

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: Adresa URL pracovního prostoru Databricks
  • DATABRICKS_CLIENT_ID: ID instančního objektu (aplikace)
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