Ir al contenido

Arquitectura

Lee esta página para planificar en función de lo que el cliente instala en una máquina y de lo que cruza la frontera de la máquina.

Aquí, una máquina es el sistema operativo en el que se ejecutan los agentes. En la mayoría de los entornos es un equipo de desarrollador, y lo es igualmente un escritorio virtual, un host de compilación o una imagen de contenedor, dondequiera que se inicie un agente. Si allí se ejecutan agentes, allí se instala el cliente.

OpenLatch instala una sola cosa en esa máquina: el cliente de OpenLatch. Se instala una vez y cubre cada agente de esa máquina. Nada que colocar delante del agente, ningún servicio que levantar a su lado y ningún segundo producto que mantener sincronizado con el primero.

AspectoDetalle
Qué se instalaEl cliente de OpenLatch, una vez por sistema operativo que ejecuta agentes
PrivilegiosSe instala y se ejecuta a nivel de usuario. No se necesitan derechos de administrador, ni en la instalación ni después
Postura de redSolo escucha en la interfaz de bucle local. No se abre ningún puerto entrante, y nada de la máquina es accesible desde la red
ArchivosEl cliente guarda su configuración y sus registros locales en un único directorio: ~/.openlatch en macOS y Linux, %APPDATA%\openlatch en Windows. OPENLATCH_DIR lo cambia de sitio
ArranqueArranca con la sesión del usuario, bajo el gestor de servicios del sistema operativo
Dónde se toman las decisionesEn la máquina, antes de que la acción se ejecute. La consola no está en ese camino
Pérdida de conectividadSigue funcionando. Las políticas siguen vigentes y los registros se guardan hasta que la consola vuelve a ser accesible
Vista de despliegueVista de despliegue: el cliente en cada máquina y la consola como servicio.MáquinaAgenteCliente de OpenLatchhookRegistros locales y políticasConsolaregistros, políticas (HTTPS 443)
Figura 1. Vista de despliegue: el cliente en cada máquina y la consola como servicio.

La consola se ofrece como servicio en app.openlatch.ai. Nada que instalar ni que alojar. Los datos de tu organización se almacenan separados de los de cualquier otra organización.

La consola contiene cuatro elementos con los que trabajas: la organización, sus usuarios y sus roles, el registro de agentes y el registro de auditoría. El registro de agentes enumera cada máquina conectada y los agentes que hay en ella, cada uno con un propietario y un nivel de control: Enforced, Monitored o Known. El registro de auditoría es de solo anexado y exportable, con un periodo de conservación que tú defines. Configurar la organización describe el procedimiento para todo esto.

Las políticas se redactan en la consola y desde allí llegan a cada máquina. Redactar una Agent Intent Policy cubre la redacción.

Una acción produce un veredicto, en la máquina, antes de que la acción se ejecute. La consola no está en este camino.

PasoQué ocurreQué puedes observar
1 · El agente propone la acciónEl agente va a ejecutar un comando de shell o a llamar a una herramienta. Primero entrega la acción propuesta a OpenLatch y aguarda—
2 · OpenLatch decide en la máquinaLa decisión se toma frente a las políticas que la máquina ya tiene. No hay llamada de red ni modelo en este caminoSe obtiene un veredicto tanto si la consola es accesible como si no
3 · El veredicto vuelve al agenteEl veredicto vuelve en la forma que el agente entiende, con su motivo. Cuando coinciden varias políticas, gana la más restrictivaAnte un Block, el desarrollador ve la negativa y su motivo en el agente, y la acción no se ejecuta
4 · El resultado se registraLa acción y su veredicto se anotan en la máquina y se envían después a la consola. El envío está fuera del camino de decisión: una consola lenta cambia cuándo se ve una acción, nunca lo que se decidióLa máquina, sus agentes y sus acciones decididas aparecen en el registro de agentes de la consola
Secuencia de una acciónUna acción, un veredicto: la decisión se toma en la máquina antes de que la acción se ejecute, y el registro llega después.AgenteCliente1 · acción propuesta3 · veredicto2 · decidirConsola4 · registro, después
Figura 2. Una acción, un veredicto: la decisión se toma en la máquina antes de que la acción se ejecute, y el registro llega después.

Cuatro flujos cruzan la frontera de una máquina que ejecuta el cliente. Solo dos tienen que ver con OpenLatch.

FlujoSentido y contenido
PolíticasDescendente, de la consola a la máquina. El cliente comprueba al arrancar y a intervalos regulares si hay políticas más recientes que las que tiene
RegistrosAscendente, de la máquina a la consola, por HTTPS y a través de tu proxy, una vez decidida la acción
El tráfico de modelos de tus agentesSin cambios. Tus agentes llegan a sus puntos de acceso de modelos exactamente como antes, con sus propias credenciales, y OpenLatch no altera ese tráfico
Inicio de sesión en la consolaHacia la consola desde un navegador, a través de tu proveedor de identidad

Requisitos de red enumera cada destino y cubre los proxies y la inspección TLS.

Una consola inaccesible es un problema de entrega, no de aplicación. Las políticas que ya están en la máquina siguen vigentes, y la máquina sigue decidiendo con ellas mientras dure el corte. Los registros que no se pueden enviar se guardan localmente, hasta un límite de tamaño, y suben cuando la consola vuelve a ser accesible. Un corte lo bastante largo para superar el límite descarta los registros no enviados más antiguos, y el cliente lo anota.

Las políticas no caducan solas. Una política que se desactivara tras un corte permitiría a cualquiera desactivar la aplicación desenchufando un cable, así que la máquina sigue aplicándolas y la consola muestra que las políticas de la máquina están desactualizadas. Una máquina que nunca ha recibido una política permite la acción y registra que no tenía política: OpenLatch nunca bloquea sin política. Requisitos de red recoge la tabla completa de estados degradados.

Comportamiento sin conexiónDecidir sin conexión: la máquina sigue decidiendo con las políticas que tiene, y los registros esperan a la red.Consola accesibleDecidir con las políticas residentesConsola inaccesibleGuardar los registros en la máquinaEnviar los registros guardadosvuelve la red
Figura 3. Decidir sin conexión: la máquina sigue decidiendo con las políticas que tiene, y los registros esperan a la red.
  • Un cliente por máquina que ejecuta un agente, a nivel de usuario, sin derechos de administrador. Solo escucha en el bucle local y no abre ningún puerto entrante.
  • Guarda su configuración y sus registros locales en un único directorio, ~/.openlatch o %APPDATA%\openlatch, que OPENLATCH_DIR cambia de sitio.
  • Las acciones se deciden en la máquina, antes de ejecutarse, frente a las políticas que la máquina ya tiene. No hay llamada de red en ese camino.
  • La consola es un servicio, sin nada que instalar ni alojar. Contiene la organización, sus usuarios y roles, el registro de agentes y el registro de auditoría, y las políticas llegan a cada máquina desde ella.
  • Una consola inaccesible no detiene la aplicación. Las políticas siguen vigentes, los registros se guardan y se envían después, y una máquina sin política permite la acción y registra por qué.