Administración de identidades, permisos y privilegios para trabajos de Databricks
Este artículo contiene recomendaciones e instrucciones para administrar identidades, permisos y privilegios para trabajos de Databricks.
Nota:
Los secretos no se censuran de los flujos stdout
y stderr
de registros de controladores de Spark del clúster. Para proteger los datos confidenciales, los registros de controladores de Spark solo son visibles por los usuarios con el permiso CAN MANAGE en el trabajo, el modo de acceso de usuario único y los clústeres en modo de acceso compartido. Para permitir que los usuarios con los permisos CAN ATTACH TO o CAN RESTART puedan ver los registros de estos clústeres, establezca la siguiente propiedad de configuración de Spark en la configuración del clúster: spark.databricks.acl.needAdminPermissionToViewLogs false
.
En clústeres de modo de acceso compartido sin aislamiento, los usuarios pueden ver los registros de controladores de Spark con el permiso CAN ATTACH TO o CAN MANAGE. Para limitar quién puede leer los registros solo a los usuarios con el permiso CAN MANAGE, establezca spark.databricks.acl.needAdminPermissionToViewLogs
en true
.
Consulte Configuración de Spark para obtener información sobre cómo agregar propiedades de Spark a una configuración de clúster.
Privilegios predeterminados para trabajos
Los trabajos tienen los siguientes privilegios establecidos de forma predeterminada:
- Al creador del trabajo se le concede el permiso IS OWNER.
- A los administradores del área de trabajo se les concede el permiso CAN MANAGE.
- El creador del trabajo se establece para Ejecutar como.
Permisos de administrador para trabajos
De manera predeterminada, los administradores del área de trabajo pueden cambiar el propietario de un trabajo o la configuración de Ejecutar como a cualquier usuario o entidad de servicio de su área de trabajo. Los administradores de cuentas pueden configurar la configuración RestrictWorkspaceAdmins
para cambiar este comportamiento. Consulte Restringir administradores de áreas de trabajo.
¿Cómo interactúan los trabajos con los permisos de Unity Catalog?
El trabajo se ejecuta como la identidad del usuario en la configuración Ejecutar como. Esta identidad se evalúa con respecto a las concesiones de permisos para lo siguiente:
- Recursos administrados por Unity Catalog, incluidas tablas, volúmenes, modelos y vistas.
- Listas de control de acceso (ACL) a tablas heredadas para los recursos registrados en el metastore de Hive heredado.
- ACL para proceso, cuadernos, consultas y otros recursos del área de trabajo.
- Secretos de Databricks. Consulte Administración de secretos.
Nota:
Las concesiones de Unity Catalog y las ACL de tablas heredadas requieren modos de acceso de proceso compatibles. Consulte Configure compute for jobs (Configuración del proceso de trabajos).
Tareas y permisos de SQL
La tarea de archivo es el único tipo de tarea SQL que se debe respetar completamente la identidad de Ejecutar como.
Las consultas SQL, las alertas y las tareas heredadas del panel respetan las opciones de uso compartido configuradas.
- Ejecutar como propietario: las ejecuciones de la tarea SQL programada siempre usan la identidad del propietario del recurso SQL configurado.
- Ejecutar como espectador: las ejecuciones de la tarea SQL programada siempre usan el conjunto de identidades en el campo de trabajo Ejecutar como.
Para más información sobre la configuración de uso compartido de consultas, consulte Configuración de permisos de consulta.
Ejemplo
En el escenario siguiente se muestra la interacción de la configuración de uso compartido de SQL y la configuración del trabajo Ejecutar como:
- El usuario A es el propietario de la consulta SQL denominada
my_query
. - El usuario A configura
my_query
con el valor de uso compartido Ejecutar como propietario. - El usuario B programa
my_query
como una tarea en un trabajo denominadomy_job
. - El usuario B configura
my_job
para que se ejecute con un principio de servicio denominadoprod_sp
. - Cuando
my_job
se ejecuta, usa la identidad del usuario A para ejecutarmy_query
.
Ahora supongamos que el usuario B no quiere este comportamiento. A partir de la configuración existente, se produce lo siguiente:
- El usuario A cambia la configuración de uso compartido de
my_query
a Ejecutar como espectador. - Cuando se ejecuta
my_job
, usa la identificación deprod_sp
.
Configuración de la identidad para ejecuciones de trabajos
Para cambiar la configuración Ejecutar como, debe tener el permiso CAN MANAGE o IS OWNER en el trabajo.
Puede establecer la opción Ejecutar como en usted mismo o en cualquier entidad de servicio del área de trabajo en la que tenga el derecho usuario de entidad de servicio.
Para configurar la opción Ejecutar como para un trabajo en la interfaz de usuario del área de trabajo, seleccione un trabajo existente mediante los pasos siguientes:
- Haga clic en Flujos de trabajo en la barra lateral.
- En la columna Name (Nombre), haga clic en el nombre de trabajo.
- En el panel lateral Detalles del trabajo, haga clic en el icono de lápiz situado junto al campo Ejecutar como.
- Busque y seleccione un usuario o una entidad de servicio.
- Haga clic en Save(Guardar).
Para obtener más información sobre cómo trabajar con entidades de servicio, consulte estos temas:
- Administración de entidades de servicio
- Roles para administrar entidades de servicio
- Enumere los principales servicios que puede utilizar.
Procedimientos recomendados para la gobernanza de trabajos
Databricks recomienda lo siguiente para todos los trabajos de producción:
Asignación de la propiedad del trabajo a una entidad de servicio
Si el usuario que posee un trabajo deja su organización, es posible que se produzca un error en el trabajo. Use entidades de servicio para hacer que los trabajos sean resistentes a la rotación de empleados.
De forma predeterminada, los administradores del área de trabajo pueden administrar los permisos de trabajo y reasignar la propiedad si es necesario.
Ejecución de trabajos de producción mediante una entidad de servicio
Los trabajos se ejecutan con los privilegios del propietario del trabajo de forma predeterminada. Si asigna la propiedad a una entidad de servicio, los trabajos usan los permisos de la entidad de servicio.
El uso de entidades de servicio para trabajos de producción permite restringir los permisos de escritura en los datos de producción. Si ejecuta trabajos con los permisos de un usuario, ese usuario necesita los mismos permisos para editar los datos de producción requeridos por el trabajo.
Usar siempre configuraciones de proceso compatibles con Unity Catalog
La gobernanza de datos de Unity Catalog requiere que use una configuración de proceso compatible.
El proceso sin servidor para trabajos y almacenes de SQL siempre usa Unity Catalog.
En el caso de los trabajos con proceso clásico, Databricks recomienda el modo de acceso compartido para cargas de trabajo admitidas. Use el modo de acceso de usuario único cuando sea necesario.
Las canalizaciones de Delta Live Tables configuradas con Unity Catalog tienen restricciones. Consulte Limitaciones.
Restricción de permisos en trabajos de producción
Los usuarios que desencadenen, detengan o reinicien las ejecuciones de trabajo necesitan el permiso Can Manage Run.
Los usuarios que ven la configuración del trabajo o las ejecuciones del monitor necesitan el permiso Can View.
Conceda solo privilegios Can Manage o Is Owner a los usuarios de confianza para modificar el código de producción.
Controlar el acceso a un archivo
El control de acceso a trabajos permite a los propietarios y administradores de trabajos conceder permisos específicos en sus trabajos. Están disponibles los siguientes permisos:
Nota:
Cada permiso incluye las concesiones de permisos debajo de él en la tabla siguiente.
Permiso | Conceder |
---|---|
Es propietario | Identidad usada para Ejecutar como de forma predeterminada. |
Can Manage (Puede administrar) | Los usuarios pueden editar la definición del trabajo, incluidos los permisos. Los usuarios pueden pausar y reanudar una programación. |
Can Manage Run (Puede administrar la ejecución) | Los usuarios pueden desencadenar y cancelar ejecuciones de trabajos. |
Can View (Puede ver) | Los usuarios pueden ver los resultados de la ejecución del trabajo. |
Para más información sobre los niveles de permisos de trabajo, consulte ACL de trabajo.
Configuración de los permisos de los trabajos
Para configurar los permisos para un trabajo en la interfaz de usuario del área de trabajo, seleccione un trabajo existente mediante los pasos siguientes:
- Haga clic en Flujos de trabajo en la barra lateral.
- En la columna Name (Nombre), haga clic en el nombre de trabajo.
- En el panel Detalles del trabajo, haga clic en Editar permisos. Aparece el cuadro de diálogo Permission Settings (Configuración de permisos).
- Haga clic en el campo Seleccionar usuario, grupo o entidad de servicio... y empiece a escribir un usuario, grupo o entidad de servicio. El campo busca en todas las identidades disponibles del área de trabajo.
- Haga clic en Agregar.
- Haga clic en Save(Guardar).
Administración del propietario del trabajo
Solo los administradores de áreas de trabajo pueden editar el propietario de un trabajo. Se debe asignar exactamente un propietario de trabajo. Los propietarios de trabajos pueden ser usuarios o entidades de servicio.