惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
S
Securelist
C
Cisco Blogs
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Vulnerabilities – Threatpost
Latest news
Latest news
T
The Exploit Database - CXSecurity.com
小众软件
小众软件
S
SegmentFault 最新的问题
罗磊的独立博客
I
Intezer
雷峰网
雷峰网
T
Threatpost
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
AWS News Blog
AWS News Blog
A
Arctic Wolf
P
Privacy International News Feed
The Register - Security
The Register - Security
Vercel News
Vercel News
L
LangChain Blog
S
Schneier on Security
D
Docker
J
Java Code Geeks
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
M
MIT News - Artificial intelligence
Spread Privacy
Spread Privacy
MyScale Blog
MyScale Blog
量子位
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
K
Kaspersky official blog
C
CERT Recently Published Vulnerability Notes
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Recorded Future
Recorded Future
C
Cyber Attacks, Cyber Crime and Cyber Security
Scott Helme
Scott Helme
Security Latest
Security Latest
人人都是产品经理
人人都是产品经理
T
Threat Research - Cisco Blogs
Cyberwarzone
Cyberwarzone
F
Full Disclosure
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
NISL@THU
NISL@THU
P
Proofpoint News Feed
T
The Blog of Author Tim Ferriss

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Differences Between Snowflake Editions and Secure Connectivity with AWS
Aki · 2026-05-15 · via DEV Community

Original Japanese article: Snowflakeのエディションごとの違いとAWSとのセキュアな接続方法

Introduction

I'm Aki, an AWS Community Builder (@jitepengin).

More and more organizations are adopting Snowflake as their data platform.
However, once you actually start planning an implementation, there is often a surprisingly common question:

“Which Snowflake edition should we choose?”

In particular, many teams struggle to decide between Enterprise Edition and Business Critical Edition.

This becomes even more important when Snowflake is used together with AWS and there is a requirement for secure network connectivity.

Snowflake offers four editions, and higher editions provide stronger capabilities around security, compliance, and availability.
In addition, private connectivity using AWS PrivateLink requires Business Critical Edition or higher.

This means that if you initially start with Enterprise Edition and later realize that you need PrivateLink, migrating afterward can introduce additional operational and architectural effort.

In this article, I would like to briefly organize the differences between Snowflake editions and then explore how to securely connect Snowflake with AWS using Business Critical Edition, especially through AWS PrivateLink.


Differences Between Snowflake Editions (Quick Overview)

Snowflake provides the following four editions.
Each higher edition includes all functionality from the lower editions, while credit pricing increases accordingly.

Edition Positioning Major Additional Features
Standard Entry-level Core features, Time Travel (1 day), SSO, Network Policies
Enterprise Large-scale / Production workloads Multi-cluster warehouses, Materialized Views, Time Travel (up to 90 days), Column- and Row-level security
Business Critical Regulated industries Tri-Secret Secure, AWS PrivateLink, Failover, HIPAA / PCI DSS
Virtual Private Snowflake (VPS) Highest isolation level Fully isolated Snowflake environment with dedicated infrastructure

Standard Edition

This is the entry-level edition and provides the core Snowflake functionality.

It includes capabilities such as:

  • SQL processing
  • Semi-structured data support
  • Data sharing
  • 1-day Time Travel

For organizations simply looking to use Snowflake as a data warehouse, Standard Edition is often sufficient.

It is generally a good fit for startups or smaller analytics teams that want to begin using Snowflake quickly.


Enterprise Edition

Enterprise Edition adds several features that are effectively essential for production workloads.

Key additions include:

  • Multi-cluster warehouses (for scaling concurrent users)
  • Materialized Views
  • Extended Time Travel (up to 90 days)
  • Column-level and row-level security
  • Dynamic Data Masking
  • Query Acceleration Service
  • Search Optimization Service

In practice, Enterprise Edition often feels like the real starting point for production Snowflake environments.

As data volume and concurrency increase, multi-cluster warehouses become especially important.


Business Critical Edition

Business Critical Edition is designed for organizations handling regulated or highly sensitive data.

In addition to all Enterprise features, it includes:

  • AWS PrivateLink / Azure Private Link / Google Private Service Connect
  • Tri-Secret Secure (dual encryption using customer-managed keys)
  • Account failover / failback
  • Client redirect
  • Compliance support for HIPAA, HITRUST CSF, PCI DSS, FedRAMP

If you are handling sensitive information such as:

  • PHI (medical data)
  • PCI-related cardholder data
  • Personally identifiable information

then Business Critical Edition becomes necessary.

It is also mandatory if your networking requirements specify that connectivity must avoid the public internet and use PrivateLink instead.

Data is one of the most important enterprise assets.
For that reason alone, I often see organizations adopting Business Critical Edition.


Virtual Private Snowflake (VPS)

This is Snowflake’s highest edition and provides a dedicated Snowflake environment.

Infrastructure is completely isolated and hardware resources are not shared with other customers.

It is intended for organizations with extremely strict security requirements, such as:

  • Financial institutions
  • Government agencies

I personally have not worked with VPS directly, and pricing/details require contacting Snowflake, so I will omit deeper discussion here.


