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. 必要な環境を準備する
以下を用意します。
- SPSS Modeler Client 19.0
- Snowflake Native ODBC Driver v2.25.2
- Win64 OpenSSL Light 4.0.2
- Snowflake環境
- Snowflakeの検証用ユーザー
- 端末上でODBC DSNを設定できる権限
- 鍵を格納・保護できるローカル上のディレクトリ
今回の検証では、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;
5. Snowflake Native ODBC DriverのDSNを設定する
端末上でSnowflake用のODBC DSNを作成します。
スタートメニューからODBCデータソース(64bit)を開きます。

追加ボタンをクリックします。

SnowflakeDSIIDriverを選びます。

通常の接続情報に加えてJWT認証を設定してOKで閉じます。
| 設定項目 | 設定内容 |
|---|---|
| Data Source | 任意のデータソース名 |
| User | Snowflake接続ユーザー |
| Server URL | Snowflakeアカウント識別子 |
| Authenticator | SNOWFLAKE_JWT |
| Database | 接続先データベース |
| Schema | スキーマ |
| Warehouse | 使用する仮想ウェアハウス |
レジストリの設定手順
さらに秘密鍵ファイルパスを設定します。
WindowsのODBCデータソースアドミニストレーターのGUI設定画面には秘密鍵(PRIV_KEY_FILE)を入力する専用項目がない場合があるため、レジストリエディター(regedit)から設定を追加・反映します。
-
Win + Rを押し、regeditと入力してレジストリエディターを起動します。 - 作成したDSNの種類に応じて、以下のキーを開きます(ユーザーごとの秘密鍵を使う場合は ユーザーDSN を推奨)。
-
ユーザーDSNの場合:
HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\<DSN名> -
システムDSNの場合:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<DSN名>
-
ユーザーDSNの場合:
- 右クリックして 新規 > 文字列値 を作成します。
-
名前(値の名前):
PRIV_KEY_FILE -
データ(値のデータ):
C:\keys\MODELER_USER\rsa_key.p8(秘密鍵のフルパス)
-
名前(値の名前):
| 設定項目 | 設定内容 |
|---|---|
| PRIV_KEY_FILE | 秘密鍵ファイルのフルパス(例:C:\keys\<ユーザー名>\rsa_key.p8) |
※ 今回のようにパスフレーズなし(-nocrypt)で作成した秘密鍵の場合は、PRIV_KEY_FILE のみ設定すれば動作します。
※ 逆に、パスフレーズ付きで暗号化した秘密鍵を使用する場合は、同様に文字列値で PRIV_KEY_FILE_PWD を作成し、値のデータにパスフレーズを設定する必要があります。
6. ODBC単体で接続をテストする
SPSS Modelerから接続する前に、ODBCレベルで鍵認証が成功することを確認します。ここで成功させておくことで、問題がODBC設定にあるのか、SPSS Modeler側にあるのかを切り分けやすくなります。
- ODBC Data Source Administratorを開きます。
- 作成したSnowflake DSNを選択します。
- Test Connectionを実行します。
- 接続成功を確認します。
接続できない場合のチェックポイント
| 確認箇所 | チェック内容 |
|---|---|
| Snowflakeユーザー | 公開鍵を正しいユーザーへ登録したか |
| 公開鍵 | 正しい公開鍵文字列が設定されているか |
| 秘密鍵 | ファイルパスが正しく指定されているか(ファイルが存在するか) |
| OS権限 | 実行ユーザーが秘密鍵を読み取れるか |
| DSN |
AUTHENTICATOR=SNOWFLAKE_JWTを設定したか |
| 接続情報 | アカウント、ユーザー、ロール、ウェアハウスが正しいか |
| ネットワーク | Snowflakeへ到達できるか |
7. SPSS ModelerからDSNを使用して接続する
ODBC単体の接続に成功した後、SPSS Modelerから接続します。
ODBC接続として、作成済みのSnowflake DSNを指定し、ユーザー名を指定し接続します(パスワードは空欄です)。
Snowflakeのテーブルを指定します。
プレビューを実行します。
まとめ
SPSS ModelerからSnowflakeへ鍵認証で接続する場合、設定の中心となるのはSnowflake Native ODBC Driverです。
作業の流れは次のとおりです。
- 鍵の格納ディレクトリを準備する
- OpenSSLで秘密鍵と公開鍵を生成する
- Snowflakeユーザーへ公開鍵を登録する
- Snowflake Native ODBC DriverのDSNへJWT認証を設定する
- ODBC単体で接続を確認する
- SPSS ModelerからDSNを使って接続する
参考資料
- IBM Software Product Compatibility Reports:SPSS Modeler 19.0のシステム要件(Snowflake Native ODBC Driver v2.25.2の対応情報を確認)
- Snowflake ODBC Driver Downloads(検証ではSnowflake Native ODBC Driver v2.25.2を使用)
- Win32/Win64 OpenSSL Installer for Windows | Shining Light Productions(検証ではWin64 OpenSSL Light 4.0.2を使用)
- キーペア認証とキーペアローテーション | Snowflake Documentation
- ODBC 構成および接続パラメーター | Snowflake Documentation








