Прочитать на английском

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


Авторизация доступа к ресурсам 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 CLI или вызовов 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.

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

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

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

Переменная среды Описание
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 () на клиентском компьютере.

Чтобы использовать токен доступа 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 Databricks

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

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