Delen via


Federatie van workload identity inschakelen voor CircleCI

Met Databricks OAuth-tokenfederatie, ook wel bekend als OpenID Connect (OIDC), kunnen uw geautomatiseerde workloads die buiten Databricks worden uitgevoerd, veilig toegang krijgen tot Databricks zonder dat Databricks-geheimen nodig zijn. Zie Verificatietoegang tot Azure Databricks met behulp van OAuth-tokenfederatie.

Workloadidentiteitsfederatie inschakelen voor CircleCI:

  1. Een federatiebeleid maken
  2. Het CircleCI YAML configureren

Nadat u workloadidentiteitsfederatie hebt ingeschakeld, halen de Databricks SDK's en de Databricks CLI automatisch workloadidentiteitstokens op uit CircleCI en wisselen ze uit voor Databricks OAuth-tokens.

Een federatiebeleid maken

Maak eerst een aangepast federatiebeleid voor workloadidentiteit. Zie Een federatiebeleid voor de service-principal configureren voor instructies. Stel voor CircleCI de volgende waarden in voor het beleid:

  • URL van verlener:https://oidc.circleci.com/org/<org_id>, waar <org-id> is uw organisatie-id
  • Doelgroepen: Uw CircleCI-organisatie-id
  • Onderwerp: De CircleCI-project-id
  • Onderwerp van de claim:oidc.circleci.com/project-id

Met de volgende Databricks CLI-opdracht maakt u bijvoorbeeld een federatiebeleid voor een organisatie-id 1234 en een numerieke id van een Databricks-service-principal van 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"
  }
}'

CircleCI YAML configureren

Wijzig vervolgens het CircleCI-configuratiebestand. Stel naast de hieronder genoemde variabelen DATABRICKS_OIDC_TOKEN_ENV in uw CircleCI-bestand config.yml de Databricks SDK's of CLI in, zodat er gezocht wordt naar het token in CIRCLE_OIDC_TOKEN_V2. (U kunt ook de oudere CIRCLE_OIDC_TOKEN omgevingsvariabele gebruiken.)

  • DATABRICKS_AUTH_TYPE: env-oidc
  • DATABRICKS_HOST: de URL van uw Databricks-werkruimte
  • DATABRICKS_CLIENT_ID: de ID van de service-principal (toepassing)
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