Políticas de ABAC GRANT

Las políticas ABAC GRANT otorgan dinámicamente privilegios del Catálogo de Unity a objetos asegurables cuyas etiquetas gobernadas coinciden con una condición. Esta página explica cómo crear, editar, listar y eliminar políticas ABAC GRANT , cómo GRANT interactúan las políticas con las subvenciones directas y el alcance y limitaciones actuales.

Puedes crear y gestionar políticas ABAC GRANT usando Catalog Explorer, SQL o la API REST para cualquier tipo de seguro compatible.

Para obtener información general sobre ABAC y conceptos básicos, incluidas las etiquetas reguladas y las funciones integradas, como has_tag y has_tag_value, consulte Conceptos básicos para el control de acceso basado en atributos (ABAC).

Requisitos de cómputo

Usar SQL para crear, modificar o eliminar GRANT políticas requiere un recurso de cómputo clásico que ejecute Databricks Runtime 18 LTS o superior.

Nota:

Databricks Runtime 18 es más reciente que Databricks Runtime 18.0, 18.1 y 18.2. Las características que anteriormente se habrían incluido en una versión con un número posterior, ahora se incluyen como actualizaciones con fecha para Databricks Runtime 18. Para obtener más información, consulte Información sobre las notas de la versión unificadas.

¿Qué es una GRANT directiva?

Una GRANT directiva es una directiva de control de acceso basada en atributos que concede dinámicamente privilegios del catálogo de Unity a objetos protegibles cuyas etiquetas reguladas coinciden con la condición de la directiva. Unity Catalog evalúa la condición de la directiva WHEN con respecto a las etiquetas gobernadas de cada objeto protegible dentro del ámbito de la directiva cada vez que se verifica el acceso, y concede el privilegio sobre cada objeto protegible que coincida.

En comparación, las instrucciones directas GRANT asignan privilegios a objetos protegibles identificados por su espacio de nombres de tres niveles (catalog.schema.object).

GRANTLas directivas pueden hacer referencia a etiquetas reguladas que cree usted mismo o etiquetas del sistema predefinidas por Azure Databricks en sus condiciones.

GRANT Ejemplos de política

Estos ejemplos se aplican tanto a modelos MLflow registrados por clientes como a modelos de fundación alojados en Azure Databricks en system.ai. Para información sobre cómo se registran los modelos MLflow en el Catálogo de Unity, consulte Gestionar el ciclo de vida del modelo en el Catálogo de Unity. Para los modelos fundacionales alojados en Azure Databricks, consulta Descubrir modelos en Unity Catalog.

La siguiente directiva utiliza la etiqueta regulada lifecycle aplicada a los modelos MLflow registrados por el cliente en production.ml_models. La política concede EXECUTE solo a los modelos etiquetados con lifecycle = 'production':

CREATE POLICY grant_production_model_access
ON SCHEMA production.ml_models
COMMENT 'Grant EXECUTE on production MLflow models'
TO `analysts`
GRANT EXECUTE FOR MODELS
WHEN has_tag_value('lifecycle', 'production');

La siguiente política usa la etiqueta de sistema ai.model_creator aplicada previamente para conceder EXECUTE sobre cada modelo fundacional alojado por Anthropic en system.ai, a data_scientists, excepto contractors. La directiva cubre automáticamente cualquier modelo de Anthropic que Azure Databricks agregue más adelante:

CREATE POLICY grant_anthropic_foundation_models
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on Anthropic foundation models'
TO `data_scientists`
EXCEPT `contractors`
GRANT EXECUTE FOR MODELS
WHEN has_tag_value('ai.model_creator', 'anthropic');

El acceso equivalente mediante asignaciones directas requiere una declaración por modelo en system.ai y debe volver a emitirse a medida que Azure Databricks agrega nuevos modelos de Anthropic:

GRANT EXECUTE ON MODEL `system`.`ai`.`databricks-claude-sonnet-4-6` TO `data_scientists`;
GRANT EXECUTE ON MODEL `system`.`ai`.`databricks-claude-opus-4-7` TO `data_scientists`;
GRANT EXECUTE ON MODEL `system`.`ai`.`databricks-claude-haiku-4-5` TO `data_scientists`;