Which Edition Should You Choose?

From a practical perspective, the decision criteria often look something like this:

  • Standard: Evaluation, PoC, small analytics teams
  • Enterprise: General production workloads (this is where many companies start)
  • Business Critical: Regulated industries, sensitive data, or mandatory PrivateLink requirements
  • VPS: Financial/government environments requiring complete isolation

One important point is that if you simply decide to “start with Enterprise,” you cannot use PrivateLink.

Because of this, it is safest to validate networking requirements at the beginning of the project.

Upgrading later is possible, but it may require revisiting architecture and pricing assumptions.


Considering Connectivity with AWS

When using Snowflake on AWS, network design—specifically how clients and applications connect—is tightly related to edition selection.

Here, I would like to organize connectivity approaches from both the Enterprise and Business Critical perspectives.


Connectivity with Enterprise Edition

Enterprise Edition does not support AWS PrivateLink, so connectivity to Snowflake is fundamentally internet-based.


Client / AWS Services
        ↓
    Internet
        ↓
    Snowflake

Enter fullscreen mode Exit fullscreen mode

Hearing “internet-based connectivity” may sound concerning at first.
However, even with Enterprise Edition, it is possible to achieve a practical security level by combining multiple controls.


1. Restricting Source IPs with Network Policies

Snowflake network policies can restrict allowed source IP addresses.

By limiting access to known egress IPs such as:

  • Corporate network addresses
  • Elastic IPs attached to NAT Gateways

you can significantly reduce the risk of unauthorized access.


2. Key Pair Authentication + AWS Secrets Manager

For credential management, password authentication should generally be avoided in favor of key pair authentication.

As of 2026, Snowflake is actively moving away from single-factor password authentication.
For system integrations, Key Pair authentication or OAuth is now the recommended approach.

When connecting from services such as AWS Lambda, storing private keys in AWS Secrets Manager is a practical approach.


Event Source
    ↓
AWS Lambda
    ↓
Secrets Manager
    ↓
Retrieve Private Key
    ↓
Snowflake (TLS over Internet)

Enter fullscreen mode Exit fullscreen mode

I covered this approach in a previous article as well:

Securely Implementing Snowflake AWS Lambda Integration with Key Pair Authentication + Secrets Manager


3. TLS Encryption

All communication with Snowflake is encrypted via TLS.

This means the communication channel itself remains confidential.

In other words, even with Enterprise Edition, combining:

  • IP restrictions
  • Key Pair authentication
  • TLS encryption

can provide a practical level of security.

However, traffic still traverses the public internet.


Limitations of Enterprise Edition

Enterprise Edition cannot satisfy requirements such as:

  • Audit/compliance mandates requiring “no internet-based connectivity”
  • Internal security policies mandating PrivateLink
  • Handling regulated data under HIPAA or PCI DSS
  • Encrypting data using customer-managed KMS keys (Tri-Secret Secure)

Once these requirements appear, Business Critical Edition or higher becomes necessary.


Connectivity with Business Critical Edition

Business Critical Edition supports AWS PrivateLink, enabling private connectivity between AWS VPCs and Snowflake.

In this architecture, traffic remains entirely within the AWS backbone network and never traverses the public internet.


    AWS VPC
        ↓
VPC Interface Endpoint
        ↓
 AWS PrivateLink
        ↓
   Snowflake VPC

Enter fullscreen mode Exit fullscreen mode


High-Level Setup Procedure

Following the official documentation, the configuration can be summarized in several major steps.


1. Enable PrivateLink on the Snowflake Side

Using the ACCOUNTADMIN role, authorize AWS PrivateLink for the Snowflake account.

First, obtain a federation token using AWS STS.

aws sts get-federation-token --name your-user-name

Enter fullscreen mode Exit fullscreen mode

Then execute authorization from the Snowflake side.

USE ROLE ACCOUNTADMIN;

SELECT SYSTEM$AUTHORIZE_PRIVATELINK(
  '<aws_account_id>',
  '<federated_token>'
);

Enter fullscreen mode Exit fullscreen mode

You can verify authorization with the following function.

SELECT SYSTEM$GET_PRIVATELINK('<aws_account_id>', '<federated_token>');

Enter fullscreen mode Exit fullscreen mode

If the response returns:

Account is authorized for PrivateLink.

Enter fullscreen mode Exit fullscreen mode

then authorization succeeded.


2. Retrieve the VPC Endpoint ID

Retrieve the information required for AWS VPC Endpoint creation.

SELECT SYSTEM$GET_PRIVATELINK_CONFIG();

Enter fullscreen mode Exit fullscreen mode

Take note of the privatelink-vpce-id value returned in the JSON response.

This ID becomes the “service name” when creating the VPC Endpoint on AWS.


3. Create the VPC Endpoint on AWS

Create an AWS VPC Interface Endpoint using the following configuration.

  • Service Name: the privatelink-vpce-id
  • VPC: the source VPC
  • Subnets: multi-AZ deployment is recommended
  • Security Groups: allow ports 443 and 80 from Lambda/EC2

Port 80 is required for OCSP (certificate revocation checking), so do not forget to allow it.


