All posts

Just-in-time access vs standing access: which actually controls AI agent risk

An autonomous agent that holds a standing database credential is a key nobody ever asks back. It connects at 3am with the same reach it had at noon, and when it is compromised or simply confused, the blast radius is everything that credential could ever touch. The question underneath most AI agent access decisions is narrow: just-in-time access or standing access, and which one actually controls the risk. The honest answer is that they are not equivalent options, they are different risk postures

Free White Paper

Just-in-Time Access + AI Agent Security: The Complete Guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free. No spam. Unsubscribe anytime.

An autonomous agent that holds a standing database credential is a key nobody ever asks back. It connects at 3am with the same reach it had at noon, and when it is compromised or simply confused, the blast radius is everything that credential could ever touch. The question underneath most AI agent access decisions is narrow: just-in-time access or standing access, and which one actually controls the risk. The honest answer is that they are not equivalent options, they are different risk postures, and one of them stops being defensible the moment the actor is a machine.

What each model means

Standing access is the default almost everyone starts with. An identity is granted a permission once, and it keeps that permission until someone remembers to revoke it. Just-in-time access inverts the lifecycle: the identity has no standing reach, requests access scoped to a task, and that grant expires when the task ends. One leaves a door open and trusts you to close it. The other opens the door for the duration of the work and shuts it automatically.

When standing access is enough

Standing access is tolerable in a narrow band: a low-sensitivity system, a small set of human operators you can name, and a revocation process that actually runs. Even there it accrues risk, because standing grants are the ones that quietly outlive the person or service they were issued for. The credential survives the offboarding, the project, the reason it existed. For a human team with discipline, that risk is manageable. The trouble starts when the holder is not a person.

Why standing access fails for AI agents

An autonomous agent multiplies every weakness of standing access. It runs continuously, so the window of exposure is always open. It acts on inputs you do not fully control, so a steered prompt can turn a standing grant into an action nobody approved. And it scales: ten agents with standing credentials are ten permanent reach points, none of which will ever ask to have access taken away. Just-in-time access closes the window by default. The agent carries no permission at rest, so a compromised agent has nothing standing to abuse, and every grant is tied to a task and a clock.

The architectural point

Choosing just-in-time access only matters if the expiry is enforced somewhere the agent cannot reach. A grant the agent can extend itself, or a timeout that lives in the agent's own code, is standing access wearing a costume. The control has to sit on the access path, between the identity and the system, where the agent has no dial to turn. That is the requirement, and it is why just-in-time access is an architecture question, not a policy setting.

Continue reading? Get the full guide.

Just-in-Time Access + AI Agent Security: Architecture Patterns & Best Practices

Free. No spam. Unsubscribe anytime.

hoop.dev is built to that shape. It is an open-source Layer 7 access gateway that proxies connections to infrastructure such as databases, Kubernetes, and internal services, and it grants access just-in-time on the connection itself. The agent authenticates as a named identity, receives a grant scoped to the task, and that grant expires on the connection, not on the agent's good behavior. Every session is recorded at the command level outside the agent, so the difference between the two models is visible in the record. See how hoop.dev scopes and records each connection for the mechanics, and to put just-in-time access in front of a system yourself, connect it through hoop.dev.

Which to choose

For human access to low-stakes systems, standing access with real revocation can be acceptable. For anything an autonomous agent touches, just-in-time access is the only model that controls the risk, because it removes the standing reach that an agent's continuous, input-driven operation turns into exposure. The decision is less about preference and more about who holds the credential and how long it lives.

FAQ

Is just-in-time access slower for the agent?

The grant happens at connection time and is scoped to the task, so the agent works normally within the window. What it loses is the permanent reach it never needed, which is the point.

Can we mix both models?

Yes, and most teams do. Reserve standing access for a few low-risk human paths and route every agent and service identity through just-in-time access on the connection, so machine actors carry no permission at rest.

hoop.dev is open source, so you can inspect exactly how just-in-time grants are enforced on the connection at the hoop.dev repository on GitHub.

Open source

Save the open-source gateway for agent data access

Hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.

Star and save the repo →More posts