Prerequisites
- A Snowflake user for Infisical to connect as.
- A warehouse the user’s role can use.
- A gateway on version 0.43.133 or later that can reach your Snowflake account. Earlier gateways don’t support Snowflake and refuse the session. Snowflake returns large results from cloud object storage rather than from the account host, so a gateway behind an egress allowlist needs that storage reachable too.
- A key pair or a programmatic access token for that user. Snowflake blocks single-factor password sign-in for human users, so password authentication only works for a service user whose account policy still permits it.
Creating an account
1
Start adding an account
Go to Privileged Access Management → Accounts and select Add Account.
2
3
Enter connection details
4
Enter credentials
5
Save
Select Create. Infisical signs in to Snowflake and runs one statement to confirm the credential and the warehouse work before saving the account.
Key pair authentication
Generate a key pair, then assign the public key to the Snowflake user:infisical_key.p8 into Private Key, then delete your local copy. Snowflake keeps two key slots per user, RSA_PUBLIC_KEY and RSA_PUBLIC_KEY_2, so you can add a new key before removing the old one.
To rotate the key pair on a schedule instead of by hand, use a Snowflake user key pair rotation.
Programmatic access token authentication
Snowflake only issues a token to a user who is subject to a network policy, and only when the token is restricted to a role:Permissions
What a session can do comes from the role the account activates, so grant that role only what the people using the account need. At minimum it needsUSAGE on the warehouse and the database, and USAGE on each schema whose tables should appear in Web Access:
USE ROLE to switch to any other role the credential holds. Grant the credential only the roles the people using the account should reach.
Command blocking matches the text of each statement, so a statement that builds SQL at runtime, such as EXECUTE IMMEDIATE, can run something a pattern would otherwise reject. Use Snowflake privileges for restrictions that have to hold.
Connecting
- Web Access
- CLI
Web Access provides a browser-based interface with two tools:
- Data Explorer — browse tables, view data, filter and sort, edit rows, export to CSV/JSON
- SQL Editor — write and run SQL queries, use transactions
- Go to Privileged Access Management → Accounts
- Find the account and select the rocket icon (or select Launch Session from the menu)
- Select Connect in Browser
Snowflake doesn’t enforce primary keys, but the Data Explorer still needs one declared on a table before it can edit that table’s rows. A table without one is read-only in the grid, and editable from the SQL editor.
Recording
Every statement a session runs is recorded, along with the outcome of each one, and appears under Session Logs on the session. Web Access and the CLI both reach Snowflake through the gateway, so recording works the same for either. Recordings are encrypted with a per-session key and written to the storage backend the template selects, the same as any other account type. The template’s Command Blocking policy applies to Snowflake as well: a statement matching one of its patterns is rejected before it reaches Snowflake, and the rejection is recorded. Session Log Masking patterns are applied to the recording before it’s written.Next steps
Sessions
View and manage sessions.
Access requests
Require approval before a session starts.