Использование субъекта-службы Microsoft Entra для проверки подлинности доступа к папкам Azure Databricks Git
Узнайте, как настроить прошедший проверку подлинности доступ к папкам Azure Databricks Git, размещенным в Azure DevOps (Azure Repos) с помощью субъекта-службы Microsoft Entra.
Если в проекте Databricks Git есть папки Databricks, поддерживаемые репозиториями Azure Repos Git, и вы хотите управлять ими в службе автоматизации, вы можете использовать сведения, приведенные в этой статье, чтобы настроить проверку подлинности с помощью субъекта-службы Microsoft Entra и Azure DevOps. После выполнения этой задачи вы получите учетные данные Databricks Git с проверкой подлинности, которые можно использовать в автоматизации.
Зачем использовать Microsoft Entra, а не PAT?
В прошлом личные маркеры доступа (PATS) были предпочтительным способом проверки подлинности при вызове API, требующего определенного доступа и разрешений к ресурсам. Эти маркеры носителя представляли имя пользователя и пароль, а также требовали регулярного поворота, чтобы свести к минимуму риск безопасности, который они представили. Маркеры доступа к идентификатору Microsoft Entra решают эту проблему, автоматически управляя сменой этих маркеров каждый час, и Databricks рекомендует их в качестве рекомендации при работе с ресурсами Azure. Создав субъект-службу Microsoft Entra, вы можете управлять разрешениями, предоставленными для доступа к этим ресурсам без использования учетной записи пользователя Microsoft Azure.
Требования
Вы должны иметь:
- Доступ к проекту Azure DevOps с репозиторием Azure Repos Git, подключенным к папке Databricks Git.
- Разрешения учетной записи Azure для создания субъекта-службы MS Entra.
- Установленный Azure CLI.
- Установлен интерфейс командной строки Databricks.
Шаг 1. Создание субъекта-службы Microsoft Entra
Этот шаг можно пропустить, если у вас уже настроен субъект-служба Microsoft Entra.
Чтобы создать субъект-службу Microsoft Entra, выполните действия, описанные в документации по Microsoft Azure: регистрация приложения Microsoft Entra и создание субъекта-службы. В разделе "Настройка проверки подлинности" этой статьи игнорируйте первые два варианта и выполните действия, описанные в разделе "Вариант 3. Создание нового секрета клиента".
После настройки вы будете иметь следующие функции:
- Секрет клиента. Она будет представлена в виде длинной строки случайных символов.
-
- Идентификатор субъекта-службы. Это уникальное имя, назначенное субъекту-службе MS Entra. В качестве рекомендации имя также должно указывать, как и когда оно должно использоваться (например,
Databricks_CICD_SP
).
- Идентификатор субъекта-службы. Это уникальное имя, назначенное субъекту-службе MS Entra. В качестве рекомендации имя также должно указывать, как и когда оно должно использоваться (например,
(Вы можете игнорировать необязательный пользовательский интерфейс перенаправления в диалоговом окне конфигурации MS Entra, так как он не будет использоваться в этой конфигурации.)
Скопируйте их куда-то вниз, так как вы будете использовать их в будущих шагах. После успешного завершения процесса в этой документации защитите или удалите эти сведения.
Шаг 2. Настройка разрешений Azure DevOps для субъекта-службы MS Entra
Сначала необходимо предоставить субъекту-службе MS Entra разрешение на доступ к ресурсам Azure DevOps. Для этого необходимо использовать портал Azure DevOps.
Войдите в учетную запись Azure DevOps и перейдите к проекту.
В разделе "Разрешения для проекта>" щелкните "Читатели".
Перейдите на вкладку "Члены" , нажмите кнопку "Добавить", а затем добавьте имя созданного субъекта-службы MS Entra.
В консоли вернитесь к уровню организации Azure DevOps и выберите параметры организации в нижней части левой панели.
Щелкните "Пользователи>добавить пользователя" и настройте доступ для субъекта-службы следующим образом:
- Добавьте субъект-службу MS Entra с помощью созданного ранее идентификатора.
- Настройте доступ субъекта-службы к минимальному уровню, который он должен выполнять операции в Azure Repos. Как правило, достаточно разрешений уровня "Базовый ". Если вы не уверены, какой уровень следует использовать, обратитесь к администратору организации Azure DevOps.
- Добавьте субъект-службу в проект Azure DevOps.
- Назначьте субъект-службу группе участников проекта.
Шаг 3. Назначение разрешений субъекту-службе в Azure Databricks
Необходимо также назначить разрешения в Azure Databricks субъекту-службе Microsoft Entra.
- Войдите в консоль администрирования учетной записи Azure Databricks для своей учетной записи.
- Щелкните " Пользователи" и "Группы".
- Перейдите на вкладку "Субъекты-службы" и нажмите кнопку "Добавить субъект-службу".
- На странице "Добавление субъекта-службы" щелкните управляемый идентификатор Microsoft Entra ID, а затем добавьте идентификатор приложения Microsoft Entra и имя субъекта-службы на шаге 1. Создание субъекта-службы Microsoft Entra". Нажмите кнопку "Добавить ", когда закончите работу.
- Щелкните добавленный субъект-службу Microsoft Entra, чтобы просмотреть вкладку сведений о субъекте.
- Щелкните "Создать секрет " в левой нижней части страницы, чтобы создать секрет OAuth. Этот секрет позволяет выполнять проверку подлинности вызовов API Azure Databricks с помощью интерфейса командной строки Databricks.
- Скопируйте строку секрета и идентификатор клиента, а затем нажмите кнопку "Готово". Вы будете использовать оба в следующем шаге. Нажмите кнопку Готово.
- На левой боковой панели щелкните "Рабочие области", выберите рабочую область и перейдите на вкладку "Разрешения ".
- Предоставьте субъекту-службе разрешения "Пользователь" и нажмите кнопку "Добавить разрешения".
Внимание
Если вкладка "Разрешения" отключена, рабочая область Azure Databricks не назначена хранилищу метаданных каталога Unity. Обратитесь к администратору Databricks.
Затем вы создадите учетные данные Azure Databricks Git.
Шаг 4. Создайте маркер доступа к идентификатору Microsoft Entra и сохраните его в качестве учетных данных Azure Databricks Git.
Примечание.
Для этого шага требуется использование интерфейсов CLIS Azure и Databricks.
Для проверки подлинности в Azure Databricks необходимо иметь профиль конфигурации (.databrickscfg
) с помощью секрета OAuth, созданного на предыдущем шаге. Чтобы настроить эту конфигурацию, откройте .databrickscfg
файл в редакторе и добавьте в файл следующее:
[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>
Где host
находится URL-адрес рабочей области Databricks, client_id
это идентификатор субъекта-службы Microsoft Entra и client_secret
секрет клиента OAuth, созданный на шаге 3. Назначение разрешений субъекту-службе в Azure Databricks".
Теперь для вызовов CLI в этом процессе должны быть указаны следующие значения:
- Идентификатор клиента субъекта-службы из шагов 1 или 3 — они должны совпадать. (
sp_id
в следующих примерах интерфейса командной строки.) - Имя субъекта-службы из шага 1. (
sp_name
) - Строка секрета клиента субъекта-службы из шага 1. (
sp_secret
) - Имя организации Azure DevOps. (
devops_org
) - Имя проекта Azure DevOps. (
devops_project
) - Имя репозитория Azure Repos. (
devops_repo
)
Кроме того, вам потребуется идентификатор клиента Azure (tenant_id
в следующих примерах) для подписки Azure. Следуйте этим инструкциям, чтобы получить его из портал Azure.
Теперь вы можете создать учетные данные Git из Azure CLI.
- Откройте окно командной строки с доступом к clIs Azure и Databricks.
- Выполните следующую команду Azure CLI, чтобы войти в систему в качестве субъекта-службы Microsoft Entra:
az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
- В качестве субъекта-службы Microsoft Entra запросите маркер доступа к идентификатору Microsoft Entra и назначьте его переменной:
ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
- Используйте маркер доступа для создания учетных данных Git для доступа Azure Databricks с помощью уровней разрешений, настроенных для него:
databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
- Наконец, создайте новую папку Git с помощью субъекта-службы Microsoft Entra:
databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo
Соответствующая папка Git для этого репозитория Azure DevOps теперь доступна в рабочей области Azure Databricks. Вы можете предоставить учетные данные Git для управления им из кода с помощью REST API Databricks Repos или интерфейса командной строки Databricks.
Теперь вы узнали, как создать маркер доступа идентификатора Microsoft Entra, ограниченный в Azure DevOps, и сохранить его в качестве учетных данных Git Databricks.
Рекомендации
Маркер доступа к идентификатору записи является коротким, поэтому конвейер должен обновить учетные данные Databricks Git с помощью git-credentials update
. Затем вы можете активировать запрос на вытягивание из него с помощью databricks repos update
.
Внимание
В рабочей среде требуются дополнительные меры безопасности. В рабочей среде следует хранить секрет клиента субъекта-службы и маркер OAuth Databricks в безопасном хранилище секретов, например Azure Key Vault.
См. также
Добавление учетных данных поставщика Git в рабочую область Azure Databricks
Использование субъектов-служб и управляемых удостоверений (документация по Microsoft Azure DevOps)