Machine accounts with static keys are a silent data breach waiting to happen. Most engineering teams grant those accounts blanket privileges on Snowflake, embed credentials in CI pipelines, and never revisit the permissions. When a compromised token lands in a public repository, the attacker can query, export, or even drop entire warehouses without any trace in the organization’s logs. The result is a compliance blind spot that SOC 2 auditors will flag under logical access controls and change‑management criteria.
In practice, a non‑human identity is created once, assigned a role that spans multiple databases, and then stored in a secret manager or hard‑coded in deployment manifests. The service connects directly to Snowflake using that credential, bypasses any runtime gate, and the Snowflake engine processes the request as if a human had issued it. There is no central point where the request can be inspected, approved, or recorded before it reaches the data plane.
This state satisfies the “setup” requirement for SOC 2: an identity exists, it is authenticated, and it is authorized to talk to Snowflake. What remains missing is a controllable data path that can enforce policy, capture evidence, and provide the audit trail required by the standard. Without that, the organization cannot demonstrate who ran which query, whether sensitive columns were exposed, or if a privileged command was performed under proper oversight.
How hoop.dev creates a SOC 2‑compliant data path for machine access
hoop.dev sits between the service account and Snowflake, acting as an identity‑aware proxy that inspects every wire‑level request. Because the gateway is the only place the traffic passes, hoop.dev can enforce the controls that SOC 2 expects from a logical access control system.
- Audit logging. hoop.dev records each query, the calling identity, timestamps, and outcome. The logs are immutable outside the gateway process, giving auditors a complete trail for the CC6.1 logical access control requirement.
- Just‑in‑time approval. For high‑risk operations such as CREATE, ALTER, or DROP, hoop.dev pauses the request and routes it to an approver. Only after explicit consent does the command reach Snowflake, satisfying SOC 2 change‑management controls (CC8.1).
- Inline data masking. When a query returns columns that contain personally identifiable information, hoop.dev masks those fields in real time. This reduces exposure of sensitive data and aligns with the privacy‑related criteria of SOC 2.
- Command blocking. hoop.dev can reject dangerous statements (e.g., UNLOAD to external storage) before they are executed, preventing accidental data exfiltration.
- Session recording and replay. Every interaction is captured as a replayable session. Auditors can reconstruct the exact sequence of commands, meeting evidence‑collection expectations for both access reviews and incident investigations.
All of these outcomes are possible only because hoop.dev occupies the data path. The underlying identity provider (OIDC, SAML, etc.) determines who may start a session, but without hoop.dev the request would travel straight to Snowflake, bypassing every safeguard.
Mapping SOC 2 criteria to hoop.dev capabilities
• CC6.1 – Logical access controls. hoop.dev enforces least‑privilege policies at the gateway level and logs every access attempt.
• CC6.2 – Periodic user access reviews. The audit logs generated by hoop.dev provide a ready‑made source for review, showing which non‑human identities accessed which objects and when.
