Many teams assume that simply assigning different users to separate tools automatically enforces segregation of duties. In reality, without a central enforcement point, those assignments can be bypassed, leaving critical systems exposed to accidental or malicious misuse. The core of segregation of duties is not just who can click a button, but where the control boundary lives.
Current practice: shared credentials and direct access
In most organizations the status quo looks like this: a handful of privileged accounts hold the keys to production databases, Kubernetes clusters, and internal services. Engineers often copy a static SSH key or a service‑account token into their local machine, then connect directly to the target system. The same credential may be used by multiple people, and the connection bypasses any audit trail. Because the gateway is missing, there is no place to inspect commands, no way to mask sensitive columns in query results, and no opportunity to require an approver before a destructive operation runs.
What segregation of duties alone does not solve
Introducing a policy that says “only the DBA may run DROP statements” sounds like progress, but the request still travels straight to the database engine. The database sees a valid credential and executes the command without any external check. No session is recorded, no inline masking occurs, and there is no record of who issued the statement. The enforcement gap remains because the control point is inside the target, not in the path the request takes.
Why a data‑path gateway is required
To truly achieve segregation of duties, the enforcement must happen where the request flows, not after it has already been accepted. This is where a layer‑7 gateway becomes essential. By placing a proxy between the identity provider and the infrastructure, every request can be inspected, approved, or blocked before it reaches the target system.
Setup: defining who can ask for access
The first step is to configure identity sources – OIDC or SAML providers such as Okta, Azure AD, or Google Workspace. Tokens issued by these providers identify the caller and convey group membership. Least‑privilege roles are then granted to those groups, limiting which resources each identity may request. This setup decides who the request is and whether it may start, but on its own it does not enforce any policy.
The data path: hoop.dev as the enforcement boundary
hoop.dev sits in the data path, acting as an identity‑aware proxy for databases, Kubernetes clusters, SSH hosts, and internal HTTP services. When a user or an automated agent initiates a connection, the request is routed through hoop.dev before it reaches the target. Because the gateway controls the wire‑protocol, it can apply policies in real time.
