Dela via


Aktivera arbetsbelastnings-identitetsfederering för GitHub Actions

Databricks OAuth-tokenfederation, även kallat OpenID Connect (OIDC), gör att dina automatiserade arbetsbelastningar som körs utanför Databricks på ett säkert sätt kan komma åt Databricks utan att databricks-hemligheter behövs. Se Autentisera åtkomst till Azure Databricks med hjälp av OAuth-tokenfederation.

Så här aktiverar du arbetsbelastningsidentitetsfederation för GitHub Actions:

  1. Skapa en federationsprincip
  2. Konfigurera YAML-filen för GitHub Actions

När du har aktiverat arbetsbelastningsidentitetsfederation hämtar Databricks SDK:er och Databricks CLI automatiskt arbetsbelastningsidentitetstoken från GitHub och utbyter dem mot Databricks OAuth-token.

Skapa en federationsprincip

Skapa först en princip för arbetsbelastningsidentitetsfederation. Anvisningar finns i Konfigurera en federationsprincip för tjänstens huvudnamn. För GitHub anger du följande värden för principen:

  • Organisation: Namnet på din Github-organisation. Om din lagringsplats-URL till exempel är https://github.com/databricks-inc/data-platformär databricks-incorganisationen .
  • Databasen: Namnet på den enda lagringsplats som ska tillåtas, till exempel data-platform.
  • Entitetstyp: Den typ av GitHub-entitet som representeras i anspråket sub (ämne) för din token. Standardvärdet är Gren. Databricks rekommenderar att du använder Miljö, som du kan aktivera genom att ange environment attributet i YAML-filen för GitHub Actions. Se Distribuera till en specifik miljö.
  • Utfärdar-URL:https://token.actions.githubusercontent.com
  • Subjekt: En sträng som bildas genom att sammanfoga värden från GitHub Actions-jobbkontexten.
  • Publik: Databricks rekommenderar att du ställer in detta på ditt Azure Databricks-konto-ID. Om det utelämnas används konto-ID:t som standard.
  • Ämnesanspråk: (valfritt) JWT-anspråket som innehåller värdet för arbetsbelastningsidentiteten (sub) från OIDC-token. För GitHub lämnar du fältet som sub, som kodar lagringsplatsen, grenen, taggen, pull/merge-begäran eller miljön som utlöste arbetsflödet.

Följande Databricks CLI-kommando skapar till exempel en federationsprincip för en organisation med namnet my-org och ett numeriskt ID för Databricks-tjänstens huvudnamn för 5581763342009999:

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

Konfigurera YAML-filen för GitHub Actions

Konfigurera sedan YAML-filen GitHub Actions. Ange följande miljövariabler:

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: Url för Din Databricks-arbetsyta
  • DATABRICKS_CLIENT_ID: Tjänstens huvudnamn (program)-ID
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