Edison Watch

Policy Rules

Crea y gestiona reglas de política basadas en CEL que controlan el comportamiento de las herramientas de IA.

Las Policies son reglas que Edison Watch evalúa frente a cada llamada a herramienta de IA en tiempo real. Pueden bloquear acciones, etiquetar sesiones, establecer niveles de control de acceso y más, todo sin cambiar la configuración de la herramienta de IA.

La Vista Policies

Ve a Policies en la barra lateral. La página se divide en dos paneles:

Página de políticas
  • Barra lateral izquierda: lista de todas las reglas, agrupadas por estado, con un cuadro de búsqueda.
  • Panel derecho: detalles de la regla seleccionada.

La franja de resumen en la parte superior de la barra lateral muestra los recuentos de reglas enabled, tentative y disabled de un vistazo.

Estados de las Reglas

EstadoSignificado
enabledLa regla está activa y se aplica a cada llamada a herramienta coincidente.
tentativeLa regla se evalúa pero solo se registra: las acciones no se aplican. Útil para probar una nueva regla de forma segura.
disabledLa regla se almacena pero nunca se evalúa.

Fases de las Reglas

Cada regla se ejecuta en una de dos fases:

FaseCuándo se ejecutaComportamiento de bloqueo
preAntes de que se ejecute la llamada a la herramienta.Previene la ejecución.
postDespués de que se complete la llamada a la herramienta; el result de la herramienta está disponible en la expresión.La llamada ya se ha ejecutado: el resultado se reemplaza con un error antes de devolverlo a la IA, evitando la exfiltración de salida sensible.

Contexto de Expresiones CEL

Las reglas se escriben en CEL (Common Expression Language). Las expresiones se evalúan frente a cuatro objetos de nivel superior que representan la llamada a herramienta actual:

VariableCamposNotas
principaluser_id, email, rolesEl usuario que realiza la llamada. roles es una lista de sus nombres de roles personalizados.
resourcetype, name, serverQué se está llamando. type es "tool", "resource" o "prompt".
toolargs, input_schema, output_schema, resultresult solo se completa en la fase post.
sessionhas_private_data_access, has_untrusted_content_exposure, has_external_communication, highest_acl_level, tool_history, tagsEstado de la sesión actual, incluidos los tres indicadores del Lethal Trifecta.

Si la expresión se evalúa como true, se aplican las acciones de la regla.

resource.server == "github" && resource.name == "delete_branch" &&
tool.args.branch == "main"

Acciones

AcciónEfecto
blockPreviene que se ejecute la llamada a la herramienta y devuelve un error a la IA.
mark_privateMarca la sesión como que contiene datos privados.
mark_untrustedMarca la sesión como que contiene contenido externo no confiable.
mark_writeMarca la sesión como que ha realizado una operación de escritura.
set_aclEstablece el nivel ACL de la sesión (PUBLIC, PRIVATE o SECRET).
add_tagAgrega una etiqueta clave-valor a la sesión para filtrado y auditoría.
allow_overridePermite explícitamente la llamada incluso si otras reglas la bloquearían.

Alcance de las Reglas

Las reglas pueden limitarse a principals y recursos específicos:

  • Alcance de principal: Apunta a todos los usuarios globalmente, a roles específicos o a usuarios específicos.
  • Alcance de recurso: Apunta a servidores específicos, tipos de elementos (tools/resources/prompts) o patrones de nombres.

Las reglas sin alcance se aplican a todos los principals y recursos.

Prioridad y Anulaciones

Cuando varias reglas coinciden con la misma llamada a herramienta, se aplican las acciones de todas las reglas coincidentes. La prioridad rige cómo interactúan block y allow_override:

  • Un block se cancela solo si una regla allow_override coincidente tiene una prioridad igual o superior.
  • De lo contrario, gana el bloqueo.
Reglas coincidentesPrioridadesResultado
block + allow_override100 vs. 100✅ Permitido (override ≥ block)
block + allow_override100 vs. 99❌ Bloqueado (override < block)
block solocualquiera❌ Bloqueado

Las acciones que no son de bloqueo (mark_*, set_acl, add_tag) se aplican siempre que coincida su regla y no se ven afectadas por esta resolución.

Creando una Política

  1. Haz clic en Create Policy en la barra lateral izquierda.
  2. Elige una plantilla del selector de plantillas, o empieza desde cero.
  3. Completa el nombre de la regla, la expresión CEL, la fase, la prioridad, las acciones y el alcance.
  4. Guarda la regla.

Probando Reglas Antes de Activarlas

El editor de reglas tiene un panel evaluate que ejecuta tu expresión CEL frente a un contexto sintético (principal, resource, tool args y session flags) sin guardar la regla. Úsalo para confirmar que la expresión coincida con los casos que esperas y para ver qué acciones se dispararían.

Para un lanzamiento más suave frente al tráfico real, guarda la regla con el estado tentative. Las coincidencias se registran en el servidor como ⚠️ TENTATIVE match - would apply actions: ...; actualmente no hay una vista dedicada en el panel para los hits tentative, así que revisa los logs del servidor o tu SIEM. Promueve la regla a enabled una vez que tengas confianza.

Editando y Eliminando

Selecciona una regla en la barra lateral, luego haz clic en Edit o Delete en el panel de detalles.

On this page