Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как использовать учетные данные службы в каталоге Unity для подключения к внешним облачным службам. Объект учетных данных службы в каталоге Unity инкапсулирует долгосрочные облачные учетные данные, предоставляющие доступ к внешней облачной службе, к которым пользователи должны подключаться из Azure Databricks.
См. также:
Перед началом
Прежде чем использовать учетные данные службы для подключения к внешней облачной службе, необходимо:
Рабочая область Azure Databricks с поддержкой Unity Catalog.
Вычислительный ресурс, который находится в Databricks Runtime 16.2 или более поздней версии.
Хранилища SQL не поддерживаются.
Общедоступная предварительная версия учетных данных службы доступна в Databricks Runtime 15.4 LTS и более поздних версиях с поддержкой Python, но не поддерживает Scala.
Сервисные учетные данные, созданные в хранилище метаданных Unity Catalog и предоставляющие доступ к облачному сервису.
ACCESSПривилегия на учетные данные службы или владение учетными данными службы.
Используйте учетные данные службы в своем коде
В этом разделе приведены примеры использования учетных данных службы в записной книжке. Замените значения заполнителей. Эти примеры не обязательно показывают установку необходимых библиотек, которые зависят от клиентской службы, к которой требуется получить доступ.
Поддерживается только Python.
Примечание.
API, специфичный для UDF, для учетных данных службы:
В пользовательских функциях используйте databricks.service_credentials.getServiceCredentialsProvider() для доступа к учетным данным службы.
Это отличается от функции, используемой dbutils.credentials.getServiceCredentialsProvider() в записных книжках, которая недоступна в контекстах выполнения UDF.
- Учетные данные службы в Scalar Python UDF для скалярных определяемых пользователем функций в Python
- Учетные данные сервиса в пакетных UDF Python для каталога Unity для пакетных пользовательских функций Python
Пример настройки клиента Azure SDK для использования учетных данных определенной службы в Python
from azure.keyvault.secrets import SecretClient # example Azure SDK client
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)
Указание учетных данных службы по умолчанию для вычислительного ресурса
При необходимости можно указать учетные данные службы по умолчанию для вычислительного кластера всех целей или заданий, задав переменную среды. По умолчанию пакет SDK использует учетные данные службы, если аутентификация не задана. Пользователям по-прежнему требуются ACCESS учетные данные этой службы для подключения к внешней облачной службе. Databricks не рекомендует этот подход, поскольку он делает ваш код менее переносимым по сравнению с явным указанием имени учетных данных службы в коде.
Примечание.
Бессерверные вычислительные ресурсы и хранилища SQL не поддерживают переменные среды, поэтому они не поддерживают учетные данные службы по умолчанию.
Откройте страницу редактирования кластера.
Щелкните "Дополнительно" в нижней части страницы и перейдите на вкладку Spark .
Добавьте следующую запись в переменные среды, заменив
<your-service-credential>:DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME=<your-service-credential>
Следующие примеры кода не указывают учетные данные службы. Вместо этого они используют учетные данные службы, указанные в переменной среды DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME:
Питон
Если вы используете учетные данные службы по умолчанию, вам не нужно указывать учетные данные в качестве аргумента:
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
credential = DefaultAzureCredential()
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)
Сравните этот пример с примером в Python: настройте клиент Azure SDK для использования определенных учетных данных службы, который не импортирует DefaultAzureCredential и добавляет спецификацию учетных данных:
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')