Библиотеки allowlist и скрипты инициализации в общих вычислительных ресурсах
В Databricks Runtime 13.3 LTS и более поздних версиях можно добавлять библиотеки и скрипты инициализации allowlist
в каталог Unity. Это позволяет пользователям использовать эти артефакты для вычислений, настроенных в режиме общего доступа.
Вы можете разрешить список каталогов или файлов, прежде чем этот каталог или файл существует. См. раздел "Отправка файлов в том каталога Unity".
Примечание.
Вы должны быть администратором хранилища метаданных или иметь MANAGE ALLOWLIST
права на изменение списка разрешений. См. раздел MANAGE ALLOWLIST.
Внимание
Библиотеки, используемые в качестве драйверов JDBC или пользовательских источников данных Spark в общих вычислительных ресурсах с поддержкой каталога Unity, требуют ANY FILE
разрешений.
Некоторые установленные библиотеки хранят данные всех пользователей в одном общем временном каталоге. Эти библиотеки могут компрометации изоляции пользователей.
Добавление элементов в список разрешений
Элементы можно добавить в allowlist
обозреватель каталога или REST API.
Чтобы открыть диалоговое окно для добавления элементов в список разрешений в обозревателе каталогов, сделайте следующее:
- В рабочей области Azure Databricks щелкните "Каталог".
- Щелкните , чтобы открыть сведения о хранилище метаданных и пользовательский интерфейс разрешений.
- Выберите допустимые скрипты JARs/Init.
- Нажмите кнопку Добавить.
Внимание
Этот параметр отображается только для достаточно привилегированных пользователей. Если вы не можете получить доступ к пользовательскому интерфейсу списка разрешений, обратитесь к администратору хранилища метаданных за помощью в библиотеках разрешенных списков и скриптах инициализации.
Добавление скрипта init в список разрешений
Выполните следующие действия в диалоговом окне списка разрешений, чтобы добавить скрипт инициализации в список разрешений:
- В поле "Тип" выберите "Скрипт Init".
- Для исходного типа выберите том или протокол хранилища объектов.
- Укажите исходный путь для добавления в список разрешений. См. сведения о том, как разрешения для путей, применяемых в списке разрешений?.
Добавление JAR-файла в список разрешений
Выполните следующие действия в диалоговом окне списка разрешений, чтобы добавить JAR-файл в список разрешений:
- Для типа выберите JAR.
- Для исходного типа выберите том или протокол хранилища объектов.
- Укажите исходный путь для добавления в список разрешений. См. сведения о том, как разрешения для путей, применяемых в списке разрешений?.
Добавление координат Maven в список разрешений
Выполните следующие действия в диалоговом окне списка разрешений, чтобы добавить координаты Maven в список разрешений:
- Для типа выберите Maven.
- Для исходного типа выберите координаты.
- Введите координаты в следующем формате:
groudId:artifactId:version
- Вы можете включить все версии библиотеки, указав следующий формат:
groudId:artifactId
- Все артефакты можно включить в группу, указав следующий формат:
groupId
- Вы можете включить все версии библиотеки, указав следующий формат:
Как разрешения на пути применяются в списке разрешений?
Список разрешений можно использовать для предоставления доступа к JAR или скриптам init, хранящимся в томах каталога Unity и хранилище объектов. Если вы добавляете путь к каталогу, а не файлу, разрешения списка разрешений распространяются на содержащиеся файлы и каталоги.
Сопоставление префиксов используется для всех артефактов, хранящихся в томах каталога Unity или хранилище объектов. Чтобы предотвратить сопоставление префиксов на определенном уровне каталога, добавьте косую черту (/
). Например, /Volumes/prod-libraries/
не будет выполнять сопоставление префикса для файлов, префиксированных с prod-libraries
помощью . Вместо этого все файлы и каталоги в /Volumes/prod-libraries/
списке разрешений добавляются.
Разрешения можно определить на следующих уровнях:
- Базовый путь для тома или контейнера хранилища.
- Каталог, вложенный в любую глубину из базового пути.
- Один файл.
Добавление пути к списку разрешений означает, что путь можно использовать только для сценариев инициализации или установки JAR-файлов. Azure Databricks по-прежнему проверяет разрешения на доступ к данным в указанном расположении.
Субъект, используемый, должен иметь READ VOLUME
разрешения на указанный том. См. SELECT.
В режиме доступа к одному пользователю используется удостоверение назначенного участника (пользователя или субъекта-службы).
В режиме общего доступа:
- Библиотеки используют удостоверение установщика библиотеки.
- Скрипты init используют удостоверение владельца кластера.
Примечание.
Режим общего доступа без изоляции не поддерживает тома, но использует то же назначение удостоверений, что и режим общего доступа.
Databricks рекомендует настроить все привилегии хранилища объектов, связанные со скриптами и библиотеками инициализацией с разрешениями только для чтения. Пользователи с разрешениями на запись в этих расположениях могут потенциально изменять код в файлах библиотеки или скриптах инициализации.
Databricks рекомендует использовать субъекты-службы идентификатора Microsoft Entra для управления доступом к JARs или скриптам инициализации, хранящимся в Azure Data Lake Storage 2-го поколения. Чтобы завершить настройку, используйте следующую связанную документацию:
Создайте субъект-службу с разрешениями на чтение и список для нужных больших двоичных объектов. См . раздел "Доступ к хранилищу" с помощью субъекта-службы и идентификатора Microsoft Entra (Azure Active Directory).
Сохраните учетные данные с помощью секретов. См. раздел "Управление секретами".
Задайте свойства в конфигурации Spark и переменных среды при создании кластера, как показано в следующем примере:
Конфигурация Spark:
spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id> spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}} spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
Переменные среды:
SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
(Необязательно) Рефакторинг скриптов инициализации с помощью azcopy или Azure CLI.
Вы можете ссылаться на переменные среды во время настройки кластера в скриптах инициации, чтобы передать учетные данные, хранящиеся в качестве секретов для проверки.
Примечание.
Разрешения списка разрешений для JAR и скриптов инициализации управляются отдельно. Если для хранения обоих типов объектов используется одинаковое расположение, необходимо добавить расположение в список разрешений для каждого из них.