Udostępnij przez


Włącz federację tożsamości obciążenia roboczego dla GitHub Actions

Federacja tokenów OAuth w Databricks, znana również jako OpenID Connect (OIDC), umożliwia automatycznym procesom działającym poza środowiskiem Databricks bezpieczny dostęp do Databricks bez potrzeby używania tajnych kluczy dostępu. Zobacz Uwierzytelnianie dostępu do usługi Azure Databricks przy użyciu federacji tokenów OAuth.

Aby włączyć federację tożsamości operacji dla funkcji GitHub Actions:

  1. Tworzenie zasad federacji
  2. Skonfiguruj plik YAML dla GitHub Actions

Po włączeniu federacji tożsamości obciążenia zestawy SDK usługi Databricks i interfejs wiersza polecenia usługi Databricks automatycznie pobierają tokeny tożsamości obciążenia z usługi GitHub i wymieniają je dla tokenów OAuth usługi Databricks.

Tworzenie zasad federacji

Najpierw utwórz zasady federacji tożsamości obciążenia. Aby uzyskać instrukcje, zobacz Konfigurowanie zasad federacyjnych jednostki usługi. W przypadku usługi GitHub ustaw następujące wartości dla polisy:

  • Organizacja: Nazwa organizacji usługi GitHub. Jeśli na przykład adres URL repozytorium to https://github.com/databricks-inc/data-platform, organizacja to databricks-inc.
  • Repozytorium: Nazwa pojedynczego repozytorium, na przykład data-platform.
  • Typ jednostki: Rodzaj jednostki Usługi GitHub reprezentowany w oświadczeniu sub (podmiotu) tokenu. Wartość domyślna to Gałąź. Usługa Databricks zaleca korzystanie ze środowiska, które można włączyć, ustawiając environment atrybut w pliku YAML funkcji GitHub Actions. Zobacz Wdrażanie w określonym środowisku.
  • Adres URL wystawcy:https://token.actions.githubusercontent.com
  • Temat: Ciąg utworzony przez łączenie wartości z kontekstu zadania funkcji GitHub Actions.
  • Odbiorcy: Usługa Databricks zaleca ustawienie tego na ID konta usługi Azure Databricks. W przypadku pominięcia identyfikator konta jest używany domyślnie.
  • Oświadczenie podmiotu: (opcjonalnie) Oświadczenie JWT, które zawiera wartość tożsamości obciążenia (sub) z tokenu OIDC. W przypadku usługi GitHub pozostaw pole jako sub, które koduje repozytorium, gałąź, tag, żądanie ściągnięcia/scalania lub środowisko, które wyzwoliło przepływ pracy.

Na przykład następujące polecenie interfejsu wiersza polecenia usługi Databricks tworzy zasady federacji dla organizacji o nazwie my-org i identyfikator liczbowy jednostki usługi Databricks :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"
  }
}'

Skonfiguruj plik YAML GitHub Actions

Następnie skonfiguruj plik YAML funkcji GitHub Actions. Ustaw następujące zmienne środowiskowe:

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: Adres URL obszaru roboczego usługi Databricks
  • DATABRICKS_CLIENT_ID: identyfikator jednostki usługi (aplikacji)
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