When service accounts are treated like shared passwords, the cost to your iam program is more than a few extra tickets. A compromised credential can let an attacker roam laterally, exfiltrate data, and stay hidden for weeks, all while the organization continues to trust the same static secret.
Most teams start with a single API key or SSH private key that dozens of automated jobs, CI pipelines, and batch processes all reuse. The key lives in a repository, a config map, or a developer’s home directory. When that key is rotated, every job must be updated manually, and the window for error is large. The result is a fragile environment where a single mistake can cause outages, compliance gaps, and costly incident response.
Even when an organization adopts non‑human identities, service accounts, OIDC tokens, or short‑lived IAM roles, the underlying problem often remains. The token is issued once, stored in a vault, and then handed directly to the target system. The request travels straight to the database, Kubernetes API, or SSH daemon without any visibility. There is no record of which automation invoked which command, no real‑time check that the operation complies with policy, and no way to mask sensitive fields that appear in logs.
Why a gateway is required for IAM on non‑human identities
To close the gap, the enforcement point must sit on the data path, not merely in the identity provider. The gateway becomes the only place where traffic can be inspected, approved, or transformed before it reaches the resource. This design satisfies three essential requirements:
- Setup: Identity providers (OIDC, SAML) issue tokens that define who the caller is and what groups they belong to. The provider decides whether a request may start, but it does not enforce command‑level policies.
- The data path: A Layer 7 proxy intercepts the wire protocol, ensuring every request passes through a single, auditable boundary.
- Enforcement outcomes: Because the proxy controls the flow, it can record sessions, mask sensitive response fields, require just‑in‑time approval for risky commands, and block disallowed actions.
hoop.dev implements exactly this architecture. It sits between the non‑human identity and the target service, acting as an identity‑aware proxy that enforces policy at the protocol level.
Setup – defining the non‑human identity
First, configure an OIDC client or SAML trust that represents your automation workloads. Assign the client to a minimal set of groups that reflect the job’s purpose, read‑only access to a specific database, deployment rights to a single namespace, or monitoring privileges for a metrics endpoint. The identity provider authenticates the service account and issues a short‑lived token that includes the group claims.
These tokens are never handed directly to the target. Instead, they are presented to the gateway, which validates the signature and extracts the group membership. Because the token is short‑lived, credential leakage has a limited window of impact.
