Snowflake
Visualize Snowflake cloud resources, map Snowflake users to employees, and monitor changes through queries and alerts.
- Installation
- Authorization
- Data Model
- Types
- Release Notes
Installation
This integration reads from your Snowflake account using SHOW commands run under the connecting user's current role. Each SHOW command only returns objects the current role has at least one access privilege on, unless the role holds the MANAGE GRANTS privilege. By default, only the ACCOUNTADMIN and SECURITYADMIN roles hold MANAGE GRANTS, which lets them see every object in the account. To ingest a complete inventory, connect with a role that holds MANAGE GRANTS (or the equivalent broad grants).
Prerequisites
Before you begin, make sure you have:
- A Snowflake user that the integration can connect as, with its account name (for example,
xy12345.us-east-2.aws). - A role for that user that can run
SHOWcommands across the objects you want to ingest.SHOW USERSonly fills in user details (beyond the name) for a role that owns the user or holds MANAGE GRANTS, so use the ACCOUNTADMIN or SECURITYADMIN role, or a role that has been granted MANAGE GRANTS, for a complete inventory. - For the optional Organization and Accounts ingestion sources (disabled by default), the Accounts source runs
SHOW ACCOUNTS, which only an organization administrator (the ORGADMIN role, in an ORGADMIN-enabled account) can run. Leave the Accounts source disabled if the integration's role is not an organization administrator.
Choose an authentication method
This integration supports two authentication methods:
- Key Pair Authentication (recommended)
- Basic Authentication
Key pair authentication is recommended because it does not store a password in the integration configuration.
Create a key pair (Key Pair Authentication)
- Generate at least a 2048-bit RSA key pair in PEM format, following the Snowflake key-pair authentication guide. Encrypted private keys are supported; if you encrypt the key, note its passphrase.
- Assign the public key to the Snowflake user the integration will connect as.
- Set that user's
DEFAULT_ROLEto the role described in the prerequisites. Key pair authentication has no Role field, so the integration runs under the user's default role. - Keep the private key file available for the integration configuration in JupiterOne.
Configuration in JupiterOne
To configure the Snowflake integration in JupiterOne:
- Navigate to the Integrations tab and select Snowflake.
- Click New Instance to begin the setup.
- Choose either Key Pair Authentication - Recommended or Basic Authentication.
Every integration instance also requires the following:
- The Account Name used to identify the Snowflake account in JupiterOne. Ingested entities have this value stored in
tag.AccountNamewhen theAccountNametoggle is enabled. - A Description to assist in identifying the integration instance, if desired.
- A Polling Interval that fits your monitoring needs. You may leave this as
DISABLEDand manually execute the integration.
Key Pair Authentication (Recommended)
Creating an instance requires:
- Snowflake Account Name: The full name of your account (for example,
xy12345.us-east-2.aws). - Username: The Snowflake user login name to connect with.
- Private Key: The Snowflake user's private key file. Encrypted and unencrypted keys are both supported.
- Private Key Passphrase: The passphrase used to encrypt the private key file. Leave this empty when the private key is unencrypted.
Basic Authentication
Creating an instance requires:
- Snowflake Account Name: The full name of your account (for example,
xy12345.us-east-2.aws). - Username: The Snowflake user login name to connect with.
- Password: The password for the Snowflake user.
- Role: The default security role to use for the session after connecting.
Once all the values are provided, click Create to complete the integration setup.
Next Steps
With your integration instance configured, it will start running based on the polling interval you selected, ingesting data into JupiterOne. For further details on managing your integration instance, refer to our Instance Management Guide.
Roles
RBAC roles that must be assigned to the integration principal.
Show Roles (2)
MANAGE GRANTS (ACCOUNTADMIN or SECURITYADMIN)ORGADMIN (organization administrator)
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (11)
SELECT CURRENT_ACCOUNT_NAME()SELECT CURRENT_ORGANIZATION_NAME()SHOW ACCOUNTSSHOW DATABASESSHOW GRANTS OF ROLESHOW GRANTS ON DATABASESHOW ROLESSHOW SCHEMAS IN DATABASESHOW TABLES IN SCHEMASHOW USERSSHOW WAREHOUSES
Documentation Links
Links to provider documentation relevant to setup and configuration.
Show Documentation Links (8)
- https://docs.snowflake.com/en/sql-reference/functions/current_organization_name
- https://docs.snowflake.com/en/sql-reference/sql/show-accounts
- https://docs.snowflake.com/en/sql-reference/sql/show-databases
- https://docs.snowflake.com/en/sql-reference/sql/show-roles
- https://docs.snowflake.com/en/sql-reference/sql/show-schemas
- https://docs.snowflake.com/en/sql-reference/sql/show-tables
- https://docs.snowflake.com/en/sql-reference/sql/show-users
- https://docs.snowflake.com/en/sql-reference/sql/show-warehouses
Per-Step Breakdown
Detailed authorization requirements for each ingestion step.
Show all steps (6)
| Step | Roles | Endpoints |
|---|---|---|
| Build Database Roles Relationships | MANAGE GRANTS (ACCOUNTADMIN or SECURITYADMIN) | SHOW GRANTS ON DATABASE |
| Build User Roles Relationships | MANAGE GRANTS (ACCOUNTADMIN or SECURITYADMIN) | SHOW GRANTS OF ROLE |
| Fetch Databases | MANAGE GRANTS (ACCOUNTADMIN or SECURITYADMIN) | SHOW DATABASES |
| Fetch Organization Accounts | ORGADMIN (organization administrator) | SELECT CURRENT_ACCOUNT_NAME(), SHOW ACCOUNTS |
| Fetch Schemas | MANAGE GRANTS (ACCOUNTADMIN or SECURITYADMIN) | SHOW SCHEMAS IN DATABASE |
| Fetch Tables | MANAGE GRANTS (ACCOUNTADMIN or SECURITYADMIN) | SHOW TABLES IN SCHEMA |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | snowflake_account | Account |
| Database | snowflake_database | DataStore, Database |
| Organization | snowflake_organization | Account |
| Role | snowflake_role | AccessRole |
| Schema | snowflake_schema | DataStore, Database |
| Table | snowflake_table | DataStore, Database |
| User | snowflake_user | User |
| Warehouse | snowflake_warehouse | DataStore, Database |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
snowflake_account | HAS | snowflake_user |
snowflake_database | ALLOWS | snowflake_role |
snowflake_database | HAS | snowflake_schema |
snowflake_organization | HAS | snowflake_account |
snowflake_schema | HAS | snowflake_table |
snowflake_user | ASSIGNED | snowflake_role |
snowflake_warehouse | HAS | snowflake_database |
Snowflake User
snowflake_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
active | boolean | ||
comment | string | ||
createdOn | number | ||
defaultNamespace | string | ||
defaultRole | string | ||
defaultWarehouse | string | ||
disabled | boolean | ||
expiresAtTime | number | ||
externalAuthDuoEnabled | boolean | ||
externalAuthUid | string | ||
fullName | string | ||
hasPassword | boolean | ||
hasRsaPublicKey | boolean | ||
lastLogin | number | ||
lockedUntilTime | number | ||
loginName | string | ||
minsToUnlock | string | ||
mustChangePassword | boolean | ||
owner | string | ||
snowflakeLock | boolean |
Release Notes
- 2025-02-28 — Added normalized email, email domain, and short login ID properties to Snowflake user entities.
- 2024-10-11 — Added key-pair authentication support as an alternative to password-based authentication for Snowflake connections.
- 2024-09-12 — Added Snowflake organization and account entities, enabling visibility into Snowflake organizational structure and account membership.