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


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

Аутентификация с использованием управляемых удостоверений Azure использует управляемые удостоверения для ресурсов Azure (ранее Managed Service Identities (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.
  • Для операций с учетной записью моментально используйте идентификатор учетной записи 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_HOST, задайте для URL-адреса вашей рабочей области в Azure Databricks значение, например, .
  • ARM_CLIENT_ID
  • ARM_USE_MSI, задано значение true.

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

интерфейс командной строки (CLI)

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

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

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

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

Подключиться

Примечание.

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

VS Code

Примечание.

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

Терраформирование

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

provider "databricks" {
  alias = "accounts"
}

Для прямой конфигурации (замените retrieve заполнители собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например, HashiCorp Vault). См. также Провайдер 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). См. также Провайдер Vault. В этом случае хостом является URL-адрес рабочей области Azure Databricks , например https://adb-1234567890123456.7.azuredatabricks.net:

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 вместо URL-адреса рабочей области host. В этом случае объект идентификации должен иметь как минимум права участника или владельца на ресурсе Azure для рабочей области Azure Databricks.

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

Питон

Примечание.

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

Ява

Примечание.

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

Вперёд!

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

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 , например https://adb-1234567890123456.7.azuredatabricks.net:

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

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

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