Управление внешним доступом к данным в каталоге Unity

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

Совет

Сведения о чтении данных Azure Databricks с помощью Microsoft Fabric см. в статье "Использование Microsoft Fabric для чтения данных, зарегистрированных в каталоге Unity".

В этой статье описывается, как управлять доступом к данным в Azure Databricks, когда внешние обработчики обработки используют открытые API-интерфейсы каталога Unity или API Iceberg для доступа к этим данным, в частности, когда подсистемы используют функции ending учетных данных каталога Unity для получения доступа.

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

  • ИНТЕРФЕЙСы REST API Айсберга
  • Microsoft Fabric
  • duckDB
  • Apache Spark и Trino

Примечание.

Каталог Unity реализует ИНТЕРФЕЙСы REST API Iceberg через Delta Lake UniForm, альтернативный способ предоставить клиентам Iceberg доступ только для чтения к таблицам Delta в каталоге Unity. См. раздел "Использование UniForm" для чтения таблиц Delta с клиентами Iceberg.

Общие сведения о том, как использовать виртуальные серверы учетных данных и предоставлять внешний доступ к подсистеме

Если вы хотите использовать внешний модуль для доступа к данным, зарегистрированным в хранилище метаданных каталога Unity, необходимо запросить короткие учетные данные с помощью REST API каталога Unity. Процесс, с помощью которого каталог Unity предоставляет эти учетные данные, называется vending учетными данными.

Чтобы предоставить временные учетные данные, субъект Azure Databricks (пользователь, группа или субъект-служба), который выполняет запрос, должен иметь EXTERNAL USE SCHEMA привилегии на схеме, содержащей таблицу, доступ к которой требуется получить из внешнего ядра. Хранилище метаданных каталога Unity, содержащее схему, также должно быть явно включено для внешнего доступа.

Когда привилегированный субъект получил временные учетные данные, они получают строку маркера доступа и URL-адрес расположения облачного хранилища, который пользователи внешнего ядра могут использовать для доступа к объекту данных (таблице) из расположения облачного хранилища. Как учетные данные и маркер используются внешним обработчиком, относятся к внешнему обработчику и не рассматриваются здесь.

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

Требования

В этом разделе перечислены конфигурации сети, параметры хранилища метаданных каталога Unity, типы таблиц и разрешения, необходимые для безопасного доступа к объектам данных каталога Unity из внешних обработчиков с помощью открытых API каталога Unity или REST API Iceberg.

Требования к сети

  • Чтобы получить доступ к рабочей области Azure Databricks с помощью открытых API каталога Unity или REST API Iceberg, URL-адрес рабочей области должен быть доступен подсистеме, выполняющей запрос. Сюда входят рабочие области, использующие списки IP-доступа или Приватный канал Azure.
  • Чтобы получить доступ к базовому расположению облачного хранилища для объектов данных, зарегистрированных в каталоге Unity, URL-адреса хранилища, созданные API временных учетных данных каталога Unity, должны быть доступны подсистеме, выполняющей запрос. Это означает, что подсистема должна быть разрешена в списках брандмауэра и управления доступом к сети для базовых облачных учетных записей хранения.

Требования к хранилищу метаданных каталога Unity и объекту данных

  • Хранилище метаданных должно быть включено для доступа к внешним данным.
  • Во время общедоступной предварительной версии поддерживаются только таблицы.
    • Внешние таблицы поддерживают чтение и запись.
    • Управляемые таблицы можно считывать только.
  • Следующие типы таблиц не поддерживаются:
    • Таблицы с фильтрами строк или масками столбцов.
    • Таблицы, общие с помощью разностного общего доступа.
    • Федеративные таблицы Lakehouse (внешние таблицы).
    • Представления
    • Материализованные представления
    • Таблицы потоковой передачи Разностных динамических таблиц
    • Онлайн-таблицы
    • Индексы векторного поиска

Требования к разрешениям

Субъект, запрашивающий временные учетные данные, должен иметь следующее:

  • Привилегия EXTERNAL USE SCHEMA для содержащего схемы или родительского каталога.

    Эта привилегия всегда должна быть предоставлена явным образом. Только владелец родительского каталога может предоставить его. Чтобы избежать случайного EXTERNAL USE SCHEMA кражи, ALL PRIVILEGES не включает привилегию, а владельцы схем по умолчанию не имеют этой привилегии.

  • SELECT разрешение на таблицу, USE CATALOG в родительском каталоге и USE SCHEMA родительской схеме.

Включение доступа к внешним данным в хранилище метаданных

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

  1. В рабочей области Azure Databricks, подключенной к хранилищу метаданных, щелкните Значок каталога "Каталог".
  2. Значок шестеренки Щелкните значок шестеренки в верхней части области каталога и выберите хранилище метаданных.
  3. На вкладке "Сведения" включите доступ к внешним данным.

Запрос временных учетных данных для доступа к внешним данным

Чтобы запросить временные учетные данные для доступа к внешним данным, пользователь рабочей области, который соответствует приведенным выше требованиям, должен использовать /api/2.1/unity-catalog/temporary-table-credentials API.

Примечание.

Вы можете получить список таблиц, поддерживающих управление учетными данными, вызвав API ListTables с включенным параметром include_manifest_capabilities . Только таблицы помечены HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT или HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT имеют право на ссылку в API временных табличных учетных данных. См. раздел GET /api/2.1/unity-catalog/tables.

Например:

curl -X POST -H "Authentication: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'

Дополнительные сведения см. в статье POST /api/2.1/unity-catalog/temporary-table-credentials в справочнике по REST API Azure Databricks.