GRANT las directivas difieren de las directivas de filtro de fila y máscara de columna de dos maneras:

  • Las directivas de filtro de fila y máscara de columna restringen el contenido de los datos a los que ya puede acceder un usuario. GRANT las directivas determinan si el usuario puede acceder al objeto en absoluto.
  • Las directivas de filtro de fila y máscara de columna requieren una función definida por el usuario (UDF) para implementar el filtro o la máscara. GRANT Las directivas no utilizan UDF. La condición se expresa en línea en la definición de directiva.

Los privilegios que puedes conceder dependen del tipo de garantía. Para consultar la lista completa de tipos protegibles compatibles y sus privilegios que pueden concederse mediante políticas, véase Tipos protegibles y privilegios compatibles.

Tipos y privilegios de seguros soportados

Importante

La compatibilidad con GRANT-policy para los servicios de agente y las habilidades se encuentra en fase beta. Para usar las políticas GRANT con cualquiera de los dos tipos de elemento protegible, un administrador de la cuenta debe habilitar Enhanced Unity AI Gateway desde la página Versiones preliminares de la consola de la cuenta. Consulta Administrar las versiones preliminares de Databricks. Los demás tipos protegibles de esta tabla están disponibles de forma general.

La siguiente tabla muestra los tipos apoyados y sus privilegios que conceden la política. Unity Catalog valida los privilegios que nombras frente al tipo securable cuando creas la política, y rechaza cualquier privilegio que el tipo no soporte. La columna Disponibilidad muestra el estado de lanzamiento de la compatibilidad con GRANT-policy para cada tipo protegible.

Tipo asegurable Disponibilidad APPLY_TAG EXECUTE READ_METADATA READ_VOLUME WRITE_VOLUME
Modelo GA ✓ ✓ ✓ — —
Servicio de modelo GA ✓ ✓ ✓ — —
Servicio de proveedor modelo GA ✓ ✓ ✓ — —
Servicio MCP GA ✓ ✓ ✓ — —
Servicio del agente Beta ✓ ✓ ✓ — —
Habilidad Beta ✓ — ✓ ✓ ✓

En SQL, use el tipo de elemento protegible en plural después de FOR, como GRANT EXECUTE FOR MODEL SERVICES o GRANT READ_VOLUME FOR SKILLS. Puedes escribir el tipo con espacios, como MODEL SERVICES, o con guiones subrayados, como MODEL_SERVICES. No se aceptan formas singulares. En la API REST, se establece for_securable_type en la forma singular con subrayos, por ejemplo MODEL_SERVICE.

GRANT Las políticas pueden adjuntarse a un catálogo o a un esquema.

Para la lista completa de privilegios que puedes conceder directamente a cada tipo de objeto, consulta la referencia de privilegios del Catálogo de Unity.

Cómo GRANT interactúan las políticas con las concesiones directas

Los privilegios efectivos de un objeto son la unión de concesiones directas y cualquier directiva aplicable GRANT . Esta lógica de unión se aplica a cada tipo y privilegio soportado en tipos y privilegios soportados. El siguiente ejemplo usa EXECUTE en un modelo. Una entidad de seguridad tiene EXECUTE en un modelo cuando se cumple alguna de las siguientes condiciones:

  • Una GRANT política asociada al catálogo o al esquema del modelo enumera el principal en TO (y no en EXCEPT), y la condición WHEN de la política coincide con las etiquetas del modelo.
  • Existe un GRANT EXECUTE directo en el modelo, su esquema o su catálogo para ese principal, ya sea concedido directamente, a través de la pertenencia a un grupo o mediante otros privilegios administrativos.

