Поделиться через


Проверка подлинности с помощью Azure DevOps в Databricks

Узнайте, как настроить конвейеры Azure DevOps, чтобы обеспечить проверку подлинности для команд Интерфейса командной строки Databricks и вызовов API в службе автоматизации.

Проверка подлинности Azure DevOps

Управление аутентификацией (внутренней и внешней) в Azure DevOps выполняется с службой connections. На портале Azure DevOps можно получить доступ к службе connections на любой странице проекта в разделе 'Параметры проекта' .

Select служба connections в разделе

Для проверки подлинности интерфейса командной строки Databricks используйте тип подключения службы Azure Resource Manager . Для этого типа выберите один из следующих методов проверки подлинности:

  • Федерация удостоверений рабочей нагрузки Microsoft Entra
    • Использует протокол OpenID Connect (OIDC) для получения маркеров от имени субъекта-службы.
    • Требуется настроить задачи, созданные Azure DevOps, и тему identifier с учетной записью службы, которую вы планируете использовать.
    • Применимый механизм проверки подлинности: Azure CLI.
  • Субъект-служба Microsoft Entra
    • Использует идентификатор клиента и секрет клиента MS Entra для generate кратковременный маркер OAuth.
    • Требуется generate секрет субъекта-службы, который вы планируете использовать для подключения к службе.
    • Применимые механизмы проверки подлинности: Azure CLI, секреты клиента Microsoft Entra.
  • Управляемое удостоверение Идентификатора Microsoft Entra

После выбора механизма проверки подлинности, который лучше всего соответствует потребностям проекта, его необходимо настроить в определении конвейера Azure DevOps (pipeline.yml) для работы с Azure Databricks CLI.

Настройка конвейера Azure DevOps для использования Azure CLI для проверки подлинности

По умолчанию Azure Databricks CLI будет использовать Azure CLI в качестве механизма проверки подлинности с помощью Azure Databricks.

Обратите внимание, что при использовании Azure CLI для проверки подлинности требуются AzureCLI@2 taskвсе вызовы интерфейса командной строки Azure Databricks. Это означает, что невозможно предоставить общий доступ к сеансу, прошедшему проверку подлинности, в последующих задачах. Каждая задача выполняет проверку подлинности независимо, что приводит к задержке при выполнении.

Следующая пример конфигурации Azure Pipelines использует Azure CLI для проверки подлинности и выполнения команды Azure Databricks CLI bundle deploy :

- task: AzureCLI@2
  inputs:
    azureSubscription: {your-azure-subscription-id-here}
    useGlobalConfig: true
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      export DATABRICKS_HOST=https://adb...
      databricks bundle deploy

При настройке конвейера Azure DevOps для выполнения команд Azure Databricks CLI выполните следующие действия:

  • Используйте azureSubscription для настройки подключения службы, которое вы хотите использовать.
  • Настройте useGlobalConfig для использования значения по умолчанию, так как AZURE_CONFIG_FILE команды используют фильтрацию databricks bundle переменных среды для подпроцессов. Если это не set, эти подпроцессы не смогут найти сведения о сеансе, прошедшем проверку подлинности.
  • Если он еще не экспортирован (например, на предыдущем шаге или в конфигурации пакета), экспортируйте DATABRICKS_HOST переменную среды.

Настройка конвейера Azure DevOps для использования секрета клиента Microsoft Entra для проверки подлинности

Если вы не хотите использовать Azure CLI для проверки подлинности, так как она добавляет слишком много задержки или так как вам нужно использовать Azure CLI в другом типе задач, используйте секрет клиента Microsoft Entra. Сведения о проверке подлинности должны быть получены из подключения к службе, поэтому необходимо использовать AzureCLI@2 задачу в объявлении конвейера.

AzureCLI@2 Используйте задачу, чтобы получить идентификатор клиента и секрет клиента из подключения к службе, а затем экспортировать их в виде переменных среды. Последующие задачи могут использовать их напрямую. Пример см. в статье "Использование субъекта-службы Microsoft Entra для управления папками Databricks Git".

В следующем примере конфигурации Azure Pipelines используется секрет клиента Microsoft Entra для проверки подлинности и выполнения команды Azure Databricks CLI bundle deploy :

