AN-04 L1 Nivel de conformidad: Authority Grupo: Autoridad

Capability Lease concesión de capacidad

Una autorización estrecha para una ejecución, con caducidad y presupuestos. Las concesiones hijas solo pueden ser más estrechas.

Definición

Una Capability Lease es una autorización para datos concretos y operaciones concretas, con una caducidad explícita y presupuestos. Se emite a una ejecución y es la única vía por la que una ejecución toca el NAS. Una concesión hija solo puede ser más estrecha que su padre.

v0.2 Borrador de especificación Actualizado

El problema

RBAC y las ACL suponen usuarios estables con permisos amplios y duraderos. Un agente necesita permisos cortados a la medida de la tarea que dejan de valer cuando la tarea termina. Peor aún, las credenciales de larga duración suelen estar al alcance del agente: en el incidente de abril de 2026, el token estaba en un archivo sin relación, creado para gestionar dominios pero capaz de hacerlo todo.

Cómo funciona

  • Quién tiene la clave. Las credenciales de larga duración se quedan con el orquestador o con el propietario; una ejecución recibe una concesión, no una clave. El modelo nunca ve una credencial de larga duración.
  • Una concesión es un token de acceso. Su authorization_details (RFC 9396) describe las rutas, las acciones y la rama; la solicita el propietario o el orquestador mediante intercambio de tokens (RFC 8693), la declaración act registra la cadena de delegación, y el NAS guarda estado para la revocación y el recuento de presupuestos.
  • Solo estrechar. Una concesión hija debe ser un subconjunto de su padre, y el NAS lo comprueba al emitirla.
  • Presupuestos. Bytes leídos y escritos, número de solicitudes y, opcionalmente, bytes de salida y un tope de gasto, contados en la pasarela. Son un cortacircuitos, no una facturación exacta.
  • Sobre de políticas. El propietario fija un rango de antemano; las concesiones dentro de él se emiten de forma automática y todo lo que queda fuera pasa a una Human Gate. El acceso de larga duración se expresa como un sobre, no como una concesión de larga duración.
  • B y C se declaran de forma explícita. Una concesión indica la sensibilidad más alta que puede leer y si puede escribir en árboles protegidos o enviar datos al exterior. Son entradas de las Trust Labels.
  • Revocación. Un TTL corto (4 horas por defecto, 24 como máximo) más una revocación inmediata, que se propaga en cascada a las concesiones hijas.
  • **purpose se registra, no se impone:** el texto libre no lo puede comprobar una máquina.

Empezar en pequeño

  • Escribe un comando nas lease create: para cada rol, emite un token con un prefijo de ruta, acciones y un TTL, entrégalo al sandbox en una variable de entorno y haz que el NAS imponga el prefijo y las acciones.
  • Esto ya detiene la primera mitad de ese tipo de incidente: el token no puede hacer nada fuera de la concesión.
  • Los presupuestos, las cadenas de delegación y los sobres de políticas pueden venir después.

Esbozo de la interfaz

Solo ilustrativo. Los nombres de los campos pueden cambiar antes de la especificación v0.3.

lease.json
{
  "lease_id": "lse_7Qk3",
  "run": "run_91ab",
  "principal": "agt_cleo",
  "on_behalf_of": "usr_wei",
  "parent": null,
  "purpose": "Draft the Q4 release notes",
  "paths": ["/shared/launch/**", "/agents/cleo/workspace/**"],
  "actions": ["read", "write", "propose"],
  "branch": "cleo/run_91ab",
  "sensitivity_max": "private",
  "egress": false,
  "requires_gate": ["merge", "delete", "share"],
  "budgets": { "bytes_read": 200000000, "bytes_written": 5000000, "requests": 5000 },
  "expires_at": "2026-11-12T16:00:00Z"
}

Lo que pide la especificación

  • Una concesión DEBE tener caducidad y NO DEBE renovarse más allá del TTL máximo; la renovación exige una nueva emisión.
  • Una concesión hija DEBE ser un subconjunto de su padre, y el NAS DEBE verificarlo al emitirla.
  • Revocar una concesión DEBE propagarse en cascada a todas sus concesiones hijas.
  • El acceso de larga duración DEBE expresarse como un sobre de políticas y NO DEBE convertirse en una concesión de larga duración.
  • Una concesión DEBE declarar su techo de sensibilidad y si permite la salida de datos y las escrituras protegidas.
  • Las credenciales de larga duración NO DEBEN exponerse a un modelo ni a una ejecución.

Lo prestado y lo nuevo

Lo que sigue son todo piezas establecidas. Lo nuevo: tomar como unidad la forma de una ejecución y una tarea y poner la rama, los presupuestos y las propiedades de la Rule of Two en una sola concesión. Los tokens y los modelos de capacidades en sí no son nuevos.

Límites honestos

  • Solo cubre las operaciones dentro del NAS y no puede gobernar lo que hace un agente en otros sitios.
  • purpose no se puede imponer, y los presupuestos son aproximados.
  • Una concesión no puede evitar el uso indebido dentro de la autoridad legítima; de eso se encargan las ramas y las compuertas.

Preguntas abiertas

  • ¿Cómo puede purpose pasar de texto libre a una intención estructurada que una máquina pueda comprobar?
  • ¿Cómo se contabilizan los presupuestos bajo federación?

Preguntas

¿En qué se diferencia una concesión de una clave de API?

Una clave de API es un secreto compartido de larga duración, y quien la tiene puede hacer lo que pueda hacer la cuenta. Una concesión está ligada a una ejecución, limita rutas, acciones y tiempo, y solo se puede estrechar; deja de funcionar al caducar y se puede revocar en cualquier momento.

¿Por qué no usar simplemente OAuth?

Es OAuth: una concesión es un token de acceso, solicitado mediante intercambio de tokens (RFC 8693) y descrito con rich authorization requests (RFC 9396). Agent NAS solo añade lo que OAuth no especifica: la ejecución como unidad, y poner la rama, los presupuestos y las propiedades de la Rule of Two en una sola autorización.

¿Qué le pasa a una ejecución cuando caduca su concesión?

El montaje pasa a solo lectura y después se desmonta; las nuevas solicitudes se rechazan y se registran. La rama se conserva hasta que caduca su propio TTL, de modo que el trabajo terminado no se pierde y todavía se puede fusionar tras la revisión.

Citar esta página

Direcciones estables y una cita sugerida para personas, buscadores y agentes.

Cita sugerida
Agent NAS project. “Capability Lease (concesión de capacidad).” agentnas.com, 2026-11-11. https://agentnas.com/es/concepts/capability-lease/