Saltar al contenido principal
Cuando un agente es secuestrado — inyección de prompts, un resultado de herramienta envenenado, un bucle descontrolado — lo que puede realmente hacer está acotado por exactamente una cosa: lo que su clave API estaba autorizada a hacer. Una clave sin límites y sin política convierte un agente comprometido en un incidente de todo el espacio de trabajo. Esta página es la pasada de endurecimiento que ejecutas contra cada clave antes de enviarla, y de nuevo en una cadencia después. Es deliberadamente corta: un checklist, un ejemplo trabajado, luego enlaces a la profundidad de cada campo. Para el modelo mental detrás de ella, empieza con Alcance y claves; para la referencia campo por campo, ver la visión general de claves.

1. El checklist de mínima agencia

Pasa cada clave — nueva o existente — por estas seis puertas en el editor de claves (/console/token). Establecer cualquiera de ellas requiere el rol Developer o superior; los dos planos de política (§5–6) se crean por separado y se vinculan aquí.
Establece model_limits a la lista exacta que este agente necesita (y habilita model_limits_enabled). Una llamada a cualquier modelo fuera de la lista se rechaza antes de salir del gateway, así que un agente secuestrado no puede escalar a un modelo más caro o más capaz. Comprueba: ¿es la lista tan corta como el trabajo permite — idealmente un modelo? Profundidad: Límites de modelo.
Establece allow_ips a las direcciones de origen o CIDR desde donde el agente realmente llama. Una clave filtrada presentada desde cualquier otro lugar se rechaza en la capa de auth. Vacío significa que todas las IPs están permitidas. Comprueba: para un agente de host fijo o programado, ¿es la lista no vacía y acotada a ese egress? Profundidad: Lista de permitidos de IP.
Establece credit_limit_usd a un techo que el agente nunca debería cruzar en su vida. El gateway lo aplica contra el gasto de la clave. 0 significa ilimitado — un bucle descontrolado puede drenar todo tu saldo. Comprueba: ¿es el tope un presupuesto real, no 0? Profundidad: Cuota, tope y expiración.
Establece expired_time a una expiración absoluta — el fin del sprint, el despliegue o la ejecución de CI. -1 significa nunca expira. Una clave de corta duración no puede perdurar como superficie de ataque olvidada. Comprueba: ¿tiene una clave efímera o de contratista una expiración real, no -1? Profundidad: Claves expirantes.
Adjunta un guardrail vía guardrail_id para que el texto de la solicitud (y, donde se soporte, de la respuesta) se examine en busca de PII, secretos e intención de inyección antes de alcanzar el modelo. Comprueba: ¿tiene una clave que maneja prompts sensibles un guardrail vinculado, o hereda un valor por defecto del espacio de trabajo? Ver §5.
Adjunta una política de firewall vía firewall_policy_id para que cada llamada a herramienta, despacho MCP y egress que esta clave emite se evalúe contra una lista de permitidos de lo que el agente legítimamente necesita. Comprueba: ¿tiene un agente que llama a herramientas una política de firewall vinculada, o hereda el valor por defecto del espacio de trabajo? Ver §6.
Los campos de arriba son las únicas palancas configurables por el cliente en una clave — establécelas todas en la consola; nada aquí requiere un cambio de código del agente. Releer una clave la muestra enmascarada; el texto plano se muestra una vez en la creación. Ver Enmascarado de claves.

2. Qué / con qué frecuencia / dónde

Tres preguntas convierten el checklist de una tarea puntual en una postura.

Qué

Las seis puertas de arriba, en orden: model_limitsallow_ipscredit_limit_usdexpired_timeguardrail_idfirewall_policy_id.

Con qué frecuencia

En cada clave en la creación, y en una revisión recurrente — cuando cambia el alcance de un agente, cuando rotas una clave, y en una cadencia fija para claves de larga duración.

Dónde

En el editor de claves de la consola (/console/token), como un Developer+. Las dos políticas se crean en sus propias consolas, luego se vinculan en la clave.

3. Una clave de mínima agencia concreta

