Библиотеки allowlist и скрипты инициализации в общих вычислительных ресурсах

В Databricks Runtime 13.3 LTS и более поздних версиях можно добавлять библиотеки и скрипты инициализации allowlist в каталог Unity. Это позволяет пользователям использовать эти артефакты для вычислений, настроенных в режиме общего доступа.

Вы можете разрешить список каталогов или файлов, прежде чем этот каталог или файл существует. См. раздел "Отправка файлов в том каталога Unity".

Примечание.

Вы должны быть администратором хранилища метаданных или иметь MANAGE ALLOWLIST права на изменение списка разрешений. См. раздел MANAGE ALLOWLIST.

Внимание

Библиотеки, используемые в качестве драйверов JDBC или пользовательских источников данных Spark в общих вычислительных ресурсах с поддержкой каталога Unity, требуют ANY FILE разрешений.

Некоторые установленные библиотеки хранят данные всех пользователей в одном общем временном каталоге. Эти библиотеки могут компрометации изоляции пользователей.

Добавление элементов в список разрешений

Элементы можно добавить в allowlistОбозреватель каталога или REST API.

Чтобы открыть диалоговое окно для добавления элементов в список разрешений в Обозреватель каталога, сделайте следующее:

  1. В рабочей области Azure Databricks щелкните Значок каталога"Каталог".
  2. Щелкните Значок шестеренки , чтобы открыть сведения о хранилище метаданных и пользовательский интерфейс разрешений.
  3. Выберите допустимые скрипты JARs/Init.
  4. Нажмите кнопку Добавить.

Внимание

Этот параметр отображается только для достаточно привилегированных пользователей. Если вы не можете получить доступ к пользовательскому интерфейсу списка разрешений, обратитесь к администратору хранилища метаданных за помощью в библиотеках разрешенных списков и скриптах инициализации.

Добавление скрипта init в список разрешений

Выполните следующие действия в диалоговом окне списка разрешений, чтобы добавить скрипт инициализации в список разрешений:

  1. В поле "Тип" выберите "Скрипт Init".
  2. Для исходного типа выберите том или протокол хранилища объектов.
  3. Укажите исходный путь для добавления в список разрешений. См. сведения о том, как разрешения для путей, применяемых в списке разрешений?.

Добавление JAR-файла в список разрешений

Выполните следующие действия в диалоговом окне списка разрешений, чтобы добавить JAR-файл в список разрешений:

  1. Для типа выберите JAR.
  2. Для исходного типа выберите том или протокол хранилища объектов.
  3. Укажите исходный путь для добавления в список разрешений. См. сведения о том, как разрешения для путей, применяемых в списке разрешений?.

Добавление координат Maven в список разрешений

Выполните следующие действия в диалоговом окне списка разрешений, чтобы добавить координаты Maven в список разрешений:

  1. Для типа выберите Maven.
  2. Для исходного типа выберите координаты.
  3. Введите координаты в следующем формате: groudId:artifactId:version
    • Вы можете включить все версии библиотеки, указав следующий формат: groudId:artifactId
    • Все артефакты можно включить в группу, указав следующий формат: groupId

Как разрешения на пути применяются в списке разрешений?

Список разрешений можно использовать для предоставления доступа к JAR или скриптам init, хранящимся в томах каталога Unity и хранилище объектов. Если вы добавляете путь к каталогу, а не файлу, разрешения списка разрешений распространяются на содержащиеся файлы и каталоги.

Сопоставление префиксов используется для всех артефактов, хранящихся в томах каталога Unity или хранилище объектов. Чтобы предотвратить сопоставление префиксов на определенном уровне каталога, добавьте косую черту (/). Например: /Volumes/prod-libraries/.

Разрешения можно определить на следующих уровнях:

  1. Базовый путь для тома или контейнера хранилища.
  2. Каталог, вложенный в любую глубину из базового пути.
  3. Один файл.

Добавление пути к списку разрешений означает, что путь можно использовать только для сценариев инициализации или установки JAR-файлов. Azure Databricks по-прежнему проверка разрешения на доступ к данным в указанном расположении.

Субъект, используемый, должен иметь READ VOLUME разрешения на указанный том. Щелкните SELECT.

В режиме доступа к одному пользователю используется удостоверение назначенного участника (пользователя или субъекта-службы).

В режиме общего доступа:

  • Библиотеки используют удостоверение установщика библиотеки.
  • Скрипты init используют удостоверение владельца кластера.

Примечание.

Режим общего доступа без изоляции не поддерживает тома, но использует то же назначение удостоверений, что и режим общего доступа.

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

Databricks рекомендует использовать субъекты-службы идентификатора Microsoft Entra для управления доступом к JARs или скриптам инициализации, хранящимся в Azure Data Lake Storage 2-го поколения. Чтобы завершить настройку, используйте следующую связанную документацию:

  1. Создайте субъект-службу с разрешениями на чтение и список для нужных больших двоичных объектов. См . раздел "Доступ к хранилищу" с помощью принципа службы и идентификатора Microsoft Entra (Azure Active Directory).

  2. Сохраните учетные данные с помощью секретов. См. раздел Секреты.

  3. Задайте свойства в конфигурации 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>}}
    
  4. (Необязательно) Рефакторинг скриптов инициализации с помощью azcopy или Azure CLI.

    Вы можете ссылаться на переменные среды во время настройки кластера в скриптах инициации, чтобы передать учетные данные, хранящиеся в качестве секретов для проверки.

Примечание.

Разрешения списка разрешений для JAR и скриптов инициализации управляются отдельно. Если для хранения обоих типов объектов используется одинаковое расположение, необходимо добавить расположение в список разрешений для каждого из них.