Dado que el acceso se basa en la unión de estas fuentes, una directiva más selectiva GRANT no significa que un principal excluido carezca de EXECUTE. El principal puede seguir teniendo el privilegio mediante una concesión directa sobre el modelo o sobre su esquema o catálogo superior. Si tiene previsto utilizar GRANT directivas como la forma principal de controlar EXECUTE en los modelos, primero determine si alguna concesión directa ya vigente podría prevalecer sobre la directiva:

  • Use SHOW EFFECTIVE POLICIES ON SCHEMA <parent_schema> (o ON CATALOG <parent_catalog>) para enumerar todas las GRANT directivas cuyo ámbito abarca los modelos de ese esquema o catálogo. SHOW EFFECTIVE POLICIES no admite ON MODEL directamente. La API REST equivalente es GET /api/2.1/unity-catalog/policies/{on_securable_type}/{on_securable_fullname}?include_inherited=true (Python SDK: w.policies.list_policies(..., include_inherited=True)).
  • Use SHOW GRANTS en el modelo y sus antecesores para enumerar concesiones directas. La API REST equivalente para concesiones directas en un objeto protegible es GET /api/2.1/unity-catalog/permissions/{securable_type}/{full_name} (Python SDK: w.grants.get(...)); para la unión de concesiones directas y heredadas, use GET /api/2.1/unity-catalog/effective-permissions/{securable_type}/{full_name} (Python SDK: w.grants.get_effective(...)).

Creación de una GRANT directiva

Puedes crear una GRANT política a través de la interfaz del Explorador de Catálogos, con la CREATE POLICY instrucción SQL o con la API REST.

Para crear una GRANT directiva, debe tener MANAGE en el catálogo o esquema donde se adjunta la directiva, o bien poseer ese objeto protegible.

Explorador de catálogos

  1. En el área de trabajo de Azure Databricks, haga clic en Data icon.Catalog.
  2. Seleccione el catálogo o el esquema donde desea adjuntar la directiva. GRANT Las políticas solo pueden adjuntarse a nivel de catálogo o esquema.
  3. Haga clic en la pestaña Directivas.
  4. Haga clic en Nueva directiva.
  5. En Identificación de directiva, escriba un nombre de directiva y una descripción opcional.
  6. En Entidades de seguridad y ámbito:
    • En Aplicado a, seleccione las entidades de seguridad (usuarios, grupos o entidades de servicio a las que se aplica la directiva).
    • En la sección Excepto, seleccione opcionalmente los principales que desea excluir de la directiva.
    • En Ámbito, confirme el catálogo o el esquema donde está asociada la política.
  7. En Tipo de directiva, seleccione Conceder acceso.
  8. En Objetos protegibles, selecciona el tipo de elemento protegible al que se aplica la directiva. Consulta tipos y privilegios soportados.
  9. En Condición, selecciona cómo definir el ámbito de la directiva para los objetos protegibles del tipo seleccionado en el catálogo o el esquema:
    • Sin condición aplica la directiva a todos los elementos protegibles de ese tipo dentro del catálogo o esquema seleccionado.
    • Elementos protegibles que coincidan con cualquiera de estas etiquetas aplica la directiva solo a los elementos protegibles que incluyan al menos una de las etiquetas reguladas seleccionadas.
    • Elementos protegibles que coinciden con una expresión personalizada permite escribir una expresión basada en etiquetas para determinar a qué elementos protegibles se aplica la política. Consulte Condiciones y funciones integradas para las funciones de condición disponibles.
  10. En Privilegios, selecciona los privilegios a conceder. Los privilegios disponibles dependen del tipo de seguro que elijas. Consulta tipos y privilegios soportados.
  11. Haga clic en Mostrar código para revisar la instrucción SQL equivalente antes de guardarla y, a continuación, haga clic en Crear directiva.

SQL

La sintaxis SQL para una directiva GRANT usa un cuerpo GRANT ... FOR ... WHEN ... en lugar de ROW FILTER o COLUMN MASK.

CREATE [OR REPLACE] POLICY policy_name
ON { METASTORE | CATALOG catalog_name | SCHEMA schema_name }
[COMMENT description]
TO principal [, ...]
[EXCEPT principal [, ...]]
GRANT privilege [, ...] FOR securable_type
[WHEN condition]