Un agente programado que resume tickets de soporte con un modelo barato, desde un host, necesita casi nada de agencia. Una clave totalmente endurecida:
CampoValorPor qué
model_limitsun modelo de resumenno puede escalar a un modelo de frontera
allow_ipsel CIDR de egress del programadoruna clave filtrada es inútil en otro lugar
credit_limit_usdun techo semanalun bucle descontrolado no puede drenar el saldo
expired_timefin del despliegueauto-expira, no puede perdurar
guardrail_idun guardrail de enmascarado de PIIel texto de la solicitud se examina
firewall_policy_idlista de permitidos solo de sus herramientassin llamadas a herramienta sorpresa
Si este agente es secuestrado, aún solo puede llamar a un modelo, solo desde un rango de IP, solo hasta su tope, y solo las herramientas que su política de firewall permite. El resto del espacio de trabajo queda intacto — y el rastro de auditoría del firewall muestra exactamente qué estaba autorizado a hacer.
Una clave sin model_limits, sin allow_ips, credit_limit_usd: 0, expired_time: -1, y sin adjunto de política tiene máxima agencia. Si se filtra, el portador obtiene todo tu espacio de trabajo. Trata esa combinación como un hallazgo, no un valor por defecto — ver ilimitada vs acotada.

4. La llamada de relay /v1 vs la consola

El checklist se configura en la consola con tu sesión (un usuario Developer+). Tu agente nunca toca esas rutas de configuración — presenta su clave de relay con alcance (sk-orca-…) en las llamadas de inferencia /v1/*, y los límites y políticas vinculadas de arriba se aplican en cada una.
# La llamada en runtime del agente — la clave de relay, acotada por el checklist de arriba.
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Summarize this ticket..."}]
  }'
Si los model_limits de la clave no incluyen openai/gpt-4o-mini, esta llamada se rechaza antes de salir del gateway. Si la IP del llamante no está en allow_ips, se rechaza en la capa de auth. El código del agente queda igual; la clave decide el radio de explosión.

5. Puerta 5 — el guardrail vinculado

guardrail_id vincula una política de contenido ordenada y con alcance de espacio de trabajo a la clave. La resolución es el guardrail explícito de la clave (si existe y está habilitado), si no el valor por defecto del espacio de trabajo, si no ninguno.
Los guardrails son un interruptor estricto cuando están deshabilitados: un guardrail_id deshabilitado o eliminado significa que la clave no obtiene guardrail — no hace fallback al valor por defecto del espacio de trabajo. Esto es lo opuesto al plano del firewall (§6), así que verifica que el guardrail vinculado esté habilitado, no solo adjunto.
Las reglas de un guardrail se ejecutan antes del modelo (etapa de entrada) y, donde se soporte, sobre la respuesta (etapa de salida), con acciones block, mask o flag. El preset PII Shield, por ejemplo, enmascara PII en la solicitud antes de que alcance el modelo. Crea y adjunta guardrails como Developer+ — ver Guardrails y Vincular políticas.

6. Puerta 6 — la política de firewall vinculada + alcance de gateway

firewall_policy_id vincula una política de llamadas a herramienta con alcance de espacio de trabajo. Gobierna las acciones que toma un agente — herramientas anunciadas, tool_calls emitidos por el modelo, despachos MCP y egress saliente — contra una lista de reglas ordenada cuyos veredictos son allow, audit, deny, sanitize, pending_approval o cap_cost.
El plano del firewall se resuelve de forma diferente a los guardrails: una política de firewall adjunta deshabilitada hace fallback al valor por defecto del espacio de trabajo, no apaga la aplicación. Así que vincular una política y deshabilitarla revierte la clave al valor por defecto del espacio de trabajo — nunca queda silenciosamente desprotegida.
La forma más rápida de establecer ambos planos a la vez es un nivel de autonomía — un único interruptor que configura atómicamente la postura de firewall y guardrail de tu espacio de trabajo (tight / balanced / permissive), con deshacer de un clic. Ver Firewall §8.
is_firewall_gateway es un tipo de clave separado — acuñado solo para las rutas del MCP del Firewall y del hook de evaluación (/api/v1/firewall/*), nunca para inferencia. Una clave regular obtiene 403 en esas rutas, y una clave de gateway en la ruta de inferencia está sobre-alcanzada. Habilitar el flag, y leer el texto plano de una clave de gateway, requiere Admin+. Una clave, un propósito.

7. Después del checklist

Línea base de agentes seguros

La postura de inicio recomendada — un interruptor de autonomía, luego afina desde el tráfico real.

Vincular políticas

Cómo se adjuntan y resuelven guardrail_id y firewall_policy_id.

Agencia excesiva

La amenaza que este checklist está hecho para contener.

Clave filtrada

Qué hacer en el momento en que una clave con alcance se expone.
Cuanto más estrecha sea cada clave, menor será el radio de explosión si cualquier agente es comprometido — y más claro el registro de qué estaba autorizado a hacer cada agente. Ejecuta el checklist de mínima agencia en cada clave, y sigue ejecutándolo.