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.
Important
Esta característica está en versión preliminar pública.
En esta página se describe el control de acceso basado en atributos (ABAC) en el catálogo de Unity.
¿Qué es ABAC?
ABAC es un modelo de gobernanza de datos que proporciona control de acceso flexible, escalable y centralizado en Azure Databricks. ABAC complementa el modelo de privilegios existente del Catálogo de Unity al permitir que las directivas se definan en función de las etiquetas reguladas, que se aplican a los recursos de datos. Esto simplifica la gobernanza y refuerza la seguridad.
Los usuarios con MANAGE permisos o propiedad de objetos solo necesitan definir directivas una vez y pueden aplicarlas de forma coherente en muchos recursos de datos. Las directivas se adjuntan en el nivel de catálogo, esquema o tabla y se aplican automáticamente a todas las tablas dentro de ese ámbito. Cuando se definen en niveles superiores, las políticas se heredan hacia abajo a los objetos secundarios. Las etiquetas reguladas en los recursos de datos determinan qué directivas se aplican, lo que permite que el control de acceso se adapte dinámicamente.
Ventajas de ABAC
- Escalabilidad: Administre los controles de acceso a escala aprovechando etiquetas en lugar de permisos individuales.
- Flexibilidad: Ajuste fácilmente la gobernanza mediante la actualización de etiquetas o directivas sin modificar cada recurso de datos.
- Gobernanza centralizada: Simplifique la administración de directivas a través de un modelo unificado que abarque catálogos, esquemas y tablas.
- Seguridad mejorada: Aplique controles de acceso específicos de forma dinámica en función de los atributos de datos.
- Auditabilidad: Mantenga la visibilidad en tiempo real del acceso a los datos a través de registros de auditoría completos.
Funcionamiento de ABAC
ABAC en el catálogo de Unity usa etiquetas, directivas y funciones definidas por el usuario (UDF) reguladas para aplicar el control de acceso dinámico basado en atributos. Los siguientes componentes y mecanismos son fundamentales para ABAC:
Etiquetas reguladas: Las etiquetas reguladas se definen en el nivel de cuenta mediante directivas de etiquetas. Estas etiquetas representan atributos como la confidencialidad de datos, la clasificación o el dominio empresarial, y se asignan a tablas, esquemas o catálogos en el catálogo de Unity. Sirven como atributos que impulsan la aplicación de directivas. Consulte Etiquetas reguladas y Aplicar etiquetas a objetos protegibles del catálogo de Unity.
Políticas: Las directivas se crean y administran en tres niveles jerárquicos en el catálogo de Unity:
- Nivel de catálogo: Aplique políticas amplias que afecten a todos los esquemas y tablas contenidos.
- Nivel de esquema: Aplicar directivas específicas de un esquema y sus tablas.
- Nivel de tabla: Aplique directivas específicas directamente en tablas individuales.
Las directivas siguen un modelo de herencia: cuando se define una directiva en el nivel de catálogo o esquema, se aplica automáticamente a todos los objetos secundarios, esquemas y tablas dentro de ese ámbito. Esto permite a los administradores implementar una gobernanza eficaz aplicando una sola directiva que rige grandes conjuntos de recursos de datos. Las directivas heredadas reducen la redundancia y promueven la aplicación coherente en toda la jerarquía de datos. Databricks recomienda definir directivas en el nivel más alto aplicable, normalmente el catálogo, para maximizar la eficiencia de gobernanza y reducir la sobrecarga administrativa. Consulte Creación y administración de directivas de control de acceso basado en atributos (ABAC).
Funciones definidas por el usuario (UDF): Las UDF son funciones personalizadas definidas en el nivel de esquema y se pueden hacer referencia a ellas globalmente en el espacio de nombres del catálogo de Unity. Las UDF se usan dentro de directivas para expresar lógica compleja, como filtrar filas o enmascarar valores de columna en función de los atributos. Por ejemplo, una UDF denominada
filter_regionpodría usarse en una directiva de filtro de fila para devolver solo filas donderegion = 'EMEA'. Consulte Funciones definidas por el usuario (UDF) en Unity Catalog.Cumplimiento dinámico: Cuando un usuario intenta acceder a un recurso de datos etiquetado, El catálogo de Unity evalúa las directivas aplicables en función de las etiquetas y aplica los controles de acceso definidos.
Los usuarios que se excluyen explícitamente de una directiva pueden seguir realizando acciones como la clonación profunda y superficial, y el viaje de tiempo en los datos subyacentes. Sin embargo, los usuarios que no están excluidos de las directivas de ABAC están sujetos a las mismas limitaciones que se aplican al control de acceso específico.
Registro de auditoría: Todas las operaciones de los recursos de datos etiquetados se capturan y registran en la tabla del sistema de registro de auditoría, lo que permite un seguimiento completo de visibilidad y cumplimiento. Consulte Registros de auditoría.
Para obtener información sobre cómo configurar ABAC, consulte Tutorial: Configuración de ABAC.
Para obtener una demostración de la configuración de ABAC, consulte Discover Attribute-Based Access Control (ABAC) with Unity Catalog (Detección de Attribute-Based Access Control (ABAC) con Unity Catalog.
Tipos de directiva
Se admiten dos tipos de políticas de ABAC:
Las directivas de filtro de fila restringen el acceso a filas individuales de una tabla en función de su contenido. Una UDF de filtro evalúa si cada fila debe estar visible para un usuario. Estas directivas son útiles cuando el acceso depende de las características de los datos.
Caso de uso de ejemplo: Solo se muestran filas en una tabla de transacciones de cliente donde la columna de región coincide con una etiqueta regulada, como
region=EMEA. Esto permite a los equipos regionales ver solo los datos relevantes para su región.Las directivas de máscara de columna controlan qué valores ven los usuarios en columnas específicas. Una UDF de enmascaramiento puede devolver el valor real o una versión redactada, en función de las etiquetas reguladas.
Caso de uso de ejemplo: Enmascara una columna que contiene números de teléfono a menos que la tabla se etiquete
sensitivity=lowo el usuario solicitante se encuentra en un grupo de cumplimiento. Los usuarios sin acceso ven un valor null o un marcador de posición comoXXX-XXX-XXXX.
Consulte Creación y administración de directivas de control de acceso basado en atributos (ABAC).
Limitaciones
- Debe usar computación en Databricks Runtime 16.4 o superior, o computación sin servidor, para acceder a una tabla protegida por ABAC. Los usuarios que no están sujetos a la directiva pueden usar cualquier entorno de ejecución.
- No se pueden aplicar directivas de ABAC directamente a las vistas. Sin embargo, cuando se consulta una vista basada en tablas con directivas de ABAC, la identidad y los permisos del propietario de la vista se usan para evaluar las directivas. Esto significa:
- El propietario de la vista debe tener los permisos adecuados en las tablas subyacentes protegidas con ABAC.
- El acceso a datos se evalúa en función de los permisos del propietario de la vista. Cuando los usuarios consultan la vista, ven los datos filtrados o enmascarados tal y como los ve el propietario de la vista.
- El comportamiento puede variar en función de la configuración de proceso. Para obtener más información, consulte Requisitos para consultar vistas.
- Las políticas sobre vistas materializadas y tablas de transmisión solo se admiten cuando el propietario de la tubería está exento de la política.
- Los usuarios pueden compartir tablas protegidas por directivas de ABAC si tienen los permisos de uso compartido delta necesarios y están exentos de las directivas de ABAC. La directiva no rige el acceso del destinatario. Para los proveedores de recursos compartidos, consulte Adición de tablas y esquemas protegidos por directivas de ABAC a un recurso compartido. Para los destinatarios de recursos compartidos, consulte Leer datos protegidos por ABAC y aplicar directivas de ABAC.
- Solo un filtro de fila distinto puede resolverse en tiempo de ejecución para una tabla determinada y un usuario determinado. Puede definir varias directivas de filtro de fila, pero cuando un usuario consulta la tabla, solo deben coincidir las condiciones de una directiva. Si se aplican varios filtros de fila distintos al mismo usuario y tabla, Azure Databricks bloquea el acceso y produce un error. Se permiten varias directivas si dan como resultado el mismo filtro (por ejemplo, la misma UDF con los mismos argumentos). Consulte Solución de problemas de varios filtros o máscaras.
- Solo una máscara de columna distinta puede resolverse en tiempo de ejecución para una columna determinada y un usuario determinado. Puede definir varias directivas de máscara de columna, pero cuando un usuario consulta la tabla, solo las condiciones de una directiva deben coincidir para cada columna. Si se aplican varias máscaras de columna distintas a la misma columna para el mismo usuario, Azure Databricks bloquea el acceso y produce un error. Se permiten varias directivas si dan como resultado la misma máscara (por ejemplo, la misma UDF con los mismos argumentos). Consulte Solución de problemas de varios filtros o máscaras.
- Una política de ABAC puede incluir hasta tres condiciones de columna en la cláusula
MATCH COLUMNS. - No hay ninguna tabla de esquema de información para las directivas de ABAC. Las
information_schema.row_filterstablas yinformation_schema.column_maskssolo muestran filtros de fila y máscaras de columna que se aplican directamente a las tablas. No muestran definiciones de directiva de ABAC ni los filtros y máscaras derivados de las directivas de ABAC en tiempo de ejecución. - Para ver las limitaciones de ABAC en el cómputo dedicado, consulte Limitaciones.
Para conocer las limitaciones de los filtros de fila y las máscaras de columna, consulte Limitaciones.