Aller au contenu principal

Activez la fédération d’identité de charge de travail pour CircleCI

La fédération de jetons OAuth Databricks, également connue sous le nom d'OpenID Connect (OIDC), permet à vos workloads automatisés exécutés en dehors de Databricks d'accéder en toute sécurité à Databricks sans nécessiter de secrets Databricks. Voir Authentifier l'accès à Databricks à l'aide de la fédération de jetons OAuth.

Pour activer la fédération d'identité de charge de travail pour CircleCI :

  1. Créer une politique de fédération
  2. Configurez le YAML CircleCI

Après avoir activé la fédération d’identités de workload, les SDK Databricks et la CLI Databricks récupèrent automatiquement les jetons d’identité de workload auprès de CircleCI et les échangent contre des jetons Databricks OAuth.

Créer une politique de fédération

Tout d'abord, créez une politique de fédération d'identités de charge de travail personnalisée. Pour obtenir des instructions, consultez Configurer une stratégie de fédération de Service Principal. Pour CircleCI, définissez les valeurs suivantes pour la politique :

  • URL de l'émetteur : https://oidc.circleci.com/org/<org_id>, où <org-id> est l'ID de votre organisation
  • Audiences : Votre identifiant d'organisation CircleCI
  • Objet : l'ID du projet CircleCI
  • Revendication de sujet : oidc.circleci.com/project-id

Par exemple, la commande Databricks CLI suivante crée une politique de fédération pour un ID d’organisation 1234 et un ID numérique de Service Principal Databricks de 5581763342009999:

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

Configurez le YAML CircleCI

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 à la CLI de rechercher le jeton dans CIRCLE_OIDC_TOKEN_V2. (Vous pouvez également utiliser l'ancienne variable d'environnement CIRCLE_OIDC_TOKEN.)

  • DATABRICKS_AUTH_TYPE: env-oidc
  • DATABRICKS_HOST: votre URL de workspace Databricks
  • DATABRICKS_CLIENT_ID: l'ID (d'application) du Service Principal
YAML
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