Partilhar via


Habilitar federação de identidade de tarefas no CircleCI

A federação de tokens OAuth do Databricks, também conhecida como OpenID Connect (OIDC), permite que suas cargas de trabalho automatizadas executadas fora do Databricks acessem com segurança o Databricks sem a necessidade de segredos do Databricks. Consulte Autenticar o acesso ao Azure Databricks usando a federação de tokens OAuth.

Para habilitar a federação de identidade de tarefas para o CircleCI:

  1. Criar uma política de federação
  2. Configurar o ficheiro YAML do CircleCI

Depois de habilitar a federação de identidades de carga de trabalho, os SDKs do Databricks e a CLI do Databricks buscam automaticamente tokens de identidade de carga de trabalho do CircleCI e os trocam por tokens OAuth do Databricks.

Criar uma política de federação

Primeiro, crie uma política de federação de identidade de carga de trabalho personalizada. Para obter instruções, consulte Configurar uma política de federação da entidade de serviço. Para CircleCI, defina os seguintes valores para a política:

  • URL do emissor:https://oidc.circleci.com/org/<org_id>, onde <org-id> é o ID da sua organização
  • Audiências: O ID da sua organização CircleCI
  • Assunto: O ID do projeto CircleCI
  • Reivindicação do assunto:oidc.circleci.com/project-id

Por exemplo, o seguinte comando da CLI do Databricks cria uma política de federação para um ID 1234 da organização e um ID numérico da entidade de serviço do 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"
  }
}'

Configurar o CircleCI YAML

Em seguida, modifique o arquivo de configuração do CircleCI. Além das variáveis a seguir, defina DATABRICKS_OIDC_TOKEN_ENV em seu arquivo CircleCI config.yml para instruir os SDKs ou CLI do Databricks a procurar o token no CIRCLE_OIDC_TOKEN_V2. (Você também pode usar a variável de ambiente mais antiga CIRCLE_OIDC_TOKEN .)

  • DATABRICKS_AUTH_TYPE: env-oidc
  • DATABRICKS_HOST: URL do seu espaço de trabalho Databricks
  • DATABRICKS_CLIENT_ID: o ID da entidade de serviço (aplicação)
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