Parameters:

  • policy_name: un nombre para la política. Debe ser único entre todas las directivas definidas en el mismo objeto protegible.
  • ON { METASTORE | CATALOG | SCHEMA }: el ámbito al que se adjunta la directiva. GRANT Las políticas pueden adjuntarse a nivel de metastore, catálogo o esquema, no en un objeto seguro individual. Usa ON METASTORE para aplicar la política en cada catálogo del metaalmacén. ON METASTORE no lleva nombre y apunta al metastore con el que está operando actualmente. Consulta las políticas ABAC a nivel Metastore (Beta).
  • TO principal [, ...]: los usuarios, grupos o entidades de servicio a los que se aplica la directiva.
  • EXCEPT principal [, ...]: Los principales están exentos de la política.
  • GRANT privilege [, ...] FOR securable_type: Los privilegios a conceder y el tipo de garantía al que se aplican. Los privilegios válidos dependen del tipo. Consulta tipos y privilegios soportados.
  • WHEN condition: Una expresión booleana basada en etiquetas que determina a qué elementos protegibles se aplica la directiva dentro del ámbito. Usa funciones has_tag('tag_name') integradas y has_tag_value('tag_name', 'tag_value'). Si se omite, el valor predeterminado es TRUE (se aplica a todos los elementos protegibles del tipo incluido en el ámbito). Consulte Condiciones y funciones integradas para las funciones de condición disponibles.

La siguiente política concede EXECUTE en todos los servicios MCP de analytics.tools etiquetados para el dominio financiero:

CREATE POLICY grant_finance_mcp_services
ON SCHEMA analytics.tools
COMMENT 'Grant EXECUTE on finance MCP services'
TO `analysts`
GRANT EXECUTE FOR MCP SERVICES
WHEN has_tag_value('domain', 'finance');

Para ejemplos de modelos, véase Qué es una GRANT política.

REST API

En este ejemplo se crea una GRANT política que concede EXECUTE sobre modelos fundacionales alojados por Anthropic en system.ai a data_scientists excepto a los contratistas:

curl -X POST "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/policies" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  --data-binary @- << 'EOF'
{
  "name": "grant_anthropic_foundation_models",
  "comment": "Grant EXECUTE on Anthropic foundation models",
  "on_securable_type": "SCHEMA",
  "on_securable_fullname": "system.ai",
  "for_securable_type": "MODEL",
  "policy_type": "POLICY_TYPE_GRANT",
  "to_principals": ["data_scientists"],
  "except_principals": ["contractors"],
  "grant": {
    "privileges": ["EXECUTE"]
  },
  "when_condition": "has_tag_value('ai.model_creator', 'anthropic')"
}
EOF

name, on_securable_type, on_securable_fullname, for_securable_type, policy_type, to_principals, , y grant.privileges son necesarias. comment, except_principals y when_condition son opcionales.

Para detalles de solicitudes y respuestas, consulte Crear política en la referencia de la API REST.

Los privilegios válidos en grant.privileges dependen de for_securable_type. Consulta tipos y privilegios soportados.

Edición de una GRANT directiva

Explorador de catálogos

Gestiona GRANT las políticas desde la pestaña de Políticas del catálogo o esquema principal al que están asociadas.

  1. En el área de trabajo de Azure Databricks, haga clic en Data icon.Catalog.
  2. Seleccione el catálogo o esquema al que se adjunta la directiva.
  3. Haga clic en la pestaña Directivas.
  4. Seleccione la directiva que desee editar.
  5. Actualice los campos que quiera cambiar.
  6. Haz clic en Actualizar directiva.

SQL

Para editar una GRANT directiva con SQL, ejecute CREATE OR REPLACE POLICY con el mismo nombre y destino. Consulte Creación de una GRANT directiva.

REST API

A diferencia de CREATE OR REPLACE POLICY en SQL, PATCH admite actualizaciones parciales. Utiliza el update_mask parámetro de consulta para especificar qué campos cambiar. Solo esos campos se actualizan y los campos ausentes del cuerpo de la solicitud permanecen sin cambios. Si omites update_mask, todos los campos del cuerpo de la solicitud se actualizan. Si se establece update_mask en *, el cuerpo de la solicitud también debe incluir todos los campos requeridos: to_principals, for_securable_type, policy_type, y grant.privileges.

Este ejemplo añade interns a las entidades principales excluidas de la política:

