Snowflake
Snowflake is a Warehouse output connector. Connect to your Snowflake data warehouse to get all your vulnerability data in one place.
IP Allowlists
You might need to add the Monad IP range of 34.210.32.104/32
to your Snowflake allowlist, so Monad can connect to it.
Introduction
In this guide, you will learn how to seamlessly integrate your Snowflake warehouse into Monad (if you still don’t have a Snowflake account, you can create a free one with $400 in credits) - be sure to select “Enterprise” or “Business Critical” edition when signing up.
Editions matter
Our connector needs an “Enterprise” or “Business Critical” instance of Snowflake to operate.
This integration empowers you to centralize your security and environment data, unlocking your BI or SQL analytics tools, or SQL queries on it.
Configuring your Snowflake Environment
Create a Monad Warehouse, Database, Schema and Service Role
Check your access
You MUST have ACCOUNTADMIN
privileges in snowflake to accomplish these steps.
Note
All object names (users, roles, databases, warehouses) in Snowflake are case-sensitive.
The easiest way to configure your Snowflake account to work with Monad is to use a worksheet from the Snowflake UI.
You can access Worksheets from the home screen when logging into Snowflake.
1. Open a Worksheet.
2. Copy + Paste the commands below into your worksheet.
CREATE WAREHOUSE MONAD_WH WITH WAREHOUSE_SIZE = 'XLARGE' WAREHOUSE_TYPE = 'STANDARD' AUTO_SUSPEND = 600 AUTO_RESUME = TRUE MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 2 SCALING_POLICY = 'STANDARD';
CREATE DATABASE MONAD_DB;
CREATE ROLE MONAD_SERVICE_ROLE;
CREATE SCHEMA MONAD_DB.MONAD_SCHEMA;
GRANT USAGE ON DATABASE MONAD_DB to role MONAD_SERVICE_ROLE;
GRANT CREATE SCHEMA ON DATABASE MONAD_DB to role MONAD_SERVICE_ROLE;
GRANT USAGE ON SCHEMA MONAD_DB.MONAD_SCHEMA to role MONAD_SERVICE_ROLE;
GRANT USAGE ON WAREHOUSE MONAD_WH to role MONAD_SERVICE_ROLE;
GRANT ALL PRIVILEGES ON SCHEMA MONAD_DB.MONAD_SCHEMA to role MONAD_SERVICE_ROLE;
GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE MONAD_SERVICE_ROLE;
GRANT SELECT ON FUTURE TABLES IN DATABASE MONAD_DB to role ACCOUNTADMIN;
GRANT SELECT ON ALL TABLES IN DATABASE MONAD_DB to role ACCOUNTADMIN;
What do these commands do?
- Create a warehouse and a database for monad to use
- Create a user and role for Monad to use
- Grant that role the appropriate permissions to the warehouse, database and schema
- Allow the Monad service role the ability to create integrations
- Allow your (ACCOUNTADMIN) role to select from the Monad tables
What if I want to use my existing DB / Schema?
Please contact us if you would like to use an existing DB/Schema for your export - the above commands create a specific DB / Schema for Monad exports.
3. Click the dropdown next to the play button in the upper right and select “Run All” (Or hit “ctrl”+”shift”+”enter”).
4. Wait until the commands have finished running before moving on to the next step. You should see a success status message.
Create your monad service user
1. Delete the text we pasted from step 3 above. You should have an empty worksheet
2. Copy + Paste the below commands into the now empty worksheet:
Note
In the create service user commands below:
- Replace the email address with a valid one for your company.
- Replace PASSWORD with a secure password you record for later use.
CREATE user "MONAD_SERVICE_USER" password = "PASSWORD" email = 'monadservice@example.com' DEFAULT_ROLE = 'MONAD_SERVICE_ROLE' DEFAULT_WAREHOUSE = 'MONAD_WH' must_change_password = false;
GRANT role MONAD_SERVICE_ROLE to user MONAD_SERVICE_USER;
What do these commands do?
- Create a user called
MONAD_SERVICE_USER
with the email and password you choose (that’s why we ask you to replace those parts)
3. Run the command in your worksheet again (“Run All”, or “ctrl”+”shift”+”enter”).
Finding your snowflake account identifier
Monad needs your snowflake account identifier to connect to Snowflake. To find your account identifier, do the following:
1. From your snowflake home page, locate your account button at the bottom left of the screen.
2. Click on your account. It should popup a section to the right with more account info.
3. Hover over the account name to see more info.
4. Click on the copy account url button (chain link icon).
5. Remove the https://
and the .snowflakecomputing.com
from the copied url.
Example replacement
https://pfb93600.prod3.us-west-2.aws.snowflakecomputing.com
–> pfb93600.prod3.us-west-2.aws
6. The result is your account identifier (e.g. pfb93600.prod3.us-west-2.aws
) - note it down for the next steps.
Setting up your Monad Connector
Snowflake is now configured to allow Monad access to write data. The following steps configure Monad to connect to Snowflake.
- Log in to your Monad account, and click Add connector.
- Select the Snowflake connector.
- Fill in the following fields:
- Snowflake account identifier - we recorded this in the Finding your snowflake account identifier section above.
- User should be
MONAD_SERVICE_USER
. - Password should be the password you chose in the Create your monad service user section above.
- Warehouse should be
MONAD_WH
- Database should be
MONAD_DB
- Schema should be
MONAD_SCHEMA
- (Optional) - select your models to export
- Click Connect.
Sample Completed setup form:
Monad then tests the connection to Snowflake, and if successful, begins syncing data from your Monad account into your Snowflake warehouse.
Accessing and Verifying your Data
Now that you’re set up, it’s important to make sure all that hard work has paid off.
We’ll walk through how to verify that your data is flowing into Snowflake.
- From the Snowflake UI, choose the Databases tab.
- Verify that the
MONAD_SCHEMA
contains some tables (including but not limited toMART_FINDING
,MART_SAST_FINDING
,MART_MACHINE
,CISA_KEV_VULNERABILITY
etc)
Note that the exact tables that appear in your warehouse will vary based on your input connectors present.
If you see tables, you’re all set! If not, please reach out. We’re happy to help!
This page was last modified: 13 Oct 2023