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 :
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:
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-oidcDATABRICKS_HOST: votre URL de workspace DatabricksDATABRICKS_CLIENT_ID: l'ID (d'application) du Service Principal
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