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


Использование субъекта-службы 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, так как он не будет использоваться в этой конфигурации.)

Скопируйте их куда-то вниз, так как вы будете использовать их в будущих шагах. После успешного завершения процесса в этой документации защитите или удалите эти сведения.

Шаг 2. Настройка разрешений Azure DevOps для субъекта-службы MS Entra

Сначала необходимо предоставить субъекту-службе MS Entra разрешение на доступ к ресурсам Azure DevOps. Для этого необходимо использовать портал Azure DevOps.

  1. Войдите в учетную запись Azure DevOps и перейдите к проекту.

  2. В разделе "Разрешения для проекта>" щелкните "Читатели".

    Содержимое панели

  3. Перейдите на вкладку "Члены" , нажмите кнопку "Добавить", а затем добавьте имя созданного субъекта-службы MS Entra.

  4. В консоли вернитесь к уровню организации Azure DevOps и выберите параметры организации в нижней части левой панели.

  5. Щелкните "Пользователи>добавить пользователя" и настройте доступ для субъекта-службы следующим образом:

    • Добавьте субъект-службу MS Entra с помощью созданного ранее идентификатора.
    • Настройте доступ субъекта-службы к минимальному уровню, который он должен выполнять операции в Azure Repos. Как правило, достаточно разрешений уровня "Базовый ". Если вы не уверены, какой уровень следует использовать, обратитесь к администратору организации Azure DevOps.
    • Добавьте субъект-службу в проект Azure DevOps.
    • Назначьте субъект-службу группе участников проекта.

    Содержимое панели

Шаг 3. Назначение разрешений субъекту-службе в Azure Databricks

Необходимо также назначить разрешения в Azure Databricks субъекту-службе Microsoft Entra.

  1. Войдите в консоль администрирования учетной записи Azure Databricks для своей учетной записи.
  2. Щелкните " Пользователи" и "Группы".
  3. Перейдите на вкладку "Субъекты-службы" и нажмите кнопку "Добавить субъект-службу". Вкладка
  4. На странице "Добавление субъекта-службы" щелкните управляемый идентификатор Microsoft Entra ID, а затем добавьте идентификатор приложения Microsoft Entra и имя субъекта-службы на шаге 1. Создание субъекта-службы Microsoft Entra". Нажмите кнопку "Добавить ", когда закончите работу. Диалоговое окно
  5. Щелкните добавленный субъект-службу Microsoft Entra, чтобы просмотреть вкладку сведений о субъекте.
  6. Щелкните "Создать секрет " в левой нижней части страницы, чтобы создать секрет OAuth. Этот секрет позволяет выполнять проверку подлинности вызовов API Azure Databricks с помощью интерфейса командной строки Databricks.
  7. Скопируйте строку секрета и идентификатор клиента, а затем нажмите кнопку "Готово". Вы будете использовать оба в следующем шаге. Нажмите кнопку Готово. Диалоговое окно создания секрета в консоли администрирования учетной записи Databricks
  8. На левой боковой панели щелкните "Рабочие области", выберите рабочую область и перейдите на вкладку "Разрешения ".
  9. Предоставьте субъекту-службе разрешения "Пользователь" и нажмите кнопку "Добавить разрешения".

Внимание

Если вкладка "Разрешения" отключена, рабочая область 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.

  1. Откройте окно командной строки с доступом к clIs Azure и Databricks.
  2. Выполните следующую команду Azure CLI, чтобы войти в систему в качестве субъекта-службы Microsoft Entra: az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
  3. В качестве субъекта-службы Microsoft Entra запросите маркер доступа к идентификатору Microsoft Entra и назначьте его переменной: ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
  4. Используйте маркер доступа для создания учетных данных Git для доступа Azure Databricks с помощью уровней разрешений, настроенных для него: databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
  5. Наконец, создайте новую папку 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.

См. также