Проверка подлинности с помощью Azure DevOps в Databricks
Узнайте, как настроить конвейеры Azure DevOps, чтобы обеспечить проверку подлинности для команд Интерфейса командной строки Databricks и вызовов API в службе автоматизации.
Проверка подлинности Azure DevOps
Управление аутентификацией (внутренней и внешней) в Azure DevOps выполняется с службой connections. На портале Azure DevOps можно получить доступ к службе 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 это актуально только в том случае, если вы используете локальные средства выполнения. См. статью "Создание подключения службы Azure Resource Manager к виртуальной машине с управляемым удостоверением".
- Применимые механизмы проверки подлинности: Azure CLI, управляемые удостоверения Microsoft Entra (прежнее название — MSI).
После выбора механизма проверки подлинности, который лучше всего соответствует потребностям проекта, его необходимо настроить в определении конвейера 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", использующего федерацию удостоверений рабочей нагрузки.