Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Sugerencia
Para obtener información sobre cómo leer Azure Databricks datos mediante Microsoft Fabric, consulte Microsoft Fabric con Azure Databricks.
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 SCHEMAconcedido 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í* | Sí* |
| Delta externo | Sí | Sí | Sí |
| Iceberg administrado | Sí | Sí | Sí |
| Iceberg Extranjero | Sí | No | No |
| Delta con lecturas de Iceberg (UniForm) | Sí | Sí** | No |
* La creación de tablas administradas de Unity Catalog y la escritura en ellas desde clientes Delta están en Vista previa pública.
** 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 de Delta Lake 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.
- Los clientes lectores de Delta Lake solo pueden leer tablas respaldadas por Delta Lake y deben admitir todos los protocolos de lector o escritor habilitados en la tabla. Consulte Compatibilidad y protocolos de características de Delta Lake.
- Las tablas externas que no usan Delta Lake no proporcionan garantías transaccionales.
- 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 mediante OpenSharing.
- Vistas.
- Vistas materializadas.
- Tablas de streaming de las canalizaciones declarativas de Lakeflow Spark.
- Tablas en línea.
- Índices de AI Search.
- 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.
Suministro de credenciales a gran escala
Importante
Esta característica está en versión preliminar pública.
La emisión de credenciales para volúmenes permite a los motores externos acceder a los archivos almacenados en volúmenes de Unity Catalog con credenciales temporales de alcance limitado. La entidad de seguridad que realiza la solicitud debe tener EXTERNAL USE SCHEMA en el esquema que contiene el volumen, además de READ VOLUME para acceso de lectura o READ VOLUME y WRITE VOLUME para acceso de escritura. Consulte ¿Qué son los volúmenes de Unity Catalog?.
Unity Catalog valida los permisos y devuelve credenciales de almacenamiento en la nube de corta duración y de ámbito limitado, asociadas a la ruta de almacenamiento del volumen. Las credenciales expiran automáticamente y no conceden acceso más allá del volumen especificado.
Requisitos
- El acceso externo debe estar habilitado en el metastore. Consulte Habilitar el acceso a datos externos en el metastore.
- La entidad de seguridad que realiza la solicitud debe tener
EXTERNAL USE SCHEMAen el esquema que contiene el volumen, además deREAD VOLUMEpara acceso de lectura oREAD VOLUMEyWRITE VOLUMEpara acceso de escritura. - El motor externo debe poder acceder a la dirección URL del área de trabajo.
- Las direcciones URL de almacenamiento en la nube deben ser accesibles a través del firewall y los controles de red.
Solicitud de una credencial de volumen temporal para el acceso a datos externos
En el ejemplo siguiente curl se solicita explícitamente una credencial temporal para el acceso a datos externos.
curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.0/unity-catalog/temporary-volume-credentials \
-d '{"volume_id": "<volume-id>", "operation": "<READ_VOLUME|WRITE_VOLUME>"}'
O bien, use el SDK de Azure Databricks Python:
from databricks.sdk.service.catalog import VolumeOperation
creds = w.temporary_volume_credentials.generate_temporary_volume_credentials(
volume_id=volume_id,
operation=VolumeOperation.READ_VOLUME,
)
Para obtener más información, consulte POST /api/2.0/unity-catalog/temporary-volume-credentials en la referencia de la API REST de Azure Databricks.
Limitaciones
- Los volúmenes administrados solo admiten acceso de lectura. Los volúmenes externos admiten el acceso de lectura y escritura.