Partager via


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

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 CircleCI :

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

Après avoir activé la fédération des identités de charge de travail, les kits sdk Databricks et l’interface CLI Databricks récupèrent automatiquement les jetons d’identité de charge de travail à partir de CircleCI 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é de charge de travail personnalisée. Pour obtenir des instructions, consultez Configurer une stratégie de fédération de principal de service. Pour CircleCI, définissez les valeurs suivantes pour la stratégie :

  • URL de l’émetteur :https://oidc.circleci.com/org/<org_id>, où <org-id> se trouve votre ID d’organisation
  • Public: ID de votre organisation CircleCI
  • Objet: ID du projet CircleCI
  • Revendication d’objet :oidc.circleci.com/project-id

Par exemple, la commande CLI Databricks suivante crée une stratégie de fédération pour un ID d’organisation et un ID 1234 numérique de principal de service Databricks :5581763342009999

databricks account service-principal-federation-policy create 5581763342009999 --json '{
  "oidc_policy": {
	"issuer": "https://oidc.circleci.com/org/1234",
	"audiences": [
  	  "1234"
	],
	"subject": "5678",
  "subject_claim": "oidc.circleci.com/project-id"
  }
}'

Configurer CircleCI YAML

Ensuite, modifiez le fichier de configuration CircleCI. En plus des variables suivantes, définissez DATABRICKS_OIDC_TOKEN_ENV dans votre fichier CircleCI config.yml pour indiquer aux sdk Databricks ou à l’interface CLI de rechercher le jeton dans CIRCLE_OIDC_TOKEN_V2. (Vous pouvez également utiliser l’ancienne CIRCLE_OIDC_TOKEN variable d’environnement.)

  • DATABRICKS_AUTH_TYPE: env-oidc
  • DATABRICKS_HOST: URL de votre espace de travail Databricks
  • DATABRICKS_CLIENT_ID: ID du principal de service (application)
version: 2.1

jobs:
  build:
    docker:
  	  - image: cimg/base:current
    environment:
      DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
      DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r
      DATABRICKS_OIDC_TOKEN_ENV: CIRCLE_OIDC_TOKEN
      DATABRICKS_AUTH_TYPE: env-oidc
    steps:
      - checkout
      - run:
          name: Install Databricks CLI
          command: |
            curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sudo sh
            databricks --version
      - run:
          name: Run Databricks CLI commands
          command: databricks current-user me