Snowflake Data Sharing Across Cloud Providers (AWS to Azure) Using Listings
Last updated: January 2025
Quick answer: Snowflake enables cross-cloud data sharing (e.g., AWS to Azure) using Listings. Create a share containing your database objects, wrap it in a private listing with the target account's locator, and publish it. The consumer account installs the listing to get a read-only database replica -- no data copying, no ETL pipelines, and near-real-time access across cloud providers.
What is a Listing in Snowflake?
A Listing is a way to publish and distribute data from one Snowflake account to another, even across cloud platforms and geographic regions. Its built-on top of Shares but makes them discoverable and consumable by specific accounts or the broader Snowflake Marketplace.
For private (controlled) sharing, Listings act as a bridge: we create a share, wrap it into a listing, and then distribute that listing to target accounts.
Types of Listings in Snowflake
1. Public Listings
- Available on the Snowflake Marketplace.
- Discoverable by all Snowflake users.
- Ideal for open data, commercial datasets, or public APIs.
- Can include documentation, sample queries, and usage instructions.
2. Private Listings
- Shared only with specificSnowflake accounts.
- Not visible in the public Marketplace.
- Best for secure, cross-org, or cross-cloud data sharing.
- Requires the target account locator during listing creation.
To walk through the process together, we’ll use:
- Source Account: AWS_STANDARD ACCOUNT
- Target Account: AZURE_BUSSINESS CRITICAL ACCOUNT
- Goal: Share a table from the source account to the Target account using a Private Listing.
Step-by-Step Guide
Follow along with me step by step as we set up Snowflake data sharing from AWS to Azure using a Private Listing. We’ll start from the provider side and go all the way to seeing the shared table reflected in the consumer account.
Step 1: Check global data sharing on provider account
Switch to ACCOUNTADMIN role
SELECT SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT(‘ACCOUNT_NAME’);
This system function is used to verify and enable global (cross-cloud / cross-region) data sharing for a Snowflake account. It is a mandatory prerequisite when data is shared using Snowflake Listings between different cloud providers such as AWS to Azure or AWS to GCP.
Step 2: Create a Private Listing (AWS Snowflake)
1. Go to “Marketplace” → “Provider Studio”in the Snowflake UI.
2. Click “Create Listing” and select “Specified Consumers”.
3. Give your listing name (In this case it is DATA_SHARING) and click “Save”.
4. Add the data product by selecting database, schema, and tables or views to the share and click ‘Done’.
5. After saving, we must select an access type. In snowflake marketplace or private listing, access type determines how consumers will access and be billed for the data product or application that a provider is offering.
- Free listing allow consumer to access the data product without paying anything for that listing itself. If published privately, only specified accounts can access it(but still free).
- Paid listing require consumer to purchase access before they can install and use the data product.
6. Enter the Consumer Snowflake account identifier and click ‘Save’.
7. After adding consumers, click ‘Add Legal terms. By selecting one legal term and click ’save’.
- Standard Agreement for Market Products: Snowflake provides a standard agreement that governs the use of Marketplace.
- Custom: Providers can define custom legal terms that consumers must review and accept before accessing the listing.
- Terms of service will be provided offline: Providers can manage legal agreements externally when a pre-existing agreement is already in place or when terms are shared outside Snowflake.
8. Publish the listing.
Step 3: Set Refresh Frequency for the Listing
To make sure that the changes in the “provider account” are reflected quickly in the “consumer account”, follow these steps when creating the listing:
1. Go to “Marketplace” → “Provider Studio” in the provider account From the Snowflake UI, click on “Listings”.
2. Select our previously created listing “DATA_SHARING”.
3. In the “Who can access” section, click on three dots and select “Update refresh frequency”.
4. In the “Refresh Frequency” section
- Time Interval: Snowflake automatically refreshes the shared data every minutes/hours/day.
- Scheduled Time: Auto-fulfils listing at a specific scheduled time.
- On-demand only: Refreshes listing only when triggered by task fulfilment.
Step 4: Accept the Listing (Azure Snowflake)
1. Log into the Azure Snowflake account.
2. Navigate to “Data Products” → “DATA_SHARING”.
3. Locate the listing named “DATA_SHARING” and click “Get”.
4. On the configuration screen, either enter a custom database name or leave the default name as is, then click “Get”. By default account admin can access the
5. After the setup is complete, click Done.
6. A new database will now appear in Azure Snowflake account “Data” - this is our live connection to the shared data, ready for querying.
Conclusion
In this documentation, we explored how to share data across different cloud providers using Snowflake Listings, specifically from an AWS-hosted account to an Azure-hosted account. For loading data from Azure into Snowflake before sharing it, see our guide to loading data from Azure Cloud to Snowflake. By using a Private Listing, we were able to securely publish data and access it from another Snowflake account without the need for any ETL jobs or complex integrations.
This approach is simple, scalable, and production-friendly -- ideal for organizations working in multi-cloud environments or collaborating with external partners. For best practices on data access control in analytical platforms, see our strategy guide.
With just a few UI clicks and minimal configuration, we’ve established a live data link across cloud boundaries and ensured frequent refresh intervals.
Frequently Asked Questions
Q: Can I share data between Snowflake accounts on different cloud providers?
Yes. Snowflake supports cross-cloud data sharing through Listings. You can share data from an AWS-hosted Snowflake account to an Azure-hosted Snowflake account (or any other supported cloud combination) without needing ETL jobs or data duplication.
Q: What is the difference between a Private Listing and a public Snowflake Marketplace listing?
A Private Listing is shared directly with specific Snowflake accounts that you designate, making it suitable for internal teams or trusted partners. A public Marketplace listing is discoverable by any Snowflake user. For cross-cloud sharing within an organization, Private Listings are the recommended approach.
Q: How frequently does shared data refresh across cloud providers?
Snowflake cross-cloud data sharing uses auto-fulfillment with configurable refresh intervals. You can set a schedule (for example, every 10 minutes) so that data consumers receive near-real-time updates from the provider account.