Provisión de credenciales del Catálogo Unity para el acceso a sistemas externos
Importante
Esta característica está en versión preliminar pública.
Sugerencia
Para obtener información sobre cómo leer datos de Azure Databricks mediante Microsoft Fabric, consulte Uso de Microsoft Fabric para leer datos registrados en el catálogo de Unity.
En este artículo se describe cómo la funcionalidad de vending de credenciales de Unity Catalog admite el acceso a los datos de Azure Databricks desde motores de procesamiento externos.
La distribución de credenciales admite sistemas externos que se conectan al catálogo de Unity a través de la API REST de Unity y del catálogo REST de Iceberg. Consulte Leer tablas de Databricks de clientes Delta y Acceder a datos de Databricks mediante sistemas externos.
¿Qué es la emisión de credenciales de Unity Catalog?
La emisión de credenciales concede credenciales de corta duración mediante la API REST de Unity Catalog. Las credenciales otorgadas heredan los privilegios del principal de Azure Databricks utilizado para configurar la integración. Estas credenciales conceden a los clientes externos acceso a los datos registrados en el metastore del catálogo de Unity.
Nota
La distribución de credenciales de Unity Catalog admite el acceso de solo lectura a los datos de Unity Catalog. Algunos clientes admiten el acceso a las tablas respaldadas por Delta Lake, mientras que otras requieren habilitar lecturas de Iceberg (UniForm) en tablas. Consulte Leer tablas Delta con clientes de Iceberg.
Para que se conceda una credencial temporal, el principal de Azure Databricks (usuario, grupo o principal de servicio) que realiza la solicitud debe tener el privilegio EXTERNAL USE SCHEMA
en el esquema que contiene la tabla a la que necesita acceder desde el motor externo. El metastore de catálogos de Unity que contiene el esquema también debe habilitarse explícitamente para el acceso externo. Consulte Habilitar el acceso de datos externos a Unity Catalog.
Las credenciales incluyen una cadena de token de acceso de corta duración y una dirección URL de ubicación de almacenamiento en la nube que el motor externo puede usar para acceder a los datos y metadatos de la tabla desde la ubicación de almacenamiento en la nube.
Requisitos
- Debe configurar el acceso externo en el metastore y otorgar
EXTERNAL USE SCHEMA
al principal que configura la conexión. Ver Habilitar el acceso a datos externos en Unity Catalog. - Para acceder al área de trabajo de Azure Databricks mediante las API abiertas del Catálogo de Unity o las API REST de Iceberg, la URL del área de trabajo debe ser accesible para el motor que realiza la solicitud. Esto incluye áreas de trabajo que usan listas de acceso IP o Azure Private Link.
- Para acceder a la ubicación de almacenamiento en la nube subyacente para objetos de datos registrados en el catálogo de Unity, las direcciones URL de almacenamiento generadas por la API de credenciales temporales del catálogo de Unity deben ser accesibles para el motor que realiza la solicitud. Esto significa que el motor debe estar habilitado en las listas de control de acceso de red y del firewall para las cuentas subyacentes de almacenamiento en la nube.
Solicitud de una credencial temporal para el acceso a datos externos
El soporte para la gestión de credenciales varía según el cliente externo. Donde sea compatible, el cliente debe aprovechar automáticamente las credenciales proporcionadas cuando se configura una conexión.
En esta sección se proporciona un ejemplo de cómo llamar explícitamente al punto de conexión de la API de dispensación de credenciales. Es posible que algunos clientes externos necesiten establecer explícitamente configuraciones para acceder a datos y metadatos en el almacenamiento de objetos en la nube que respaldan las tablas del catálogo de Unity. Puede usar los valores devueltos por el suministro de credenciales para configurar el acceso.
Nota
Puede recuperar una lista de tablas que admiten la provisión de credenciales invocando la API ListTables con la opción habilitada include_manifest_capabilities
. Solo las tablas marcadas HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT
o HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT
son aptas para referencia en la API temporary-table-credentials. Consulte GET /api/2.1/unity-catalog/tables.
En el ejemplo siguiente curl
se solicita explícitamente una credencial temporal para el acceso a datos externos. Esta solicitud debe completarse mediante un principal del área de trabajo con privilegios suficientes.
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>"}'
Para obtener más información, consulte POST /api/2.1/unity-catalog/temporary-table-credentials en la referencia de la API REST de Azure Databricks.
Limitaciones
Existen las siguientes limitaciones:
- No todos los clientes externos admiten la distribución de credenciales, y la compatibilidad puede variar dependiendo del almacenamiento de objetos en la nube subyacente.
- Solo se admiten las tablas administradas por el catálogo de Unity y las tablas externas de Unity Catalog respaldadas por Delta Lake.
- Las tablas habilitadas para lecturas de Iceberg comparten este requisito. Consulte Leer tablas Delta con clientes de Iceberg.
- No se admiten los siguientes tipos de tabla o tablas con características habilitadas:
- Tablas con filtros de fila o máscaras de columna.
- Tablas compartidas con Delta Sharing.
- Tablas federadas de la plataforma Lakehouse (tablas externas).
- Vistas.
- Vistas materializadas.
- Tablas de streaming de Delta Live Tables.
- Tablas en línea.
- Índices de búsqueda vectorial.