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 Usar Microsoft Fabric para leer datos que están registrados en el Catálogo de Unity.

En esta página 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 expendición de credenciales admite sistemas externos que se conectan a Unity Catalog mediante la API REST de Unity y el catálogo REST de Apache Iceberg. Consulte Acceso a tablas de Databricks desde clientes delta y Acceso 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 concedidas heredan los privilegios del principal de Azure Databricks utilizado para configurar la integración. Hay dos tipos de distribución de credenciales:

  • El suministro de credenciales de tabla proporciona acceso a los datos registrados en el metastore del catálogo de Unity.
  • Generación de credenciales de ruta proporciona acceso a ubicaciones externas en el metastore del catálogo de Unity.

Requisitos

  • El acceso externo debe configurarse en el metastore con EXTERNAL USE SCHEMA concedido a la entidad de seguridad solicitante. Consulte Habilitar el acceso a datos externos en el metastore.
  • La dirección URL del área de trabajo debe ser accesible para el motor de solicitud, incluidos los motores subyacentes a las listas de acceso IP o Azure Private Link.
  • Las direcciones URL de almacenamiento en la nube deben ser accesibles a través del firewall y los controles de red.

Distribución de credenciales de tabla

Las credenciales de tabla 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.

Tipos de acceso admitidos

La distribución de credenciales para tablas admite los siguientes tipos y operaciones de tabla.

Tipo de tabla Lectura Escribir Crear
Delta administrado Sí* Sí*
Delta externo
Iceberg administrado
Delta con lecturas de Iceberg (UniForm) Sí** No

* La creación y escritura en tablas gestionadas por el catálogo de Unity desde clientes de Delta está en fase beta.

** Después de escribir externamente en una tabla UniForm desde un cliente Delta, ejecute MSCK REPAIR TABLE para generar metadatos de Iceberg.

Nota:

Algunos clientes admiten el acceso a las tablas respaldadas por Delta Lake, mientras que otras requieren que habilite las lecturas de Iceberg (UniForm) en tablas. Consulte Leer tablas Delta con clientes de Iceberg.

Solicitud de una credencial de tabla 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 de Unity Catalog. 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 con HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT o HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT son aptas para hacer 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 "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation": "<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.
  • 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 las canalizaciones declarativas de Lakeflow Spark.
    • Tablas en línea.
    • Índices de vector de búsqueda.
  • La actualización de credenciales no se admite en Iceberg 1.9.0. Utiliza la versión más reciente de Iceberg para la actualización de credenciales.

Vending de credenciales de ruta de acceso

Las credenciales emitidas permiten el acceso directo a la ubicación de almacenamiento en la nube, en el ámbito de la ruta de acceso pertinente. Son válidos durante un tiempo limitado y no conceden acceso más amplio más allá de la ubicación o tabla definidas.

Solicitud de una credencial de ruta de acceso 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 de Unity Catalog. Puede usar los valores devueltos por el suministro de credenciales para configurar el acceso.

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 "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-path-credentials \
-d '{"url": "<string>", "operation": <PATH_READ|PATH_READ_WRITE|PATH_CREATE_TABLE>"}'

Para obtener más detalles, consulte Generar una credencial de ruta de acceso temporal en la referencia de la API REST de Azure Databricks.