All posts

Configuring MCP servers access to Snowflake with non-human identity

It’s a common misconception that a non-human identity such as a service account or AI‑driven process can simply be given a Snowflake password and start querying data safely. In reality, a non‑human identity that holds static credentials provides unrestricted, un‑audited access and bypasses any data‑masking controls you may have in place. Why non‑human identity needs a gateway Non‑human identities, service accounts, CI pipelines, or large language model (LLM) agents, drive automation, but they

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.

It’s a common misconception that a non-human identity such as a service account or AI‑driven process can simply be given a Snowflake password and start querying data safely. In reality, a non‑human identity that holds static credentials provides unrestricted, un‑audited access and bypasses any data‑masking controls you may have in place.

Why non‑human identity needs a gateway

Non‑human identities, service accounts, CI pipelines, or large language model (LLM) agents, drive automation, but they also create a unique risk surface. Unlike a human user, an automated actor cannot be prompted for a one‑off approval, and credential rotation is often overlooked. When such an identity reaches Snowflake directly, the connection skips runtime guardrails: no command‑level audit, no inline masking of sensitive columns, and no session recording for later forensic review.

What the access model must include

To keep the benefits of automation while preserving security, you must satisfy three requirements:

  • Identity verification. Your OIDC or SAML provider authenticates the non‑human principal and supplies a token that ties every request to a verifiable identity.
  • Credential isolation. hoop.dev stores the Snowflake service‑account credentials and presents them only to Snowflake; the MCP server never receives the password.
  • Enforcement in the data path. Every query and response passes through a point where masking, approval, and logging can be applied.

When all three pieces work together, you can claim that the non‑human identity operates under a controlled, auditable policy.

hoop.dev as the Layer 7 access gateway

hoop.dev fills the missing data‑path control. It runs a network‑resident agent next to Snowflake and proxies all traffic. When an MCP server needs to run a query, it authenticates to hoop.dev via OIDC. hoop.dev validates the token, extracts group membership, and decides whether the request is allowed.

Because hoop.dev acts as the session principal for Snowflake, it alone holds the Snowflake credentials. The MCP server never sees those secrets, eliminating the risk of credential leakage. Once the request passes policy, hoop.dev forwards it to Snowflake using its own service account.

Enforcement outcomes that only the gateway can provide

Placing hoop.dev in the data path gives you a suite of controls that a non‑human identity could not achieve on its own:

  • Inline data masking. hoop.dev redacts PCI, PHI, or other regulated fields before the result reaches the MCP server, protecting downstream systems from accidental exposure.
  • Command‑level audit. hoop.dev logs every SQL statement issued by the MCP server, attaching the originating identity, timestamp, and result metadata. The logs are stored outside Snowflake, making them available for independent audit.
  • Just‑in‑time approval. If a query matches a high‑risk pattern, such as a full table scan on a sensitive schema, hoop.dev pauses execution and routes the request to a human approver. The MCP server receives a clear “approved” or “denied” response without ever seeing the data.
  • Session recording. hoop.dev captures the entire interaction, from handshake through query results, for replay during investigations or compliance audits.

All of these outcomes exist only because hoop.dev sits between the MCP server and Snowflake; they cannot be achieved by merely configuring a service account in Snowflake.

How the integration looks at a high level

1. Deploy the hoop.dev gateway using the Docker Compose quick‑start or your preferred orchestration platform. The deployment includes an OIDC‑aware authentication layer and the Snowflake connector.

Continue reading? Get the full guide.

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

Free. No spam. Unsubscribe anytime.

2. Register Snowflake as a connection in hoop.dev. Provide the Snowflake account identifier and the service‑account credentials that hoop.dev will use to speak to Snowflake.

3. Configure the MCP server (or any AI‑driven runtime) to obtain an OIDC token from your identity provider. The token represents the non‑human identity and carries the groups that define its access policy.

4. When the MCP server initiates a Snowflake query, it sends the request to hoop.dev. hoop.dev validates the token, checks the policy, applies masking rules, records the session, and forwards the query to Snowflake.

5. hoop.dev returns the masked result to the MCP server, completing the loop.

This flow guarantees that the non‑human identity never touches raw credentials and that every interaction obeys policy.

Getting started quickly

For a step‑by‑step walkthrough, see the getting‑started guide. It walks you through deploying the gateway, adding a Snowflake target, and configuring an OIDC client for your service accounts. Detailed feature explanations, such as how masking policies are defined, are available in the learn section.

FAQ

Do I still need to rotate Snowflake credentials?

Yes, but rotation happens on the credential stored inside hoop.dev, not on every service that uses the non‑human identity. This reduces the operational burden dramatically.

Can I use multiple identity providers?

hoop.dev supports any OIDC or SAML provider, so you can federate service accounts from several clouds or internal IdPs without changing the gateway.

Is the masking configurable per table or column?

Masking rules live in hoop.dev’s policy language and can target specific schemas, tables, or columns. The policy evaluates each response before it leaves the gateway.

Take the next step

If you’re ready to secure your AI‑driven Snowflake workloads, clone the open‑source repository and start experimenting:

https://github.com/hoophq/hoop

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