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)