0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HULFT SquareからSnowflakeにPrivateLinkで接続してみた

0
Last updated at Posted at 2026-03-31

はじめに

こんにちは、すぎもんです:grinning:
本記事では、HULFT SquareからSnowflakeへPrivateLink 経由で接続してみようと思います。AWS PrivateLinkを使うことで、インターネットを経由せずに接続が可能です。

今回やること

HULFT SquareとSnowflakeをPrivateLinkで接続し、HULFT Squareで作成したスクリプトで、Snowflakeのデータベースのレコードを読み取り、CSVファイルに出力してみます。
image.png

それでは早速やってみましょう!

実施手順

以下の手順を実施します。
<Snowflake設定>
1.PrivateLinkの有効化
2.PrivateLink情報を取得
3.SnowflakeテストDB作成
4.キーペア認証の設定
<HULFT Square設定>
5.HULFT SquareのPrivateLink作成
<Snowflake設定>
6.VPCエンドポイントIDアクセス許可
<HULFT Square設定>
7.HULFT Squareのコネクション作成
8.テーブル読み取りスクリプト実行

1. PrivateLinkの有効化<Snowflake設定>

SnowflakeのPrivateLinkを有効化します。

① サポートにPrivateLink有効化を依頼
Snowflakeコンソール画面からサポートにPrivateLink有効化を依頼します。
左下の「アカウントメニュー」をクリックし、メニューから「サポート」をクリックします。

「+ サポート・ケース」ボタンを押下します。
image.png

PrivateLink有効化を依頼します。依頼する際に以下の2つの情報が必要です。

  • 対象の Snowflakeアカウント名
  • 対象の AWSアカウントID (12桁)

2.PrivateLink 情報を取得<Snowflake設定>

HULFT Squareのコネクション設定に使用するSnowflakeのPrivateLink情報を取得します。

① PrivateLinkの情報取得
SnowflakeコンソールのSQLワークシートで以下のSQLを実行し、PrivateLink情報を取得します。

SELECT SYSTEM$GET_PRIVATELINK_CONFIG();

image.png

  • privatelink-account-url
    PrivateLinkのURL。以降の手順で使用するため値をメモしておく
  • privatelink-vpce-id
    VPCE Service 名。以降の手順で使用するため値をメモしておく

3.SnowflakeテストDB作成<Snowflake設定>

Snowflakeに検証用のテストDBを作成します。

① データベース作成
SnowflakeコンソールのSQLワークシートで以下のSQLを実行し、データベースを作成します。
※データベース名を「CONNECTION_TEST_DB」で作成する場合の例

CREATE OR REPLACE DATABASE CONNECTION_TEST_DB;

image.png
「successfully created.」が出力されることを確認します。

② スキーマ作成
以下のSQLを実行し、スキーマを作成します。
※データベース名を「CONNECTION_TEST_DB」、スキーマ名を「TEST_SCHEMA」で作成する場合の例

CREATE OR REPLACE SCHEMA CONNECTION_TEST_DB.TEST_SCHEMA;

image.png
「successfully created.」が出力されることを確認します。

③ テーブル作成
以下のSQLを実行し、テーブルを作成します。
※テーブル名を「TEST_TABLE」、カラムをNUMBER型のIDとVARCHAR型のMESSAGEで作成する場合の例

CREATE OR REPLACE TABLE TEST_TABLE (
    ID NUMBER(38,0),
    MESSAGE VARCHAR(16777216)
);

image.png
「successfully created.」が出力されることを確認します。

④ ウェアハウス名の確認
ウェアハウス名を確認します。

SELECT CURRENT_WAREHOUSE();

image.png
ウェアハウス名が出力されることを確認します。

4.キーペア認証の設定<Snowflake設定>

キーペア認証で使用するキーペアを作成し、Snowflakeユーザーに公開キーを割り当てます。

① 秘密鍵の生成
AWS CloudShell(opensslがインストールされている任意の環境)で以下のコマンドを実行し、任意のパスワードを入力します。

openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8

image.png
秘密鍵が作成されていることを確認します。

② 公開鍵の生成
以下のコマンドを実行し、任意のパスワードを入力します。

openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

image.png
公開鍵が作成されていることを確認します。

③ Snowflakeユーザーに公開キーの割り当て
SnowflakeコンソールのSQLワークシートで以下のSQLを実行します。
RSA_PUBLIC_KEYの値に②で生成した公開キーを指定します。

ALTER USER DEV_ADMIN SET RSA_PUBLIC_KEY='(公開キーを指定)';

image.png

「Statement executed successfully.」が出力されることを確認します。

5.HULFT SquareのPrivateLink作成<HULFT Square設定>

