All posts

Configuring autonomous agents access to Snowflake with non-human identity

Imagine a Snowflake environment where every autonomous data‑processing agent connects through a gate that knows exactly which service account is calling, validates its intent, masks any PII in query results, and records the entire session for audit. In that ideal state, compromised credentials cannot be reused, noisy queries are filtered before they reach the data warehouse, and compliance teams have a replayable trail for every automated job. Using non-human identity for these agents ties each

Free White Paper

Non-Human Identity Management + Snowflake Access Control: The Complete Guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free. No spam. Unsubscribe anytime.

Imagine a Snowflake environment where every autonomous data‑processing agent connects through a gate that knows exactly which service account is calling, validates its intent, masks any PII in query results, and records the entire session for audit. In that ideal state, compromised credentials cannot be reused, noisy queries are filtered before they reach the data warehouse, and compliance teams have a replayable trail for every automated job. Using non-human identity for these agents ties each request to a machine‑specific credential, eliminating shared passwords and enabling the gateway to enforce policy per identity.

Current practice: direct credentials and blind trust

Most organizations ship a static Snowflake user or role to their bots, schedule jobs, or embed credentials in CI pipelines. The agent authenticates directly to Snowflake, often using a long‑lived password or key. This approach has three painful drawbacks. First, the secret lives in multiple places – code repositories, container images, and developer machines – expanding the attack surface. Second, Snowflake sees only a user name; it cannot tell whether the request originates from a human, a scheduled job, or a compromised container. Third, there is no built‑in audit of what the agent actually did: query logs exist, but they are not tied to a controlled approval workflow, and sensitive fields flow back to the caller unfiltered.

Introducing non‑human identity without solving the core problem

Switching to service accounts or OIDC‑backed identities is a necessary first step. By issuing a token that represents a machine identity, you eliminate password sprawl and can enforce least‑privilege policies at the identity provider. However, the token still travels straight to Snowflake. The gateway that enforces masking, just‑in‑time (JIT) approvals, or session recording is missing. In other words, the request still reaches the target directly, with no opportunity to inspect the query, redact sensitive columns, or require a human sign‑off for risky operations.

Why the data path must host the enforcement layer

The only place to reliably apply runtime guardrails is the network layer that sits between the agent and Snowflake. When the gateway intercepts the wire‑level protocol, it can examine each statement, apply inline masking rules, trigger an approval workflow for DDL or data‑exfiltration patterns, and capture a full session replay. Those outcomes exist only because the gateway is the enforcement point; the identity provider alone cannot block a command once the token is issued.

Continue reading? Get the full guide.

Non-Human Identity Management + Snowflake Access Control: Architecture Patterns & Best Practices

Free. No spam. Unsubscribe anytime.

hoop.dev as the identity‑aware proxy for Snowflake

hoop.dev fulfills the architectural requirement of an identity‑aware proxy that lives in the data path. It receives the non-human token, validates it against the configured OIDC or SAML provider, and then acts as the session principal when connecting to Snowflake. Because the connection originates from hoop.dev, the Snowflake credentials are stored only in the gateway’s agent, never exposed to the autonomous process.

When an agent issues a query, hoop.dev inspects the Snowflake wire protocol in real time. If the query matches a masking rule – for example, selecting a column that contains PCI data – hoop.dev redacts the value before it reaches the caller. If the operation is classified as high‑risk, such as creating a new role or exporting a large data set, hoop.dev can pause the request and route it to an approval workflow. Every interaction is recorded, enabling replay and forensic analysis later.

Because hoop.dev sits in the data path, the enforcement outcomes – masking, JIT approval, and session recording – are guaranteed to happen regardless of the agent’s code. Removing hoop.dev would instantly eliminate those controls, proving that the gateway is the source of the security guarantees.

Getting started

To adopt this pattern, provision a hoop.dev gateway in the same network segment as your Snowflake instance. Register Snowflake as a connection, supply the service‑account credentials that the gateway will use, and configure your identity provider to issue non-human tokens for your autonomous jobs. The getting‑started guide walks you through the deployment steps, and the learn section details how to define masking policies and approval flows. Using non-human identity throughout this workflow ensures that each automated request is traceable and enforceable at the gateway.

FAQ

  • Do I still need to manage Snowflake roles for my bots? Yes. hoop.dev uses the Snowflake credentials you configure, so you should grant the minimal set of privileges required for the job. The gateway adds an extra layer of control on top of those database permissions.
  • Can hoop.dev mask data that is returned to a non-human caller? Absolutely. The gateway applies inline masking rules before the response leaves the data path, ensuring that downstream processes never see raw sensitive values.
  • What happens if an approval is denied? hoop.dev aborts the request and returns a clear error to the agent. The denied attempt is still recorded for audit purposes.

For the full source code and contribution guidelines, visit the GitHub repository.

Open source

Save the open-source gateway for agent data access

Hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.

Star and save the repo →More posts