- task: AzureCLI@2
  inputs:
    azureSubscription: {your-azure-subscription-id-here}
    addSpnToEnvironment: true
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      echo "##vso[task.setvariable variable=ARM_CLIENT_ID]${servicePrincipalId}"
      echo "##vso[task.setvariable variable=ARM_CLIENT_SECRET]${servicePrincipalKey}"
      echo "##vso[task.setvariable variable=ARM_TENANT_ID]${tenantId}"

- script: |
    export DATABRICKS_HOST=https://adb...
    databricks bundle deploy

При настройке конвейера Azure DevOps для использования секретов клиента Microsoft Entra для выполнения команд Интерфейса командной строки Azure Databricks выполните следующие действия:

  • Настройте addSpnToEnvironment экспорт соответствующих переменных среды в встроенный скрипт.
  • Встроенный скрипт экспортирует переменные среды с областью задач в виде переменных среды с областью задания под именами, которые Azure Databricks CLI автоматически выбирает.
  • Если он еще не экспортирован (например, на предыдущем шаге или в конфигурации пакета), экспортируйте DATABRICKS_HOST переменную среды.
  • Если пометить ARM_CLIENT_SECRET переменную среды с issecret=trueпомощью, необходимо явно добавить ее на каждый последующий шаг, который требуется.
    • Если этого не сделать, ARM_CLIENT_SECRET переменная среды будет доступна каждому следующему шагу.
    • Переменная ARM_CLIENT_SECRET среды маскируется в выходных данных независимо от параметра.

Настройка конвейера Azure DevOps для использования управляемого удостоверения Microsoft Entra для проверки подлинности

Так как проверка подлинности управляемого удостоверения Azure зависит от виртуальной машины или конфигурации контейнера, чтобы гарантировать выполнение Интерфейса командной строки Azure Databricks под правильным удостоверением, конфигурация конвейера Azure DevOps не требует указания AzureCLI@2 задачи.

В следующем примере конфигурации Azure Pipelines используется управляемое удостоверение Microsoft Entra для проверки подлинности и выполнения команды Azure Databricks CLI bundle deploy :

- script: |
    export DATABRICKS_AZURE_RESOURCE_ID=/subscriptions/<id>/resourceGroups/<name>/providers/Microsoft.Databricks/workspaces/<name>
    export ARM_CLIENT_ID=eda1f2c4-07cb-4c2c-a126-60b9bafee6d0
    export ARM_USE_MSI=true
    export DATABRICKS_HOST=https://adb...
    databricks current-user me --log-level trace

При настройке конвейера Azure DevOps для использования управляемых удостоверений Microsoft Entra для выполнения команд Интерфейса командной строки Azure Databricks выполните следующие действия:

  • Управляемое удостоверение Microsoft Entra должно быть назначено роли "Участник" в рабочей области Databricks, к которым он будет обращаться.
  • Значение переменной DATABRICKS_AZURE_RESOURCE_ID среды найдено в разделе Properties для экземпляра Azure Databricks в портал Azure.
  • Значение переменной ARM_CLIENT_ID среды — это идентификатор клиента управляемого удостоверения.

Примечание.

DATABRICKS_HOST Если переменная среды не указана в этой конфигурации, значение будет выводиться изDATABRICKS_AZURE_RESOURCE_ID.

Установка Azure Databricks CLI из конвейера Azure Pipelines

После настройки предпочитаемых механизмов проверки подлинности необходимо установить интерфейс командной строки Azure Databricks на узле или агенте, который будет выполнять команды Интерфейса командной строки Azure Databricks.

# Install Databricks CLI
- script: |
    curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
  displayName: 'Install Databricks CLI'

Совет

  • Если вы не хотите автоматически устанавливать последнюю версию Интерфейса командной строки Azure Databricks, замените main URL-адрес установщика определенной версией (например, v0.224.0).

Рекомендации

  • Databricks рекомендует использовать федерацию удостоверений рабочей нагрузки Microsoft Entra в качестве метода проверки подлинности. Он не зависит от секретов и является более безопасным, чем другие методы проверки подлинности. Она работает автоматически с задачей AzureCLI@2 без настройки вручную.

    Дополнительные сведения см. в статье "Создание подключения службы Azure Resource Manager", использующего федерацию удостоверений рабочей нагрузки.

См. также