Pular para o conteúdo principal

Habilitar a federação de identidade de carga de trabalho para o pipeline Azure DevOps

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 o Databricks com segurança sem a necessidade de segredos do Databricks. Consulte Autenticar o acesso ao Databricks usando a federação de tokens OAuth.

Para habilitar a federação de identidade de carga de trabalho para o pipeline Azure DevOps :

  1. Crie uma política de federação
  2. Configurar YAML do pipeline do Azure DevOps

Depois que o senhor ativar a federação de identidade de carga de trabalho, os SDKs Databricks e o Databricks CLI buscarão automaticamente a identidade da carga de trabalho tokens do pipeline Azure DevOps e a trocarão pelo Databricks OAuth tokens.

Crie uma política de federação

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

  • URL do emissor: https://vstoken.dev.azure.com/<org_id>, onde <org-id> é o GUID de sua organização do Azure DevOps
  • Públicos: api://AzureADTokenExchange
  • Assunto: p://<org-name>/<project-name>/<pipeline-name> onde <org-name> é o nome da organização do Azure DevOps, <project-name> é o nome do projeto do Azure DevOps e <pipeline-name> é o nome do pipeline do Azure DevOps

Por exemplo, o seguinte Databricks CLI comando cria uma política de federação para um ID de organização 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 e um ID numérico de entidade de serviço Databricks de 5581763342009999:

Bash
databricks account service-principal-federation-policy create 5581763342009999 --json '{
"oidc_policy": {
"issuer": "https://vstoken.dev.azure.com/7f1078d6-b20d-4a20-9d88-05a2f0d645a3",
"audiences": [
"api://AzureADTokenExchange"
],
"subject": "p://my-org/my-project/my-pipeline"
}
}
'

Configurar YAML do pipeline do Azure DevOps

Em seguida, configure o arquivo YAML do pipeline Azure DevOps . Defina a seguinte variável de ambiente:

  • DATABRICKS_AUTH_TYPE: azure-devops-oidc
  • DATABRICKS_HOST: URL do seu workspace Databricks
  • DATABRICKS_CLIENT_ID: O ID da entidade de serviço (aplicativo)
  • SYSTEM_ACCESSTOKEN: Mapeie a variável de pipeline $(System.AccessToken) para esta variável de ambiente
YAML
trigger: none
pool: test # my self-hosted pool name

variables:
DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
DATABRICKS_AUTH_TYPE: azure-devops-oidc
DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r

steps:
- script: |
databricks current-user me
displayName: 'Display Databricks current user information'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)