Skill 50 · Connecting To Data Source
Subchapter 50.6
references/snowflake-setup.mdMarkdown3 KBView on GitHub
AWS Glue native Snowflake connection (type SNOWFLAKE, not JDBC). Required for Glue for Spark ETL jobs reading from or writing to Snowflake.
Use ConnectionType: SNOWFLAKE. Do NOT use a JDBC connection configured with the Snowflake JDBC URL – that path is for Glue crawlers only and cannot be used by Glue for Spark ETL jobs. The two credential types are stored separately in the Data Catalog.
| Mode | When to use | Secret contents |
|---|---|---|
| User + password | Quick start, non-production | username, password |
| Key-pair (RSA) | Production, long-lived workloads | username, private_key (PEM, base64) |
| OAuth 2.0 | Enterprise SSO, credential-free for end users | client_id, client_secret, refresh_token, token URL |
OAuth 2.0 for Glue Snowflake connections was released April 2026. For current Snowflake OAuth setup steps, cite Snowflake’s OAuth docs (opens in a new tab) rather than repeating them.
Password-based:
{
"Name": "snowflake-analytics",
"ConnectionType": "SNOWFLAKE",
"ConnectionProperties": {
"HOST": "<account>.<region>.snowflakecomputing.com",
"WAREHOUSE": "<warehouse-name>",
"ROLE": "<role-name>",
"DATABASE": "<default-database>",
"SECRET_ID": "<secrets-manager-arn>"
}
}The secret must contain snowflakeUser and snowflakePassword keys per Glue’s Snowflake connection convention.
Account identifier formats vary – see Snowflake account identifier docs (opens in a new tab) for the correct form for your region/cloud.
Private sources add PhysicalConnectionRequirements as in jdbc-setup.md.
Snowflake accounts configured for AWS PrivateLink have a different hostname pattern. Glue jobs use the privatelink hostname directly. Configure the Glue connection’s security group to allow outbound to the privatelink endpoint. See Snowflake PrivateLink docs (opens in a new tab).