4. Configure DNS

When using PrivateLink, the Snowflake account URL changes to the following format:

<account_identifier>.privatelink.snowflakecomputing.com

Enter fullscreen mode Exit fullscreen mode

You must create a CNAME record mapping the endpoint returned by SYSTEM$GET_PRIVATELINK_CONFIG() to the DNS name of the AWS VPC Endpoint.

Using a Route 53 Private Hosted Zone is the most common approach.


5. Verify Connectivity

Finally, verify connectivity from the client side.

For diagnostics, the SnowCD (Snowflake Connectivity Diagnostic Tool) is useful for validating PrivateLink connectivity.

snowcd <hostfile>

Enter fullscreen mode Exit fullscreen mode


Configuring VPC Endpoints for S3 Access

This is an easy detail to overlook.

Snowflake drivers such as:

  • JDBC
  • ODBC
  • Python Connector

internally access Amazon S3 during data load/unload operations against stages.

Even if Snowflake connectivity itself is private via PrivateLink, S3 traffic may still traverse the public internet unless additional configuration is performed.

Available approaches include:

  • Creating AWS VPC Interface Endpoints for Snowflake internal stages (recommended)
  • Creating an S3 Gateway Endpoint to privatize S3 bucket access
  • Allowing internet-based S3 access (strongly discouraged)

If you want a fully private architecture, Snowflake officially recommends creating VPC Interface Endpoints for internal stages.


Blocking Public Access

After establishing PrivateLink connectivity, you can also block public access from the Snowflake side.

This allows only PrivateLink-based connectivity.

CREATE NETWORK POLICY privatelink_only
  ALLOWED_IP_LIST = ('10.0.0.0/8');

ALTER ACCOUNT SET NETWORK_POLICY = privatelink_only;

Enter fullscreen mode Exit fullscreen mode

Snowflake also provides:

  • SYSTEM$ENFORCE_PRIVATELINK_ACCESS_ONLY
  • “Enforce privatelink-only access”

which are also valid approaches.

Combining VPN-based corporate IP ranges with PrivateLink-only access can create an even more secure architecture.


Leveraging Tri-Secret Secure

Business Critical Edition also supports Tri-Secret Secure using AWS KMS customer-managed keys (CMKs).

This mechanism requires both:

  • Snowflake-managed keys
  • Customer-managed keys

as an AND condition for decryption.

Even if Snowflake itself were compromised, data could not be decrypted without the customer-managed key.

Combining:

  • PrivateLink
  • Tri-Secret Secure

creates a very strong architecture for regulatory compliance.

I have not personally implemented this feature, so I will omit further details here.


Cross-Region Connectivity

AWS PrivateLink is fundamentally designed for same-region connectivity.

However, Business Critical Edition and above also support cross-region connectivity.

For example:

  • Snowflake account in US-EAST
  • AWS VPC in AP-NORTHEAST-1 (Tokyo)

can still communicate privately via PrivateLink.

That said, there are several caveats:

  • PaaS services such as S3 and KMS do not support cross-region PrivateLink
  • Government and China regions are not supported
  • “Enable Cross Region Endpoint” must be enabled in the VPC console

In practice, aligning the Snowflake region with the application region generally results in a simpler and easier-to-operate architecture.

Still, for globally distributed data platforms, these considerations become important.


Balancing Edition Selection and Cost

Business Critical Edition provides major security advantages, but the credit cost is roughly 1.3x higher than Enterprise Edition.

As rough on-demand reference pricing for US East in 2026:

  • Standard: approximately $2/credit
  • Enterprise: approximately $3/credit
  • Business Critical: approximately $4/credit

If you have a strict requirement that traffic must never traverse the public internet, Business Critical is effectively the only option.

However, from a practical standpoint, balancing data sensitivity and cost often leads to architectures such as:

  • Production data warehouse (including sensitive data): Business Critical
  • Development / testing environments: Enterprise
  • Dedicated data sharing accounts: Enterprise

Using multiple editions strategically within the same organization can also be a reasonable approach.


Conclusion

In this article, including some reflections from my own experience, I introduced the differences between Snowflake editions and explored secure AWS connectivity using Business Critical Edition.

The key points are:

  • Snowflake provides four editions (Standard / Enterprise / Business Critical / VPS), with higher editions adding stronger security and compliance capabilities
  • AWS PrivateLink requires Business Critical Edition or higher, so networking/security requirements should be validated early
  • Even Enterprise Edition can achieve reasonable security through network policies, Key Pair authentication, and TLS
  • Business Critical enables private connectivity between AWS VPCs and Snowflake through PrivateLink, fully isolating traffic from the public internet
  • S3 access must also be privatized, so VPC Endpoints for internal stages should be configured as well
  • Combining Tri-Secret Secure with PrivateLink enables architectures well suited for regulatory compliance

I think many teams struggle specifically with deciding between Enterprise Edition and Business Critical Edition.

Although edition upgrades are possible later, they can significantly impact both architecture and cost.
For that reason, it is best to organize these requirements carefully during the early stages of requirements definition and architecture design.

I hope this article helps anyone looking to use Snowflake securely on AWS.