When an auditor asks for evidence that every automated job, service principal, and container‑based agent is governed, the ideal evidence consists of a comprehensive, immutable audit trail that shows who requested access, when it was granted, what commands were run, and which data fields were protected.
Achieving that level of visibility for non‑human identities means moving beyond static secrets and trusting that a machine will behave correctly because its credentials are stored somewhere safe.
Understanding soc 2 requirements for machine identities
soc 2 focuses on five trust service criteria: security, availability, processing integrity, confidentiality, and privacy. For non‑human identities the standard expects:
- Logical access controls that enforce least‑privilege for every service account.
- Documented approval workflows before privileged actions are allowed.
- Immutable logs that capture each request, the identity that initiated it, and the resulting activity.
- Mechanisms to mask or redact sensitive data in responses when confidentiality is required.
- Periodic review of access rights and evidence that those reviews were performed.
These controls must be demonstrable during an audit, which means the evidence cannot be generated solely by the application or by the identity provider.
Why the traditional Azure setup falls short
Most teams provision a service principal in Azure AD, assign it a role, and store its client secret or certificate in a vault. The application then uses that credential to call Azure APIs or connect to a database directly. This model satisfies the “who can call” part of the setup, but it leaves three gaps:
- The request travels straight to the target resource, so there is no point where the organization can inject approval or masking logic.
- The resource itself logs only limited audit trails, often omitting the originating machine identity or the exact command issued.
- If the secret is compromised, every standing connection becomes instantly exploitable until the secret is rotated.
In other words, the setup decides who may start a session, but it does not enforce policy on the data path, nor does it generate the evidence required by soc 2.
The missing enforcement layer
To meet soc 2, an organization must place a control surface between the identity provider and the target resource. That surface must be the only place where the gateway inspects each request, approves it, records it, and masks it when necessary before it reaches the backend.
Introducing hoop.dev as the data‑path gateway
hoop.dev inserts a Layer 7 gateway that sits directly in the network path between non‑human identities and Azure resources. Because the gateway is the sole conduit, it can enforce all required controls.