curl -X PATCH "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/policies/SCHEMA/system.ai/grant_anthropic_foundation_models?update_mask=except_principals" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  --data-binary @- << 'EOF'
{
  "except_principals": ["contractors", "interns"]
}
EOF

El valor que envías reemplaza a la lista existente en lugar de añadirla, así que debes incluir todos los principales que quieras excluir, no solo los nuevos.

Eliminar una GRANT directiva

Explorador de catálogos

Gestiona GRANT las políticas desde la pestaña de Políticas del catálogo o esquema principal al que están asociadas.

  1. En el área de trabajo de Azure Databricks, haga clic en Data icon.Catalog.
  2. Seleccione el catálogo o esquema al que se adjunta la directiva.
  3. Haga clic en la pestaña Directivas.
  4. Seleccione la política.
  5. Haga clic en Eliminar directiva.

SQL

Para eliminar una GRANT directiva con SQL, ejecute DROP POLICY:

DROP POLICY grant_anthropic_foundation_models ON SCHEMA system.ai;

REST API

curl -X DELETE "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/policies/SCHEMA/system.ai/grant_anthropic_foundation_models" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Mostrar directivas

Use SHOW POLICIES para enumerar las directivas definidas en un objeto protegible. Use SHOW EFFECTIVE POLICIES también para incluir directivas heredadas de ámbitos primarios, como directivas de nivel de catálogo que afectan a un esquema.

SHOW [EFFECTIVE] POLICIES ON { METASTORE | CATALOG | SCHEMA } securable_name

El resultado incluye el nombre de la póliza, el tipo de política, el catálogo y el esquema del seguro en el que se define cada póliza, así como el tipo y nombre completo de ese seguro. Las directivas GRANT se devuelven con el tipo de directiva GRANT, junto con cualquier filtro de fila, máscara de columna y directivas DENY asociadas en el mismo ámbito. La Table columna se llena solo cuando una política está definida en una tabla. Esto se aplica a las políticas de filtro de fila y de máscaras de columna. Para las políticas GRANT y DENY, la columna Table es NULL.

Ejemplo:

SHOW EFFECTIVE POLICIES ON SCHEMA system.ai;
Policy Name                        Policy Type  Catalog  Schema  Table  Comment                                       on_securable_type  on_securable_fullname
---------------------------------  -----------  -------  ------  -----  --------------------------------------------  -----------------  ---------------------
grant_anthropic_foundation_models  GRANT        system   ai      NULL   Grant EXECUTE on Anthropic foundation models  SCHEMA             system.ai

Descripción de una directiva

Use DESCRIBE POLICY para ver los detalles de una directiva específica GRANT . Requiere READ METADATA o MANAGE en el objeto protegible de destino, o la propiedad del objeto.

{ DESC | DESCRIBE } POLICY policy_name ON { METASTORE | CATALOG | SCHEMA } securable_name

El resultado muestra las propiedades de la directiva como pares de clave-valor, incluyendo el nombre, el tipo de objeto protegible, el nombre del objeto protegible, los principales, los privilegios y la condición WHEN.

Ejemplo:

DESCRIBE POLICY grant_anthropic_foundation_models ON SCHEMA system.ai;
info_name info_value
Nombre grant_anthropic_foundation_models
En tipo protegible SCHEMA
En protegible system.ai
A entidades de seguridad científicos_de_datos
Excepto las entidades contratistas
Para tipo asegurable MODELO
Tipo de directiva GRANT
Privilegios concedidos Ejecute
Condición cuando has_tag_value("ai.model_creator", "anthropic")

Consulta definiciones de políticas con Esquema de Información

Puedes consultar GRANT definiciones de políticas en el catálogo actual usando INFORMATION_SCHEMA.ABAC_POLICY_DEFINITIONS:

SELECT *
FROM information_schema.abac_policy_definitions
WHERE policy_type = 'GRANT';

Para las columnas disponibles y ejemplos adicionales, véase ABAC_POLICY_DEFINITIONS.

Etiquetas del sistema en modelos básicos en system.ai

Los modelos fundacionales que Azure Databricks aloja en system.ai vienen ya etiquetados con etiquetas del sistema a las que las directivas GRANT pueden hacer referencia directamente. No es necesario etiquetar estos modelos usted mismo para usarlos en una directiva.

