Использование учетных данных службы каталога Unity для подключения к внешним облачным службам
В этой статье описывается, как использовать учетные данные службы в каталоге Unity для подключения к внешним облачным службам. Объект учетных данных службы в каталоге Unity инкапсулирует долгосрочные облачные учетные данные, предоставляющие доступ к внешней облачной службе, к которым пользователи должны подключаться из Azure Databricks.
См. также:
- Управление доступом к внешним облачным службам с помощью учетных данных службы.
- Управление учетными данными службы
Подготовка к работе
Прежде чем использовать учетные данные службы для подключения к внешней облачной службе, необходимо:
Рабочая область Azure Databricks, включенная для каталога Unity.
Вычислительный ресурс, который находится в Databricks Runtime 16.2 или более поздней версии.
Хранилища SQL не поддерживаются.
Общедоступная предварительная версия учетных данных службы доступна в Databricks Runtime 15.4 LTS и более поздних версиях с поддержкой Python, но не поддерживает Scala.
Учетные данные службы, созданные в хранилище метаданных каталога Unity, который предоставляет доступ к облачной службе.
ACCESS
Привилегия для учетных данных службы или владения учетными данными службы.
Использование учетных данных службы в коде
В этом разделе приведены примеры использования учетных данных службы в записной книжке. Замените значения заполнителей. Эти примеры не обязательно показывают установку необходимых библиотек, которые зависят от клиентской службы, к которой требуется получить доступ.
Пример настройки клиента 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)
Пример Scala: настройте клиент Azure SDK для использования определенных учетных данных службы
import com.azure.security.keyvault.secrets.{SecretClient, SecretClientBuilder}
// Get credentials from dbutils
val credential = dbutils.credentials.getServiceCredentialsProvider("your-service-credential")
// URL of the Key Vault
val vaultUrl = "https://your-keyvault-name.vault.azure.net/"
// Create the SecretClient
val client: SecretClient = new SecretClientBuilder()
.vaultUrl(vaultUrl)
.credential(credential)
.buildClient()
Указание учетных данных службы по умолчанию для вычислительного ресурса
При необходимости можно указать учетные данные службы по умолчанию для вычислительного кластера всех целей или заданий, задав переменную среды. По умолчанию пакет 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
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')
Scala
Для Scala вы заменяете название учетных данных службы на null
.
val azureCredentials = dbutils.credentials.getServiceCredentialsProvider(null).asInstanceOf[TokenCredential]