Partager via


Activer la fédération des identités de charge de travail pour GitHub Actions

La fédération de jetons OAuth Databricks, également appelée OpenID Connect (OIDC), permet à vos charges de travail automatisées s’exécutant en dehors de Databricks d’accéder en toute sécurité à Databricks sans avoir besoin de secrets Databricks. Consultez Authentifier l’accès à Azure Databricks à l’aide de la fédération de jeton OAuth.

Pour activer la fédération des identités de charge de travail pour GitHub Actions :

  1. Créer une stratégie de fédération
  2. Configurer le fichier YAML GitHub Actions

Après avoir activé la fédération des identités de charge de travail, les sdk Databricks et l’interface CLI Databricks récupèrent automatiquement des jetons d’identité de charge de travail à partir de GitHub et les échangent pour les jetons OAuth Databricks.

Créer une stratégie de fédération

Tout d’abord, créez une stratégie de fédération d'identités de charges de travail. Pour obtenir des instructions, consultez Configurer une stratégie de fédération de principal de service. Pour GitHub, définissez les valeurs suivantes pour la stratégie :

  • Organisation: Nom de votre organisation Github. Par exemple, si l’URL de votre dépôt est https://github.com/databricks-inc/data-platform, l’organisation est databricks-inc.
  • Dépôt: Nom du référentiel unique à autoriser, tel que data-platform.
  • Type d’entité : Type d’entité GitHub représentée dans la sub revendication (objet) de votre jeton. La valeur par défaut est Branch. Databricks recommande d’utiliser l’environnement, que vous pouvez activer en définissant l’attribut environment dans votre fichier YAML GitHub Actions. Consultez Déploiement sur un environnement spécifique.
  • URL de l’émetteur :https://token.actions.githubusercontent.com
  • Objet: Chaîne formée par concaténation de valeurs à partir du contexte de travail GitHub Actions.
  • Public: Databricks recommande de définir cette valeur sur votre ID de compte Azure Databricks. S’il est omis, l’ID de compte est utilisé par défaut.
  • Revendication d’objet : (facultatif) Revendication JWT qui contient la valeur d’identité de charge de travail (sub) du jeton OIDC. Pour GitHub, laissez le champ en tant que sub, qui encode le référentiel, la branche, la balise, la demande de tirage/fusion ou l’environnement qui a déclenché le flux de travail.

Par exemple, la commande CLI Databricks suivante crée une stratégie de fédération pour une organisation nommée my-org et un ID numérique numérique du principal de service 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"
  }
}'

Configurer le fichier YAML GitHub Actions

Ensuite, configurez le fichier YAML GitHub Actions. Définissez les variables d’environnement suivantes :

  • DATABRICKS_AUTH_TYPE: github-oidc
  • DATABRICKS_HOST: URL de votre espace de travail Databricks
  • DATABRICKS_CLIENT_ID: ID du principal de service (application)
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