Etiqueta Valores de ejemplo
ai.model_creator anthropic, openai, , google, meta
ai.model_family claude-opus, gpt, , gemini, qwen

Para los modelos que registre en sus propios catálogos y esquemas, aplique etiquetas reguladas a través del flujo de trabajo de etiquetas de catálogo de Unity estándar. Consulte Etiquetas gobernadas.

Cuotas de política

Resource Limit
Políticas por metastore (todos los objetos) 10 000
Políticas por metastore, adjuntadas directamente (Beta) 100
Políticas por catálogo 100
Políticas por esquema 100

Las directivas GRANT y DENY comparten una cuota combinada para cada objeto. Estas cuotas son distintas de las cuotas de las políticas de filtro de filas y enmascaramiento de columnas.

Registro de auditoría

GRANT las operaciones de creación, modificación y eliminación de directivas se registran con las mismas acciones createPolicy, deletePolicy, getPolicy y listPolicies que las directivas de filtro de filas y enmascaramiento de columnas. Consulte registro de auditoría para ver ejemplos de consultas del registro de auditoría.

procedimientos recomendados

  • Use grupos en TO y EXCEPT, no usuarios individuales. Agregar o quitar usuarios de un grupo denominado en una directiva cambia a quién se aplica la directiva, sin editar la directiva.
  • Aplique las políticas en el ámbito más pequeño que abarque los objetivos. Utilice el ámbito más reducido que contenga los elementos protegidos a los que deba aplicarse la directiva. Un ámbito más amplio aporta elementos protegibles no relacionados a la coincidencia de etiquetas de la directiva y puede conceder acceso a donde no tenía intención.
  • Utilice la herencia de etiquetas para valores predeterminados seguros. Aplique valores de etiqueta predeterminados en el catálogo primario o esquema, por lo que los descendientes los heredan. Invalide la etiqueta heredada solo en los objetos específicos que necesitan un valor diferente. Combine esto con EXCEPT para controlar las excepciones controladas en una directiva.
  • No mezcle las directivas GRANT ni las concesiones directas para el mismo privilegio. Para un privilegio determinado en un elemento protegible, elija directivas GRANT o concesiones directas, no ambas. GRANT las políticas se unen a las concesiones directas, por lo que mezclarlas en el mismo recurso protegible dificulta determinar quién tiene acceso y auditar los cambios.
  • Utilice concesiones directas para los requisitos previos USE CATALOG y USE SCHEMA, y directivas GRANT para los privilegios admitidos por el tipo. Las directivas GRANT no conceden los requisitos previos USE CATALOG y USE SCHEMA necesarios para acceder a un objeto protegible. Concédelos directamente y utiliza una política GRANT para delimitar, mediante etiquetas, los privilegios admitidos para el tipo, como EXECUTE, cuando sea compatible.

Limitaciones

  • Los privilegios CREATE MODEL y CREATE MODEL VERSION no son compatibles con las políticas GRANT y deben concederse directamente. Para los privilegios soportados para MODEL, véase tipos y privilegios soportados.
  • ALL_PRIVILEGES, MANAGE, y MODIFY no están respaldados por GRANT políticas.
  • Los permisos necesarios USE SCHEMA y USE CATALOG, que un usuario necesita para acceder a un elemento protegible, no son compatibles con las directivas GRANT y deben concederse directamente.
  • Una política puede adjuntarse al catálogo o al esquema, no a un objeto seguro individual.
  • Los privilegios concedidos por una GRANT póliza no son devueltos por SHOW GRANTS.
  • La eliminación de un modelo o una versión del modelo no está cubierta por GRANT las directivas. Consulte Administración del ciclo de vida del modelo en el Catálogo de Unity para obtener información sobre cómo eliminar versiones y modelos de modelos.
  • No puede usar Delta Sharing para compartir modelos que tengan GRANT directivas definidas en ellos. Delta Sharing no admite servicios de modelo de compartición ni servicios de proveedor modelo, servicios MCP ni servicios de agentes, independientemente de si una GRANT política se aplica o no.

Más información

Consulte también Administrar privilegios en Unity Catalog.