Snowflakeはデフォルトでパブリックインターネット経由のTLS接続をサポートしますが、 金融・医療などのコンプライアンス要件が厳しい環境では、クラウドプロバイダのプライベートバックボーンを経由した接続が求められます。 AWSではAWS PrivateLink、AzureではAzure Private Link、GCPではPrivate Service Connect(PSC)を使って、 Snowflakeへの通信をインターネットに出さずにクラウド内部ネットワークで完結させます。Business Critical Edition以上が必要です。
| 比較項目 | AWS PrivateLink | Azure Private Link | GCP Private Service Connect |
|---|---|---|---|
| 必要Edition | Business Critical以上 | Business Critical以上 | Business Critical以上 |
| Snowflake側の有効化 | SYSTEM$AUTHORIZE_PRIVATELINK() | SYSTEM$AUTHORIZE_PRIVATELINK() | SYSTEM$AUTHORIZE_PRIVATELINK() |
| 顧客側の作成対象 | VPC Endpoint(Interface型) | Private Endpoint | PSC Endpoint + Forwarding Rule |
| DNS設定 | Route 53 Private Hosted Zone | Private DNS Zone | Cloud DNS Private Zone |
| DNS CNAME先 | <account>.privatelink.snowflakecomputing.com | <account>.privatelink.snowflakecomputing.com | <account>.privatelink.snowflakecomputing.com |
| ステージへのPrivate接続 | 別途S3 VPC Endpoint(Gateway型) | 別途Storage Private Endpoint | 別途GCS Private Service Connect |
| Snowpipeとの互換性 | サポートあり | サポートあり | サポートあり |
| リージョン制約 | 同一リージョン内のみ | 同一リージョン内のみ | 同一リージョン内のみ |
-- Step 1: Snowflakeアカウントに対してPrivateLinkを認可
-- ACCOUNTADMINで実行
SELECT SYSTEM$AUTHORIZE_PRIVATELINK(
'<aws_account_id>',
'<vpc_endpoint_id>'
);
-- Step 2: PrivateLinkの設定情報を取得
SELECT SYSTEM$GET_PRIVATELINK_CONFIG();
-- 戻り値にVPC Service Name、OCSP URL等が含まれる
-- Step 3(AWS Console / CLI):
-- VPC Endpoint(Interface型)を作成
-- Service Name: com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxx
-- VPCとサブネットを指定
-- Step 4: Route 53 Private Hosted Zoneを作成
-- ゾーン名: privatelink.snowflakecomputing.com
-- CNAMEレコード:
-- <account_locator> → VPC Endpoint DNS名
-- <orgname>-<account_name> → VPC Endpoint DNS名-- Step 1: SnowflakeでPrivateLinkを認可
SELECT SYSTEM$AUTHORIZE_PRIVATELINK(
'<azure_subscription_id>',
'<private_endpoint_resource_id>'
);
-- Step 2: 設定情報を取得
SELECT SYSTEM$GET_PRIVATELINK_CONFIG();
-- Step 3(Azure Portal / CLI):
-- Private Endpointを作成
-- Resource Type: Microsoft.Snowflake/accounts
-- Target Sub-resource: snowflake
-- Step 4: Private DNS Zone設定
-- ゾーン名: privatelink.snowflakecomputing.com
-- Aレコード: <account_locator> → Private Endpoint IP-- Step 1: SnowflakeでPSCを認可
SELECT SYSTEM$AUTHORIZE_PRIVATELINK(
'<gcp_project_id>'
);
-- Step 2: 設定情報を取得(Service Attachment URI等)
SELECT SYSTEM$GET_PRIVATELINK_CONFIG();
-- Step 3(GCP Console / gcloud):
-- PSC Endpointの作成
-- gcloud compute forwarding-rules create snowflake-psc \
-- --region=<region> \
-- --network=<vpc-name> \
-- --address=<reserved-internal-ip> \
-- --target-service-attachment=<service-attachment-uri>
-- Step 4: Cloud DNS Private Zoneの設定
-- ゾーン名: privatelink.snowflakecomputing.com
-- Aレコード: <account_locator> → 予約した内部IPアドレスSnowflakeクライアントドライバは、TLS接続時にOCSP(Online Certificate Status Protocol)で証明書の失効状態をチェックします。 PrivateLink環境では以下の対応が必要です。
| モード | 動作 | 対策 |
|---|---|---|
| Fail-Open(デフォルト) | OCSPレスポンダに到達できない場合、接続を許可 | 追加対策不要だがセキュリティリスクあり |
| Fail-Close | OCSPレスポンダに到達できない場合、接続を拒否 | OCSPレスポンダへのアウトバウンド接続を許可するか、OCSPキャッシュサーバーを配置 |
-- Internal StageへのPrivateLink接続を有効化
SELECT SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS(
'<account_locator>',
'<aws_account_id>'
);
-- AWS: S3 VPC Endpoint(Gateway型)が別途必要
-- Azure: Blob Storage Private Endpointが別途必要
-- GCP: GCS PSC Endpointが別途必要
-- PrivateLink経由でのステージ操作確認
PUT file:///tmp/data.csv @~;
GET @~/data.csv file:///tmp/;-- PrivateLink経由のみ許可するNetwork Policy
CREATE NETWORK POLICY private_only_policy
ALLOWED_IP_LIST = ('<private_endpoint_ip_range>')
BLOCKED_IP_LIST = ('0.0.0.0/0');
-- アカウントレベルに適用
ALTER ACCOUNT SET NETWORK_POLICY = private_only_policy;
-- この設定により、パブリックエンドポイント経由の
-- アクセスが完全にブロックされるArchitecture & Design
問題 1
AWS上のBusiness Critical EditionのSnowflakeアカウントにAWS PrivateLinkを設定した。VPC EndpointとRoute 53 Private Hosted Zoneを正しく構成したが、SnowSQLクライアントからの接続がまだパブリックエンドポイント経由になっている。最も可能性の高い原因はどれか。
正解: B
VPC EndpointとPrivate Hosted Zoneを作成しても、Private Hosted ZoneがSnowSQLクライアントが存在するVPCに関連付けられていないと、DNS解決がPublic DNS(パブリックIP)を返します。Route 53のPrivate Hosted ZoneはVPCとの明示的な関連付けが必要で、これが欠けているとPrivateLinkのDNS名前解決が機能しません。
PrivateLinkを有効にした後もパブリックエンドポイント経由でアクセスできますか?
PrivateLinkを有効にしただけでは、パブリックエンドポイント経由のアクセスは引き続き可能です。パブリックアクセスを完全にブロックするには、Network Policyを設定してPrivateLink経由のIPアドレスのみを許可する必要があります。SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS()で取得したエンドポイント情報と、Network Policyの併用が推奨されるセキュリティ設計です。
PrivateLink接続時にOCSP証明書失効チェックはどう処理されますか?
PrivateLink接続でもTLS証明書の検証にOCSPチェックが必要です。OCSPレスポンダへのアクセスはインターネット経由になるため、プライベート接続環境でもOCSPレスポンダ(ocsp.snowflakecomputing.com)への外向きHTTPSアクセスを許可する必要があります。完全なインターネット遮断環境では、OCSP Fail-Openモード(デフォルト)を利用するか、OCSPレスポンスキャッシュサーバーを社内に配置する対策を検討します。
3クラウド(AWS/Azure/GCP)のうちどのPrivate接続方式が最もセットアップが簡単ですか?
AWSのPrivateLinkはVPC Endpoint作成とDNSの2ステップで完結するため比較的シンプルです。Azure Private Linkも同様にPrivate Endpoint作成とDNS設定で構成できます。GCPのPrivate Service Connectは、Forwarding Ruleの作成とCloud DNSの設定が必要で、GCP固有の概念(Service Attachment等)の理解が求められるため、若干複雑です。ただし3クラウドともSnowflakeアカウント側でSYSTEM$AUTHORIZE_PRIVATELINK()やSYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS()の実行が必要な点は共通です。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Snowflake資格一覧|全11試験(SnowPro)の難易度・費用
Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...
Snowflake試験の難易度ランキング|全11資格を徹底比較
Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...
Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ
Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...
SnowPro Core試験完全解説|出題範囲・問題例・合格戦略
SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...
SnowPro Platform Associate完全解説|入門試験の攻略
SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...