Freigeben über


Aktivieren Sie die Workload-Identitätsföderation für CircleCI

Der OAuth-Tokenverbund von Databricks, auch als OpenID Connect (OIDC) bezeichnet, ermöglicht Es Ihren automatisierten Workloads, die außerhalb von Databricks ausgeführt werden, sicher auf Databricks zuzugreifen, ohne dass Databricks geheime Schlüssel erforderlich sind. Siehe Authentifizieren des Zugriffs auf Azure Databricks mithilfe des OAuth-Tokenverbunds.

So aktivieren Sie den Workload-Identitätsverbund für CircleCI:

  1. Erstellen einer Verbundrichtlinie
  2. Konfigurieren des CircleCI YAML

Nachdem Sie den Workload-Identitätsverbund aktiviert haben, rufen die Databricks-SDKs und die Databricks CLI Arbeitsauslastungsidentitätstoken automatisch von CircleCI ab und tauschen sie für OAuth-Token von Databricks aus.

Erstellen einer Verbundrichtlinie

Erstellen Sie zunächst eine benutzerdefinierte Workload-Identitätsverbundrichtlinie. Anweisungen finden Sie unter Konfigurieren einer Dienstprinzipalverbundrichtlinie. Legen Sie für CircleCI die folgenden Werte für die Richtlinie fest:

  • Aussteller-URL:https://oidc.circleci.com/org/<org_id>, wo <org-id> ist Ihre Organisations-ID
  • Leserkreis: Ihre CircleCI-Organisations-ID
  • Betreff: Die CircleCI-Projekt-ID
  • Antragstelleranspruch:oidc.circleci.com/project-id

Beispielsweise erstellt der folgende Databricks CLI-Befehl eine Verbundrichtlinie für eine Organisations-ID 1234 und eine Databricks-Dienstprinzipal-Numerische ID von 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"
  }
}'

Konfigurieren des CircleCI YAML

Ändern Sie als Nächstes die CircleCI-Konfigurationsdatei. Zusätzlich zu den folgenden Variablen legen Sie DATABRICKS_OIDC_TOKEN_ENV in Ihrer CircleCI-Datei config.yml fest, damit die Databricks-SDKs oder die CLI angewiesen werden, nach dem Token in CIRCLE_OIDC_TOKEN_V2 zu suchen. (Sie können auch die ältere CIRCLE_OIDC_TOKEN Umgebungsvariable verwenden.)

  • DATABRICKS_AUTH_TYPE: env-oidc
  • DATABRICKS_HOST: Url des Databricks-Arbeitsbereichs
  • DATABRICKS_CLIENT_ID: die Dienstprinzipal-ID (Anwendungs-ID)
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