When an offboarded contractor’s SSH key remains on a production server, any future connection using that key instantly inherits full admin rights. The same pattern repeats when CI pipelines store long‑lived API tokens or when a developer is granted a broad service‑account role that never expires. Those static secrets give anyone who discovers them unfettered entry into critical systems.
Providing just-in-time access to tools can eliminate that lingering risk, but most teams still rely on standing credentials because they are simple to manage. The result is a gap between identity verification and actual command execution: an authenticated user can reach the target database, Kubernetes cluster, or remote host directly, without any gate that records what was done, masks sensitive fields, or forces a human approval before a dangerous operation runs.
Why the precondition alone is insufficient
Implementing a non‑human identity, such as a service account token issued by an IdP, covers the “who” part of the request. It tells the system which principal is making the call and can enforce least‑privilege scopes at token issuance time. However, the request still travels straight to the backend resource. No audit trail is captured, no inline data masking occurs, and there is no mechanism to pause a command for review. In other words, the identity check is necessary but not sufficient for a secure just‑in‑time workflow.
Introducing a data‑path gateway
Placing a Layer 7 gateway between the identity layer and the target resource creates the enforcement point that the precondition lacks. The gateway inspects every protocol message, applies policy, and logs the interaction before it reaches the backend. This is where just-in-time access becomes enforceable.
hoop.dev provides that gateway. It sits on the network, proxies connections to databases, Kubernetes clusters, SSH servers, and HTTP APIs, and enforces policies at the protocol level. Because the gateway holds the credential, the client never sees the secret. The gateway can:
- Record each session for replay and audit.
- Mask sensitive fields in query results or command output.
- Require a just‑in‑time approval workflow before executing high‑risk commands.
- Block disallowed commands outright.
- Scope access to a single operation or a short time window.
All of these enforcement outcomes exist only because hoop.dev sits in the data path. If the gateway were removed, the same identity token would still allow direct access, but none of the above protections would be applied.
How the model works in practice
When a developer needs to run a migration against a PostgreSQL instance, they request access through the gateway. The request is tied to their identity, and a short‑lived session token is minted for that specific operation. The gateway forwards the connection to the database using its own stored credentials, while simultaneously logging every statement and masking any column marked as sensitive. If the migration includes a destructive “DROP DATABASE” command, hoop.dev can pause the request and route it to an approver for confirmation.
