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


Проверка подлинности управляемых удостоверений Azure

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

Примечание.

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

Аутентификация с помощью управляемых удостоверений Azure поддерживается только между ресурсами, которые правильно настроены и поддерживают эти удостоверения, такими как виртуальные машины Azure (Azure VMs), и учетными записями и рабочими пространствами Azure Databricks.

Чтобы настроить проверку подлинности управляемых удостоверений Azure с помощью Azure Databricks, необходимо задать следующие связанные переменные среды, поля, .databrickscfg поля Terraform или Config поля на правильно поддерживаемой виртуальной машине Azure:

  • Хост Azure Databricks.
    • Для операций с учетной записью укажите https://accounts.azuredatabricks.net.
    • Для операций с рабочей областью укажите URL-адрес рабочей области, например https://adb-1234567890123456.7.azuredatabricks.net.
  • Для операций с учетной записью моментально используйте идентификатор учетной записи Azure Databricks.
  • Идентификатор арендатора управляемого удостоверения.
  • Идентификатор клиента управляемого удостоверения.
  • ИД ресурса Azure.
  • Задайте для Azure значение true для управляемых удостоверений.

Чтобы выполнить проверку подлинности управляемых удостоверений Azure с помощью Azure Databricks, интегрируйте следующий код, исходя из используемого инструмента или набора средств разработки (SDK):

Окружающая среда

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

Для операций на уровне учетной записи задайте следующие переменные среды:

  • DATABRICKS_HOST, установите значение URL-адреса консоли учетной записи Azure Databricks. https://accounts.azuredatabricks.net
  • DATABRICKS_ACCOUNT_ID
  • ARM_CLIENT_ID
  • ARM_USE_MSI, задано значение true.

Для операций на уровне рабочей области задайте следующие переменные среды:

Для операций на уровне рабочей области, если целевое удостоверение еще не добавлено в рабочую область, укажите DATABRICKS_AZURE_RESOURCE_ID вместе с идентификатором ресурса Azure для рабочей области Azure Databricks вместо DATABRICKS_HOST URL-адреса рабочей области. В этом случае объект идентификации должен иметь как минимум права участника или владельца на ресурсе Azure для рабочей области Azure Databricks.

Профиль

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

Для операций на уровне учетной записи задайте следующие значения в .databrickscfg файле. В этом случае URL-адрес консоли учетной записи Azure Databricks:https://accounts.azuredatabricks.net

[<some-unique-configuration-profile-name>]
host            = <account-console-url>
account_id      = <account-id>
azure_client_id = <azure-managed-identity-application-id>
azure_use_msi   = true

Для операций на уровне рабочей области задайте следующие значения в .databrickscfg файле. В этом случае хостом является URL-адрес рабочей области Azure Databricks , например https://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host            = <workspace-url>
azure_client_id = <azure-managed-identity-application-id>
azure_use_msi   = true

Для операций на уровне рабочей области, если целевое удостоверение еще не добавлено в рабочую область, укажите azure_workspace_resource_id вместе с идентификатором ресурса Azure для рабочей области Azure Databricks вместо host URL-адреса рабочей области. В этом случае, целевой идентификатор должен иметь по крайней мере разрешения уровня Участника или Владельца на ресурс Azure рабочей области Azure Databricks.

CLI

Для интерфейса командной строки Databricks выполните одно из следующих действий:

  • Задайте переменные среды, указанные в разделе "Среда".
  • Задайте значения в файле, как указано в разделе "Профиль" этой .databrickscfg статьи.

Переменные среды всегда имеют приоритет над значениями в .databrickscfg файле.

См. также проверку подлинности управляемых удостоверений Azure.

Connect

Примечание.

Databricks Connect использует пакет SDK Databricks для Python для проверки подлинности. Пакет SDK Databricks для Python еще не реализовал проверку подлинности управляемых удостоверений Azure.

VS Code

Примечание.

Расширение Databricks для Visual Studio Code пока не поддерживает проверку подлинности управляемых удостоверений Azure.

Terraform

Для операций на уровне учетной записи, для аутентификации по умолчанию:

provider "databricks" {
  alias = "accounts"
}

Для прямой конфигурации (замените retrieve заполнители собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например HashiCorp Vault. См. также поставщик хранилища. В этом случае URL-адрес консоли учетной записи Azure Databricks:https://accounts.azuredatabricks.net

provider "databricks" {
  alias           = "accounts"
  host            = <retrieve-account-console-url>
  account_id      = <retrieve-account-id>
  azure_client_id = <retrieve-azure-client-id>
  azure_use_msi   = true
}

Для операций на уровне рабочей области для проверки подлинности по умолчанию:

provider "databricks" {
  alias = "workspace"
}

Для прямой конфигурации (замените retrieve заполнители собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например HashiCorp Vault. См. также поставщик хранилища. В этом случае узел является URL-адресом Azure Databricks

provider "databricks" {
  alias           = "workspace"
  host            = <retrieve-workspace-url>
  azure_client_id = <retrieve-azure-client-id>
  azure_use_msi   = true
}

Для операций на уровне рабочей области, если целевое удостоверение еще не добавлено в рабочую область, укажите azure_workspace_resource_id вместе с идентификатором ресурса Azure для рабочей области Azure Databricks вместо host URL-адреса рабочей области. В этом случае целевая идентичность должна иметь по крайней мере права доступа участника или владельца на ресурсе Azure для рабочей области Azure Databricks.

Дополнительные сведения о проверке подлинности с помощью поставщика Databricks Terraform см. в разделе "Проверка подлинности".

Python

Примечание.

Пакет SDK Databricks для Python еще не реализовал проверку подлинности управляемых удостоверений Azure.

Java

Примечание.

Пакет SDK Databricks для Java еще не реализовал проверку подлинности управляемых удостоверений Azure.

Go

Для операций на уровне учетной записи с проверкой подлинности по умолчанию:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Для прямой конфигурации (замените retrieve заполнители собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например Azure KeyVault). В этом случае URL-адрес консоли учетной записи Azure Databricks:https://accounts.azuredatabricks.net

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:          retrieveAccountConsoleUrl(),
  AccountId:     retrieveAccountId(),
  AzureClientId: retrieveAzureClientId(),
  AzureUseMSI:   true,
}))
// ...

Для операций на уровне рабочей области и для проверки подлинности по умолчанию:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Для прямой конфигурации (замените retrieve заполнители собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например Azure KeyVault). В этом случае узел является URL-адресом Azure Databricks

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:          retrieveWorkspaceUrl(),
  AzureClientId: retrieveAzureClientId(),
  AzureUseMSI:   true,
}))
// ...

Для операций на уровне рабочей области, если целевое удостоверение еще не добавлено в рабочую область, укажите AzureResourceID вместе с идентификатором ресурса Azure для рабочей области Azure Databricks вместо Host URL-адреса рабочей области. В этом случае целевое удостоверение должно иметь по крайней мере разрешения участника или владельца в ресурсе Azure для рабочей области Azure Databricks.

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