Limitación del acceso del catálogo a áreas de trabajo concretas
En este artículo se presenta el enlace del catálogo de áreas de trabajo y se describe cómo enlazar cualquier catálogo de Unity Catalog a un área de trabajo de Azure Databricks para evitar que otras áreas de trabajo de la cuenta de Azure Databricks accedan a él.
¿Qué es un enlace del catálogo de áreas de trabajo?
Si usa áreas de trabajo para aislar el acceso a los datos del usuario, puede limitar el acceso del catálogo a áreas de trabajo específicas de su cuenta, lo que también se conoce como enlace del catálogo de áreas de trabajo. El valor predeterminado es compartir el catálogo con todas las áreas de trabajo asociadas al metastore actual.
La excepción a este valor predeterminado es el catálogo de áreas de trabajo que se crea automáticamente para todas las áreas de trabajo nuevas. Este catálogo solo está enlazado a su área de trabajo, a menos que decida conceder acceso a él a otras áreas de trabajo. Para obtener información importante sobre cómo asignar permisos si desenlaza este catálogo, consulte Desenlace de un catálogo de un área de trabajo.
Puede permitir el acceso de lectura y escritura al catálogo desde un área de trabajo o puede especificar el acceso de solo lectura. Si especifica solo lectura, se bloquearán todas las operaciones de escritura desde esa área de trabajo a ese catálogo.
Entre los casos de uso típicos para enlazar un catálogo a áreas de trabajo específicas se incluyen:
- Asegurarse de que los usuarios solo pueden acceder a los datos de producción desde un entorno de área de trabajo de producción.
- Asegurarse de que los usuarios solo pueden procesar datos confidenciales de un área de trabajo dedicada.
- Conceder a los usuarios acceso de solo lectura a los datos de producción desde un área de trabajo de desarrollador para habilitar el desarrollo y las pruebas.
Nota:
También puede enlazar ubicaciones externas y credenciales de almacenamiento a áreas de trabajo específicas, lo que limita la capacidad de acceder a datos en ubicaciones externas a usuarios con privilegios en esas áreas de trabajo. Consulte (opcional) Asignar un catálogo a áreas de trabajo específicas y (opcional) Asignar una ubicación externa a áreas de trabajo específicas.
Ejemplo de enlace de catálogo de áreas de trabajo
Tome el ejemplo de aislamiento de producción y desarrollo. Si especifica que solo se puede acceder a los catálogos de datos de producción desde áreas de trabajo de producción, esto sustituye a las concesiones individuales que se emiten a los usuarios.
En este diagrama, prod_catalog
está enlazado a dos áreas de trabajo de producción. Supongamos que a un usuario se le ha concedido acceso a una tabla en prod_catalog
denominada my_table
(mediante GRANT SELECT ON my_table TO <user>
). Si el usuario intenta acceder a my_table
en el área de trabajo de desarrollo, recibirá un mensaje de error. El usuario solo puede acceder a my_table
desde las áreas de trabajo de Prod ETL y Prod Analytics.
Los enlaces de catálogo de áreas de trabajo se respetan en todas las áreas de la plataforma. Por ejemplo, si consulta el esquema de información, solo verá los catálogos accesibles en el área de trabajo donde emite la consulta. Del mismo modo, el linaje de datos y las interfaces de usuario de búsqueda muestran solo los catálogos asignados al área de trabajo (ya sea mediante enlaces o de manera predeterminada).
Enlace de un catálogo a una o varias áreas de trabajo
Para asignar un catálogo a áreas de trabajo específicas, puede usar el Explorador de catálogos o la CLI de Databricks.
Permisos necesarios: administrador del metastore o propietario del catálogo.
Nota:
Los administradores del metastore pueden ver todos los catálogos de un metastore mediante Explorador de catálogo y los propietarios del catálogo pueden ver todos los catálogos de su propiedad en un metastore, independientemente de si el catálogo está asignado al área de trabajo actual. Los catálogos que no están asignados al área de trabajo aparecen atenuados y no hay objetos secundarios visibles ni consultables.
Explorador de catálogo
Inicie sesión en un área de trabajo vinculada al metastore.
Haga clic en Catálogo.
En el panel Catálogoa la izquierda, haga clic en el nombre del catálogo.
El panel principal Explorador de catálogo tiene como valor predeterminado la lista Catálogos. También puede seleccionar el catálogo allí.
En la pestaña Áreas de trabajo, desactive la casilla Todas las áreas de trabajo tienen acceso.
Si el catálogo ya está enlazado a una o varias áreas de trabajo, esta casilla ya está desactivada.
Haga clic en Asignar a áreas de trabajo y escriba o busque las áreas de trabajo que desea asignar.
(Opcional) Limite el acceso al área de trabajo a solo lectura.
En el menú Administrar nivel de acceso , seleccione Cambiar acceso a solo lectura.
Puede revertir esta selección a cualquier hora editando el catálogo y seleccionando Cambiar acceso para leer y escribir.
Para revocar el acceso, vaya a la pestaña Áreas de trabajo, seleccione el área de trabajo y haga clic en Revocar.
CLI
Hay dos grupos de comandos de la CLI de Databricks y dos pasos necesarios para asignar un catálogo a un área de trabajo.
En los ejemplos siguientes, reemplace <profile-name>
con el nombre del perfil de configuración de autenticación de Azure Databricks. Debe incluir el valor de un token de acceso personal, además del nombre de la instancia del área de trabajo y el identificador de área de trabajo donde generó el token de acceso personal. Consulta Autenticación de token de acceso personal de Azure Databricks.
Use el comando del
catalogs
grupo de comandosupdate
para establecer elisolation mode
del catálogo enISOLATED
:databricks catalogs update <my-catalog> \ --isolation-mode ISOLATED \ --profile <profile-name>
El valor predeterminado de
isolation-mode
esOPEN
para todas las áreas de trabajo asociadas al metastore.Use el comando del
workspace-bindings
grupo de comandosupdate-bindings
para asignar las áreas de trabajo al catálogo:databricks workspace-bindings update-bindings catalog <my-catalog> \ --json '{ "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...], "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...] }' --profile <profile-name>
Use las propiedades
"add"
y"remove"
para agregar o quitar enlaces de área de trabajo. El<binding-type>
puede ser“BINDING_TYPE_READ_WRITE”
(valor predeterminado) o“BINDING_TYPE_READ_ONLY”
.
Para enumerar todas las asignaciones de área de trabajo de un catálogo, use el comando del workspace-bindings
grupo de comandos get-bindings
:
databricks workspace-bindings get-bindings catalog <my-catalog> \
--profile <profile-name>
Desenlace de un catálogo de un área de trabajo
Las instrucciones para revocar el acceso del área de trabajo a un catálogo mediante el Explorador de catálogos o el grupo de comandos de la CLI workspace-bindings
se incluyen en Enlace de un catálogo a una o varias áreas de trabajo.
Importante
Si el área de trabajo se ha habilitado automáticamente para Unity Catalog y tiene un catálogo de áreas de trabajo, los administradores del área de trabajo poseerán ese catálogo y tendrán todos los permisos de ese catálogo solo en el área de trabajo. Si desenlaza ese catálogo o lo enlaza a otros catálogos, debe conceder los permisos necesarios manualmente a los miembros del grupo de administradores del área de trabajo como usuarios individuales o mediante grupos de nivel de cuenta, ya que el grupo de administradores del área de trabajo es un grupo local del área de trabajo. Para obtener más información sobre los grupos de cuentas frente a grupos locales del área de trabajo, consulte Diferencia entre grupos de cuentas y grupos locales del área de trabajo.