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


Авторизация доступа к ресурсам Azure Databricks

В этом разделе рассматриваются основные подходы к осуществлению защищенных вызовов интерфейса командной строки (CLI) Azure Databricks или REST API с использованием учетных данных учетной записи Azure Databricks, таких как учетные записи пользователей или служебные субъекты.

Авторизация для интерфейса командной строки Azure Databricks и API

Чтобы получить доступ к ресурсу Azure Databricks с помощью интерфейса командной строки Databricks или REST API, клиенты должны авторизоваться с помощью учетной записи Azure Databricks. Эта учетная запись должна иметь разрешения на доступ к ресурсу, который можно настроить администратором Azure Databricks или учетной записью пользователя с правами администратора.

Существует два типа учетных записей, которые можно использовать в зависимости от способа доступа к ресурсам Azure Databricks:

  • учетная запись пользователя: используйте эту функцию для интерактивного ввода команд Интерфейса командной строки Azure Databricks или вызовов REST API.
  • субъект-служба: использовать эту функцию для автоматизации команд Интерфейса командной строки Azure Databricks или вызовов REST API без взаимодействия с человеком.

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

  • Если вы используете Azure Databricks, вы также можете использовать учетную запись службы MS Entra для авторизации доступа к вашему аккаунту или рабочей области в Azure Databricks. Однако Databricks рекомендует использовать сервисную учетную запись Databricks с предоставленной авторизацией OAuth вместо авторизации сервисной учетной записи MS Entra. Это связано с тем, что авторизация Databricks использует маркеры доступа OAuth, которые являются более надежными при авторизации только с помощью Azure Databricks.

Дополнительные сведения об использовании субъекта-службы MS Entra для доступа к ресурсам Databricks см. в разделе проверки подлинности субъекта-службы MS Entra.

Получение маркера доступа

Учетные данные вашей учетной записи представлены токеном безопасного доступа, который вы предоставляете непосредственно или косвенно команде CLI или вызову API.

Чтобы безопасно запустить команду CLI Databricks или запрос API, требующий авторизованного доступа к учетной записи или рабочей области, необходимо предоставить маркер доступа на основе допустимых учетных данных учетной записи Azure Databricks.

В следующей таблице показаны методы авторизации, доступные для учетной записи Azure Databricks.

методы авторизации Azure Databricks

Так как средства и пакеты SDK Azure Databricks работают с одним или несколькими поддерживаемыми методами авторизации Azure Databricks, вы можете выбрать лучший метод авторизации для вашего варианта использования. Дополнительные сведения см. в документации по инструменту или пакету SDK в локальных средств разработки.

Пользователям Azure Databricks может потребоваться доступ к определенным ресурсам Azure, которые не управляются непосредственно в учетной записи Databricks. Методы доступа к этим ресурсам также включены в эту таблицу. Для доступа к ресурсам Azure используется управляемое удостоверение службы Azure (MSI) или идентификатор MS Entra (в зависимости от вашего сценария), а не учетные данные учетной записи Azure Databricks.

Метод Description Вариант использования
Databricks OAuth для субъектов-служб Кратковременные маркеры OAuth для субъектов-служб. Сценарии авторизации без участия пользователя, такие как полностью автоматизированные рабочие процессы и процессы непрерывной интеграции и доставки (CI/CD).
Databricks OAuth для пользователей Кратковременные маркеры OAuth для пользователей. В сценариях авторизации, где вы используете веб-браузер или другой интерактивный метод для авторизации с помощью Databricks при появлении запроса.
личные маркеры доступа Databricks (PATs) Кратковременные или длительные маркеры для пользователей или субъектов-служб. Используйте это только в тех случаях, когда целевое средство не поддерживает OAuth.
авторизация удостоверений управляемой службы Azure Маркеры идентификатора Microsoft Entra для управляемых удостоверений Azure. Используйте только ресурсы Azure, поддерживающие управляемые удостоверения, такие как виртуальные машины Azure.
авторизация субъекта-службы Microsoft Entra ID Маркеры идентификатора Microsoft Entra для субъектов-служб Microsoft Entra ID. Используйте только ресурсы Azure, поддерживающие маркеры идентификатора Microsoft Entra и не поддерживающие управляемые удостоверения, такие как Azure DevOps.
авторизация Azure CLI Маркеры идентификатора Microsoft Entra для пользователей или субъектов-служб Идентификатора Microsoft Entra. Используйте для авторизации доступа к ресурсам Azure и Azure Databricks с помощью Azure CLI.
авторизация пользователя Microsoft Entra ID Маркеры идентификатора Microsoft Entra для пользователей. Используйте только с ресурсами Azure, поддерживающими только маркеры идентификатора Microsoft Entra. Databricks не рекомендует создавать маркеры идентификатора Microsoft Entra для пользователей Azure Databricks вручную.

Какой вариант авторизации следует выбрать?

Azure Databricks предоставляет 2 варианта авторизации или аутентификации с использованием токена доступа.

  • Токены доступа на основе OAuth 2.0.
  • Личные токены доступа (PATs).

Заметка

Azure Databricks настоятельно рекомендует использовать OAuth для авторизации, так как маркеры OAuth автоматически обновляются по умолчанию и не требуют прямого управления маркером доступа, повышая безопасность при перехвате маркеров и нежелательном доступе.

