1
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?

SPSS ModelerからSnowflakeへ鍵ペア認証で接続する

1
Posted at

SPSS ModelerからSnowflakeへ鍵ペア認証で接続する

はじめに

SPSS ModelerからSnowflakeへ接続する際、パスワードの代わりにRSA鍵ペアを利用した認証が求められることがあります。(パスワード認証の場合はこちら)

本記事では、Snowflake Native ODBC Driverの鍵ペア認証(Key Pair Authentication)を構成し、SPSS Modeler(Client単体/スタンドアロン環境)から接続を確認を行った手順を紹介します。鍵の生成にはOpenSSLを使用します。今回の検証では、Snowflake Native ODBC Driver v2.25.2とWin64 OpenSSL Light 4.0.2を使用しました。

この記事の範囲
本記事は接続構成の技術検証手順です。製品・ドライバーの対応バージョンや正式なサポート範囲は、実際に使用する環境の最新ドキュメントで確認してください。

この記事でわかること

  • OpenSSLを使ったRSA鍵ペアの生成方法
  • Snowflakeユーザーへの公開鍵の登録方法
  • Snowflake Native ODBC Driverの鍵認証設定
  • ODBC単体およびSPSS Modelerからの接続確認方法
  • 秘密鍵を扱う際の注意点

前提構成

SPSS Modeler Client(ローカル実行)
        ↓
Snowflake Native ODBC Driver / DSN
        ↓
秘密鍵(.p8)によるJWT認証
        ↓
Snowflake

ポイントは、鍵認証を実行するのはSPSS ModelerではなくSnowflake Native ODBC Driverであることです。

  • 公開鍵はSnowflakeの接続ユーザーに登録します。
  • 秘密鍵はSPSS Modelerが稼働する端末ローカルの安全なディレクトリに保管します。
  • SPSS Modelerは、鍵認証を設定済みのODBC DSNを使用します。

検証環境

項目 内容
クライアント SPSS Modeler Client 19.0
接続ドライバー Snowflake Native ODBC Driver v2.25.2
鍵生成ツール Win64 OpenSSL Light 4.0.2
接続先 Snowflake(Trial環境でも技術検証可能)
認証方式 Key Pair Authentication(JWT)

実施手順

1. 必要な環境を準備する

以下を用意します。

今回の検証では、Shining Light Productionsが配布するWin64 OpenSSL Light 4.0.2を使用しました。OpenSSLはRSA秘密鍵と公開鍵の生成にのみ使用します。

OpenSSLを実行できることを確認します。

set PATH=%PATH%;"C:\Program Files\OpenSSL-Win64\bin"
openssl version
結果
OpenSSL 4.0.2 25 Aug 2026 (Library: OpenSSL 4.0.2 25 Aug 2026)

2. 鍵の格納ディレクトリを準備する

SPSS Modelerを実行する端末上に、秘密鍵を格納・保護するためのディレクトリを作成します。ユーザーごとに秘密鍵が異なるため、ユーザー名でフォルダを分けて管理します。

Windowsでの作成・配置先例(ユーザー名が MODELER_USER の場合):

mkdir C:\keys\MODELER_USER
cd C:\keys\MODELER_USER

参考(ユーザープロファイル配下に置く場合)
各ユーザーのホームディレクトリ配下(例: C:\Users\<ユーザー名>\.snowflake\rsa_key.p8)に配置する方法もあります。Windowsの標準セキュリティ(NTFS権限)により、自動的に他ユーザーからのアクセスが制限されるため安全です。

以下を確認します。

  • SPSS Modelerを実行する対象ユーザーのみがフォルダおよび秘密鍵を読み取れること(NTFSアクセス権で適切に制限)
  • 他のユーザーや不要なアカウントがアクセスできないよう権限を設定すること

3. Snowflake用のRSA鍵ペアを作成する

Snowflakeの公式ドキュメントに基づき、OpenSSLで2048ビットのRSA秘密鍵をPKCS#8形式で生成します。

今回は検証手順としてシンプルに構成するため、パスフレーズ不要の非暗号化版(-nocrypt)で生成します。先ほど作成した作業ディレクトリ(C:\keys\MODELER_USER\)内で実行します。

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

Note(本番環境での推奨)
本番運用などで秘密鍵をパスフレーズで保護したい場合は、-nocrypt の代わりに -v2 aes-256-cbc などを指定して生成します(この場合、ODBC DSN設定で PRIV_KEY_FILE_PWD の指定が必要になります)。

続いて、生成した秘密鍵からSnowflake登録用の公開鍵を抽出します。

openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
dir
結果
C:\keys\MODELER_USER>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は XXXX-XXXX です

 C:\keys\MODELER_USER のディレクトリ

2026/09/17  12:12    <DIR>          .
2026/09/17  12:09    <DIR>          ..
2026/09/17  12:11             1,732 rsa_key.p8
2026/09/17  12:12               460 rsa_key.pub
               2 個のファイル               2,192 バイト
               2 個のディレクトリ  185,409,806,336 バイトの空き領域

生成されるファイルは次の2つです。

ファイル 用途 配置先
rsa_key.p8 JWT署名に使用する秘密鍵 ローカル端末(C:\keys\MODELER_USER\)
rsa_key.pub Snowflakeへ登録する公開鍵 Snowflakeユーザー設定

管理上の注意

  • 秘密鍵(rsa_key.p8)をソース管理、メール、一般利用者向け共有フォルダーに保存・公開しません。
  • 秘密鍵の読み取り権限は、Modelerを実行するユーザーなど、必要最小限のアカウントだけに付与します。
  • 鍵のローテーション、期限、失効の手順を定めます。

4. Snowflakeユーザーへ公開鍵を登録する

