This collection of AWS CloudFormation resource types allow Snowflake to be controlled using AWS CloudFormation.
Resource | Description | Documentation |
---|---|---|
Snowflake::Database::Database | This resource type manages a Snowflake Database | /Snowflake-Database-Database |
Snowflake::Database::Grant | This resource type manages a Snowflake Database Grant | /Snowflake-Database-Grant |
Snowflake::Role::Grant | This resource type manages a Snowflake Role Grant | /Snowflake-Role-Grant |
Snowflake::Role::Role | This resource type manages a Snowflake Role | /Snowflake-Role-Role |
Snowflake::User::User | This resource type manages a Snowflake User | /Snowflake-User-User |
Snowflake::Warehouse::Grant | This resource type manages a Snowflake Warehouse Grant | /Snowflake-Warehouse-Grant |
To get started:
-
Sign in to the AWS Management Console with your account and navigate to CloudFormation.
-
Select "Public extensions" from the left hand pane and filter Publisher by "Third Party".
-
Use the search bar to filter by the "Snowflake" prefix.
Note: All official Snowflake resources begin with Snowflake::
and specify that they are Published by Snowflake
.
-
Select the desired resource name to view more information about its schema, and click Activate.
-
On the Extension details page, specify:
- Extension name
- Execution role ARN
- Automatic updates for minor version releases
- Configuration
- In your terminal, specify the configuration data for the registered Snowflake CloudFormation resource type, in the given account and region by using the SetTypeConfiguration operation:
For example:
$ aws cloudformation set-type-configuration \
--region us-west-2 --type RESOURCE \
--type-name Snowflake::Database::Database \
--configuration-alias default \
--configuration "{ \"SnowflakeAccess\":{\"Account\":\"YOURACCOUNT\", \"Username\":\"YOURUSERNAME\", \"Password\":\"YOURPASSWORD\"}}"
Note: All Snowflake resources requires a type configuration to be set, except Snowflake::Database::Database
.
- After you have your resource configured, create your AWS stack that includes any of the activated Snowflake resources.
For more information about available commands and workflows, see the official AWS documentation.
The Snowflake CloudFormation resources are available on the CloudFormation Public Registry in the following regions:
Code | Name |
---|---|
us-east-1 | US East (N. Virginia) |
us-east-2 | US East (Ohio) |
us-west-1 | US West (N. California) |
us-west-2 | US West (Oregon) |
ap-south-1 | Asia Pacific (Mumbai) |
ap-northeast-1 | Asia Pacific (Tokyo) |
ap-northeast-2 | Asia Pacific (Seoul) |
ap-southeast-1 | Asia Pacific (Singapore) |
ap-southeast-2 | Asia Pacific (Sydney) |
ca-central-1 | Canada (Central) |
eu-central-1 | Europe (Frankfurt) |
eu-west-1 | Europe (Ireland) |
eu-west-2 | Europe (London) |
eu-west-3 | Europe (Paris) |
eu-north-1 | Europe (Stockholm) |
sa-east-1 | South America (São Paulo) |
Note: To privately register a resource in any other region, use the provided packages.
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Database in Snowflake
Resources:
NewDatabase:
Type: Snowflake::Database::Database
Properties:
Name: ExampleDatabase
DataRetentionTimeInDays: 1
MaxDataExtensionTimeInDays: 1
DefaultDdlCollation: "en-ci"
Comment: "This is a comment"
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Database Grant in Snowflake
Resources:
NewDatabaseGrant:
Type: Snowflake::Database::Grant
Properties:
DatabaseName: MyDatabaseName
Privilege: USAGE
Role: MyRoleName
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Role Grant in Snowflake
Resources:
NewRoleGrant:
Type: Snowflake::Role::Grant
Properties:
RoleName: MyRoleName
User: MyUserName
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Database in Snowflake
Resources:
NewRole:
Type: Snowflake::Role::Role
Properties:
Name: ExampleRole
Comment: This is an example Role
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a User in Snowflake
Resources:
NewUser:
Type: Snowflake::User::User
Properties:
Name: ExampleUser
Password: 07l2S5vWjd0N
FirstName: Example
LastName: User
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Warehouse Grant in Snowflake
Resources:
NewWarehouseGrant:
Type: Snowflake::Warehouse::Grant
Properties:
WarehouseName: MyWarehouseName
Privilege: USAGE
Role: MyRoleName