Data Sharing

Snowflake Data Sharing Across Cloud Providers (AWS to Azure) Using Listings

Celestinfo Software Solutions Pvt. Ltd. Jan 09, 2025

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


2. Private Listings


To walk through the process together, we’ll use:



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

Execute the following query in the AWS Snowflake account name

        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”.


Snowflake cross-cloud data sharing configuration step

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’.


Snowflake cross-cloud data sharing configuration step

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’.


Snowflake cross-cloud data sharing configuration step

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.


Snowflake cross-cloud data sharing configuration step

8. Publish the listing.


Snowflake cross-cloud data sharing configuration step

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”.


Snowflake cross-cloud data sharing configuration step

2. Select our previously created listing “DATA_SHARING”.

3. In the “Who can access” section, click on three dots and select “Update refresh frequency”.


Snowflake cross-cloud data sharing configuration step

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.


Snowflake cross-cloud data sharing configuration step

Snowflake cross-cloud data sharing configuration step

Step 4: Accept the Listing (Azure Snowflake)


1. Log into the Azure Snowflake account.

2. Navigate to “Data Products” → “DATA_SHARING”.


Snowflake cross-cloud data sharing configuration step

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


Snowflake cross-cloud data sharing configuration step

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.


Snowflake cross-cloud data sharing configuration step

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.

Pranay Vatsal, Founder & CEO

Pranay Vatsal is the Founder & CEO of CelestInfo with deep expertise in Snowflake, data architecture, and building production-grade data systems for global enterprises.

Related Articles

Burning Questions
About CelestInfo

Simple answers to make things clear.

Our AI insights are continuously trained on large datasets and validated by experts to ensure high accuracy.

Absolutely. CelestInfo supports integration with a wide range of industry-standard software and tools.

We implement enterprise-grade encryption, access controls, and regular audits to ensure your data is safe.

Insights are updated in real-time as new data becomes available.

We offer 24/7 support via chat, email, and dedicated account managers.

Still have questions?

Ready? Let's Talk!

Get expert insights and answers tailored to your business requirements and transformation.