本手順では、SPSS Modeler専用の接続ユーザー(例: MODELER_USER)を新規作成し、生成した公開鍵(rsa_key.pub の内容)を登録します。あわせて、クエリ実行に必要な仮想ウェアハウス(例: COMPUTE_WH)の使用権限(USAGE)も付与します。

-- 専用ユーザーの新規作成と公開鍵の登録
CREATE USER MODELER_USER
RSA_PUBLIC_KEY = '-----BEGIN PUBLIC KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXX
-----END PUBLIC KEY-----';

-- クエリ実行に必要なウェアハウスの使用権限を付与
GRANT USAGE
ON WAREHOUSE COMPUTE_WH
TO USER MODELER_USER;

※ RSA_PUBLIC_KEY には rsa_key.pub の内容(ヘッダー・フッター付き、またはBase64文字列のみのいずれも可)を指定します。

参考:既存ユーザーに公開鍵を追加・更新する場合
既存のSnowflakeユーザーに公開鍵を設定する場合は、ALTER USER コマンドを使用します。

ALTER USER EXISTING_USER
SET RSA_PUBLIC_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...';

Note(権限管理について)
実際の利用では、ウェアハウス権限に加えて、SPSS Modelerで参照・更新する対象のデータベースやスキーマ、テーブルに対する必要最小限のアクセス権限(USAGE、SELECT、INSERT 等)をロール経由または直接付与してください。

登録後は、次のSQLで公開鍵のフィンガープリントが設定されていることを確認できます。

DESC USER MODELER_USER;

image.png

5. Snowflake Native ODBC DriverのDSNを設定する

端末上でSnowflake用のODBC DSNを作成します。
スタートメニューからODBCデータソース(64bit)を開きます。

image.png
追加ボタンをクリックします。
image.png
SnowflakeDSIIDriverを選びます。
image.png

通常の接続情報に加えてJWT認証を設定してOKで閉じます。

設定項目 設定内容
Data Source 任意のデータソース名
User Snowflake接続ユーザー
Server URL Snowflakeアカウント識別子
Authenticator SNOWFLAKE_JWT
Database 接続先データベース
Schema スキーマ
Warehouse 使用する仮想ウェアハウス

image.png

レジストリの設定手順

さらに秘密鍵ファイルパスを設定します。
WindowsのODBCデータソースアドミニストレーターのGUI設定画面には秘密鍵(PRIV_KEY_FILE)を入力する専用項目がない場合があるため、レジストリエディター(regedit)から設定を追加・反映します。

  1. Win + R を押し、regedit と入力してレジストリエディターを起動します。
  2. 作成したDSNの種類に応じて、以下のキーを開きます(ユーザーごとの秘密鍵を使う場合は ユーザーDSN を推奨)。
    • ユーザーDSNの場合: HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\<DSN名>
    • システムDSNの場合: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<DSN名>
  3. 右クリックして 新規 > 文字列値 を作成します。
    • 名前(値の名前): PRIV_KEY_FILE
    • データ(値のデータ): C:\keys\MODELER_USER\rsa_key.p8(秘密鍵のフルパス)
設定項目 設定内容
PRIV_KEY_FILE 秘密鍵ファイルのフルパス(例:C:\keys\<ユーザー名>\rsa_key.p8)

image.png

※ 今回のようにパスフレーズなし(-nocrypt)で作成した秘密鍵の場合は、PRIV_KEY_FILE のみ設定すれば動作します。
※ 逆に、パスフレーズ付きで暗号化した秘密鍵を使用する場合は、同様に文字列値で PRIV_KEY_FILE_PWD を作成し、値のデータにパスフレーズを設定する必要があります。

6. ODBC単体で接続をテストする

SPSS Modelerから接続する前に、ODBCレベルで鍵認証が成功することを確認します。ここで成功させておくことで、問題がODBC設定にあるのか、SPSS Modeler側にあるのかを切り分けやすくなります。

  1. ODBC Data Source Administratorを開きます。
  2. 作成したSnowflake DSNを選択します。
  3. Test Connectionを実行します。
  4. 接続成功を確認します。

image.png

image.png

接続できない場合のチェックポイント

確認箇所 チェック内容
Snowflakeユーザー 公開鍵を正しいユーザーへ登録したか
公開鍵 正しい公開鍵文字列が設定されているか
秘密鍵 ファイルパスが正しく指定されているか(ファイルが存在するか)
OS権限 実行ユーザーが秘密鍵を読み取れるか
DSN AUTHENTICATOR=SNOWFLAKE_JWTを設定したか
接続情報 アカウント、ユーザー、ロール、ウェアハウスが正しいか
ネットワーク Snowflakeへ到達できるか

7. SPSS ModelerからDSNを使用して接続する

ODBC単体の接続に成功した後、SPSS Modelerから接続します。

データベース入力ノードを配置します。
image.png

ODBC接続として、作成済みのSnowflake DSNを指定し、ユーザー名を指定し接続します(パスワードは空欄です)。

image.png

Snowflakeのテーブルを指定します。
プレビューを実行します。

image.png

image.png

まとめ

SPSS ModelerからSnowflakeへ鍵認証で接続する場合、設定の中心となるのはSnowflake Native ODBC Driverです。

作業の流れは次のとおりです。

  1. 鍵の格納ディレクトリを準備する
  2. OpenSSLで秘密鍵と公開鍵を生成する
  3. Snowflakeユーザーへ公開鍵を登録する
  4. Snowflake Native ODBC DriverのDSNへJWT認証を設定する
  5. ODBC単体で接続を確認する
  6. SPSS ModelerからDSNを使って接続する

参考資料

1
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
1
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?