Так как OAuth создает и управляет токеном доступа, вы предоставляете URL конечной точки токена OAuth, идентификатор клиента и секрет, который вы создаете в своей рабочей области Azure Databricks, вместо того, чтобы напрямую предоставлять строку токена. Выберите PATs только при интеграции 3-стороннего средства или службы, неподдерживаемой проверкой подлинности клиента Azure Databricks или не поддерживающей OAuth.

Как использовать OAuth для авторизации доступа к ресурсам Azure Databricks?

Azure Databricks предоставляет единую проверку подлинности клиента для авторизации с помощью набора переменных среды по умолчанию, которые можно задать для определенных значений учетных данных. Это помогает упростить и безопасно работать, так как эти переменные среды относятся к среде, которая будет выполнять команды Интерфейса командной строки Azure Databricks или вызывать API Azure Databricks.

  • Для авторизации учетной записи пользователя процесс аутентификации Azure Databricks OAuth (создание и управление маркерами доступа) обрабатывается с помощью единой аутентификации клиента Databricks, если средства и пакеты SDK реализуют его стандарт. Если они нет, вы можете вручную создать проверяющий код OAuth и вызвать пару вызовов для использования непосредственно в командах Интерфейса командной строки Azure Databricks и запросах API. См . шаг 1. Создание проверки кода OAuth и пары вызовов кода.
  • Для авторизации служебного принципала OAuth Azure Databricks требует, чтобы запрашивающая сторона предоставила учетные данные клиента вместе с URL конечной точки маркера, где запрос будет авторизован. (Это обрабатывается при использовании средств Azure Databricks и пакетов SDK, поддерживающих унифицированную проверку подлинности клиента Databricks.) Учетные данные включают уникальный идентификатор клиента и секрет клиента. Клиент, являющийся субъектом-службой Databricks, который будет запускать код, должен быть назначен рабочим областям Databricks. После назначения субъекта-службы рабочим областям, к которым он будет обращаться, вы предоставляете идентификатор клиента и секрет клиента, который будет задан с определенными переменными среды.

Ниже перечислены эти переменные среды:

Переменная среды Description
DATABRICKS_HOST Эта переменная среды имеет URL-адрес консоли учетной записи Azure Databricks (http://accounts.cloud.databricks.com) или URL-адрес рабочей области Azure Databricks (https://{workspace-id}.cloud.databricks.com). Выберите тип URL-адреса узла на основе типа операций, которые будут выполняться в коде. В частности, если вы используете команды CLI уровня учетной записи Azure Databricks или запросы REST API, задайте эту переменную в URL-адрес учетной записи Azure Databricks. Если вы используете команды CLI уровня рабочей области Azure Databricks или запросы REST API, используйте URL-адрес рабочей области Azure Databricks.
DATABRICKS_ACCOUNT_ID Используется для операций с учетной записью Azure Databricks. Это идентификатор учетной записи Azure Databricks. Чтобы получить его, см. статью "Найти идентификатор учетной записи".
DATABRICKS_CLIENT_ID (Только для OAuth учетной записи службы) Идентификатор клиента, который был назначен вам при создании учетной записи службы.
DATABRICKS_CLIENT_SECRET (Только субъект-служба OAuth) Секрет клиента, созданный при создании субъекта-службы.

Эти параметры можно задать напрямую или с помощью профиля конфигурации Databricks (.databrickscfg) на клиентском компьютере.

Чтобы использовать маркер доступа OAuth, ваша рабочая область Azure Databricks или администратор учетной записи должны предоставить учетную запись пользователя или субъект-службу CAN USE привилегию для учетной записи и рабочих областей, к которым будет доступ ваш код.

Дополнительные сведения о настройке авторизации OAuth для клиента и проверке параметров авторизации для конкретного поставщика облачных служб см. в статье унифицированная проверка подлинности клиента.

Проверка подлинности для сторонних служб и средств

Если вы пишете код, который обращается к сторонним службам, средствам или пакетам SDK, необходимо использовать механизмы проверки подлинности и авторизации, предоставляемые сторонним поставщиком. Однако если необходимо предоставить стороннему инструменту, пакету SDK или службе доступ к учетной записи Azure Databricks или ресурсам рабочей области, Databricks предоставляет следующую поддержку:

  • Поставщик Databricks Terraform: это средство может получить доступ к API Azure Databricks из Terraform от вашего имени с помощью учетной записи пользователя Azure Databricks. Дополнительные сведения см. в статье "Подготовка субъекта-службы с помощью Terraform".

  • Поставщики Git, такие как GitHub, GitLab и Bitbucket, могут получить доступ к API Azure Databricks с помощью субъекта-службы Databricks. Дополнительные сведения см. в разделе "Субъекты-службы" для CI/CD.

  • Jenkins может получить доступ к API Azure Databricks с помощью субъекта-службы Databricks. Дополнительные сведения см. в разделе CI/CD с Jenkins в Azure Databricks.

  • Azure DevOps может получить доступ к API Azure Databricks, используя учетную запись службы на базе MS Entra ID. Дополнительные сведения см. в статье Аутентификация с помощью Azure DevOps в Databricks.

Профили конфигурации Azure Databricks

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

Дополнительные сведения см. в профилях конфигурации Azure Databricks.