プライベートコネクト経由で Salesforce Data Cloud から Snowflake への Data Federation を試してみた

プライベートコネクト経由で Salesforce Data Cloud から Snowflake への Data Federation を試してみた

2025.10.26

はじめに

Salesforce Data Cloud の Snowflake への Data Federation をプライベートコネクト経由で試してみましたので、本記事で内容をまとめてみます。

機能概要

Data Cloud では Zero Copy Data Federation として外部のデータレイクまたは DWH のデータに Data Cloud からクエリできる機能が提供されています。

また Private Connect for Data Cloud として、AWS PrivateLink を使用して、ネットワークトラフィックをパブリックインターネットに公開せずに Data Cloud からデータソースへの接続も可能です。

https://help.salesforce.com/s/articleView?id=data.c360_a_private_connect_data_cloud.htm&type=5

本機能は Snowflake にも対応しており、いずれも同一のクラウドリージョンにホストされている場合、Snowflake データソースと Data Cloud テナント間を専用ネットワークで接続できます。

https://help.salesforce.com/s/articleView?id=data.c360_a_add_network_route_snowflake.htm&type=5

試してみる

前提条件

以下の環境で検証しています。

  • Salesforce Developer Edition
  • Snowflake
    • エディション:Business Critical
    • クラウドリージョン:ca-central-1(AWS)
      • Data Cloud と同一のクラウドリージョン

Snowflakeのプライベートネットワークルートを追加する

Data Cloud での構成前に Snowflake 側で以下を実行し、Snowflake アカウント側の VPC エンドポイントサービスの ID を取得します。

USE ROLE ACCOUNTADMIN;
SELECT SYSTEM$GET_PRIVATELINK_CONFIG();

出力の内、以下の値を控えておきます。

  • privatelink-vpce-id
  • regionless-privatelink-account-url

Data Cloud 側で「設定 > Data Cloud 設定 > プライベートコネクト」から「プライベート ネットワーク ルートの追加」ページで「Snowflake」を選択します。

image

ルート名には任意の名称を指定し、アカウントURL、VPC エンドポイント ID には、それぞれ上記の手順で取得したregionless-privatelink-account-urlprivatelink-vpce-idを指定し保存します。

image 1

しばらくして、ネットワークルートがプロビジョニングされると、対象のルートのページから Data Cloud 側の VPC エンドポイントの ID を確認できます。ステータスが更新されない場合は、下図右上の「更新」をクリックすると切り替わる可能性があります。

image 2

ネットワークアクセス制御

ここでは設定していませんが、Data Cloud 側の VPC エンドポイントの ID を使用し、Snowflake 側でネットワークポリシーを対象のサービスユーザーに設定することが可能です。

Data Federation Connection の設定

プライベートネットワークルート追加後、このルートを使用する Data Federation 設定を行えます。基本的な手順は通常の Data Federation 時の設定と変わりません。

また、ここでは Workload identity federation による認証を行います。

Data Cloud 画面右上の歯車マークから「Data Cloud 設定」に移動し「外部インテグレーション」メニュー内の「Snowflake」をクリックし、新規のコネクタを作成します。

image 3

次の画面で「非公開ネットワークルートを使用」をオンにし、ネットワークルートには先の手順で作成したルートを指定します。

あわせて外部 ID が表示されるので、この値を使用し Snowflake 側でサービスユーザーを作成します。

image 4

Workload identity federation 向けの Snowflake 側の手順の詳細は以下をご参照ください。

https://dev.classmethod.jp/articles/workload-identity-federation-salesforce-data-cloud-snowflake-data-federation/

各種設定が問題なければ、「次へ」をクリックすると、使用するウェアハウスの選択画面に遷移しコネクタとして保存できます。

image 5

データストリームを作成

プライベートルートを使用するコネクタでデータストリームを作成してみます。データストリームメニューから「新規」をクリックし下図の「Snowflake」をクリックします。

image 6

各種設定を行うとデータストリームとして作成できます。

image 7

ログイン履歴を確認

データストリーム作成後、ログイン履歴を確認してみます。サービスユーザーのアクセス履歴は以下のようになっており、PrivateLink 経由で Workload identity federation による接続であることが確認できました。

>SELECT *
  FROM TABLE(information_schema.login_history_by_user(USER_NAME => 'SF_OIDC_USER', result_limit => 10))
  ORDER BY EVENT_TIMESTAMP DESC
  ->> SELECT
          EVENT_TYPE,
          USER_NAME,
          CLIENT_IP,
          REPORTED_CLIENT_TYPE,
          FIRST_AUTHENTICATION_FACTOR,
          CLIENT_PRIVATE_LINK_ID
      FROM $1 LIMIT 1;
+------------+--------------+-------------+----------------------+-----------------------------+------------------------+
| EVENT_TYPE | USER_NAME    | CLIENT_IP   | REPORTED_CLIENT_TYPE | FIRST_AUTHENTICATION_FACTOR | CLIENT_PRIVATE_LINK_ID |
|------------+--------------+-------------+----------------------+-----------------------------+------------------------|
| LOGIN      | SF_OIDC_USER | 10.76.187.7 | JDBC_DRIVER          | WORKLOAD_IDENTITY           | vpce-xxxxxx            |
+------------+--------------+-------------+----------------------+-----------------------------+------------------------+

さいごに

Salesforce Data Cloud の Snowflake への Data Federation をプライベートコネクト経由で試してみました。
こちらの内容が何かの参考になれば幸いです。

この記事をシェアする

FacebookHatena blogX

関連記事