HULFT SquareのPrivateLinkを作成します。

① PrivateLinkを作成
以下の設定でPrivateLinkを作成します。
サービス名:任意の名前
ディレクション:アウトバウンド
接続先:2.PrivateLink 情報を取得<Snowflake設定>で確認したprivatelink-vpce-idの値

次へボタンを押下します。
image.png

完了ボタンを押下し、PrivateLinkを追加します。
image.png

作成された以下の情報を確認します。
image.png

  • サービス名(括弧内の値)
    VPCエンドポイントのDNS名。以降の手順で使用するため値をメモしておく
  • ステータス
    「有効」になっていること

また、PrivateLinkの作成が完了しましたら、「エイリアス」に、2.PrivateLink 情報を取得<Snowflake設定>で確認したprivatelink-account-urlを追加してください。

6.VPCエンドポイントIDアクセス許可<Snowflake設定>

HULFT SquareのVPCエンドポイントIDからの接続をSnowflake側で許可するように設定します。

① VPCエンドポイントID 用ネットワークルール作成
ネットワークルールを作成します。
VALUE_LISTに許可するVPCエンドポイントを指定します。
※ネットワークルール名「ALLOW_VPCEID_ACCESS」でネットワークルールを作成する場合の例

CREATE OR REPLACE NETWORK RULE ALLOW_VPCEID_ACCESS
  MODE = INGRESS
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-XXXXXXXXXXXXXXXXX');

image.png
「Network rule XXXXXXXX is created.」が出力されることを確認します。

② ネットワークポリシー作成
作成したネットワークルールを許可するネットワークポリシーを作成します。
※ネットワークポリシー名「VPCEID_DEV_ADMIN_ACCESS」でネットワークポリシーを作成する場合の例

CREATE NETWORK POLICY VPCEID_DEV_ADMIN_ACCESS
  ALLOWED_NETWORK_RULE_LIST = (
    'ALLOW_VPCEID_ACCESS'
  );

image.png

「Network policy XXXXXXXX is created.」が出力されることを確認します。

③ ユーザにネットワークポリシーを割り当て
作成したネットワークポリシーにユーザを割り当てます。
※ネットワークポリシー名「VPCEID_DEV_ADMIN_ACCESS」にユーザ名「DEV_ADMIN」を割り当てる場合の例

ALTER USER DEV_ADMIN SET NETWORK_POLICY = VPCEID_DEV_ADMIN_ACCESS;

image.png

「Network policy XXXXXXXX is created.」が出力されることを確認します。

7.HULFT Squareのコネクション作成<HULFT Square設定>

HULFT Squareのコネクションを作成します。

① コネクションの作成
「snowflake」で検索し、コネクターに「Snowflake」、種類に「Snowflake接続設定」を指定します。
image.png

ワークスペースを指定します。
image.png

以下の値を設定します。

接続テストボタンを押下し、接続成功となることを確認します。

プロファイルを指定します。
image.png

最後に完了ボタンを押下します。
image.png

8.テーブル読み取りスクリプト実行<HULFT Square設定>

HULFT Squareのテーブル読み取りスクリプトが正しく動作することを確認します。

① スクリプト作成
Snowflakeのテーブルを読み取り、CSVファイルに出力するスクリプトを作成します。
image.png

・get_table_dataのプロパティ
[ツールパレット]⇒[データベース]⇒[Snowflake]⇒[テーブル読み取り]コネクタを使用します。

・mapping設定
[ツールパレット]⇒[変換]⇒[基本]⇒[マッピング]コネクタを使用します。
image.png

・csv_writeのプロパティ
[ツールパレット]⇒[ファイル]⇒[CSV]⇒[CSVファイル書き込み]コネクタを使用します。

② スクリプト実行
スクリプトを実行します。
image.png

「スクリプトの実行に成功しました。」のポップアップが出力されることを確認します。

③ 結果確認
SnowflakeコンソールのSQLワークシートで以下のSQLを実行し、テーブルに登録されているデータの内容を確認します。

select * from test_table

image.png

HULFT Squareのスクリプト実行により作成されたCSVファイルの中身を確認します。

両方の内容が一致することを確認します。

おわりに

いかがだったでしょうか。
HULFT SquareからSnowflakeにPrivateLinkで接続して、Snowflakeのデータベースのレコードを読み取ることができました。本記事では、HULFT SquareからSnowflakeへPrivateLinkを使って接続する方法を紹介しました。
PrivateLinkを使うことで、インターネットを経由せずに閉域での通信が可能となり、セキュリティを確保できます。今回の手順を参考に、PrivateLinkで安全にSnowflakeに接続してみてください。

ここまで読んでいただきありがとうございました。それでは、また!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?