Aller au contenu principal

Activer la fédération des identités de charge de travail pour Terraform Cloud, Bitbucket Pipelines ou Jenkins

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 Terraform Cloud, les Pipelines Bitbucket Atlassian ou Jenkins :

  1. Créer une politique de fédération
  2. Configurer le fournisseur d'identité

Après avoir activé la fédération d'identité de charge de travail, les SDK Databricks et l'interface CLI Databricks récupèrent automatiquement les jetons d'identité de charge de travail auprès du fournisseur d'identité et les échangent contre des jetons OAuth Databricks.

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. Vous devrez définir les valeurs suivantes :

  • **URL de l'émetteur :** généralement l'URL du jeton du fournisseur
  • Audiences : généralement un identifiant d'organisation
  • Objet : Généralement une valeur qui spécifie le contexte du job ou du projet

Par exemple, la commande CLI Databricks suivante crée une politique de fédération pour une URL GitHub https://gitlab.com/example-group et un identifiant numérique de Service Principal Databricks de 5581763342009999:

Bash
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://gitlab.com/example-group",
"audiences": [
"https://gitlab.com/example-group"
],
"subject": "project_path:my-group/my-project:..."
}
}'

Configurer le fournisseur d’identité

Ensuite, dans la configuration du fournisseur d'identité, définissez les variables d'environnement du jeton OIDC Databricks sur les variables d'environnement du jeton OIDC d'identité par default du fournisseur.

Jenkins

Pour activer la fédération d'identité de charge de travail pour Jenkins, définissez le jeton dans DATABRICKS_OIDC_TOKEN. Sinon, définissez le jeton dans un fichier et configurez DATABRICKS_OIDC_TOKEN_FILEPATH pour qu'il pointe vers ce fichier.

Terraform Cloud

Pour activer la fédération d’identité de la charge de travail pour Terraform Cloud, définissez la variable d’environnement DATABRICKS_OIDC_TOKEN_ENV pour indiquer au SDK Databricks de rechercher le token dans TFC_WORKLOAD_IDENTITY_TOKEN.

DATABRICKS_OIDC_TOKEN_ENV = TFC_WORKLOAD_IDENTITY_TOKEN

Pipelines Atlassian Bitbucket

Pour activer la fédération d'identité de charge de travail pour Bitbucket Pipelines, définissez la variable d'environnement DATABRICKS_OIDC_TOKEN_ENV afin d'indiquer au SDK Databricks de rechercher le jeton dans BITBUCKET_STEP_OIDC_TOKEN.

YAML
image: atlassian/default-image

pipelines:
default:
- step:
oidc: true
script:
- export DATABRICKS_CLIENT_ID=a1b2c3d4-ee42-1eet-1337-f00b44r
- export DATABRICKS_HOST=https://my-workspace.cloud.databricks.com/
- export DATABRICKS_OIDC_TOKEN_ENV=BITBUCKET_STEP_OIDC_TOKEN
- export DATABRICKS_AUTH_TYPE=env-oidc
- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
- databricks --version
- databricks current-user me