
IntellijでSnowflakeのキーペア認証を使ってみる
はじめに
データ事業本部のkobayashiです。Intellijで使えるデータベースクライアントのDataGripでSnowflakeのキーペア接続を試してみたのでその内容をまとめます。
Snowflakeでキーペア認証用のユーザー作成
Snowflakeにキーペア認証でアクセスするユーザーを作成しますがはじめにキーペアを作成します。キーペアの作成方法はSnowflakeの公式ドキュメンに記載されいてるものを踏襲します。
秘密鍵・公開鍵の作成
$ openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8
Enter Encryption Password: # パスフレーズを入力
Verifying - Enter Encryption Password: # 確認用パスフレーズを入力
$ openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
これで秘密鍵としてrsa_key.p8
、公開鍵としてrsa_key.pub
が作成されます。
rsa_key.pub
を確認すると以下のような形式になっているので公開鍵をコピーしておきます。
$ cat rsa_key.pub
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFNT
......
xmhj4=
-----END ENCRYPTED PRIVATE KEY-----
次にSnoflakeでユーザーを作成してコピーした公開鍵を割り当てます。
USE ROLE USERADMIN;
CREATE USER test_user DEFAULT_ROLE = SYSADMIN;
ALTER USER test_user SET RSA_PUBLIC_KEY = 'MIIFNT....xmhj4=';
これでSnowflakeにキーペア認証用のユーザーが作成できました。
DataGripでSnowflakeのキーペア接続してみる
それでは、Intellijで使えるデータベースクライアントのDataGripでSnowflakeのキーペア接続を設定します。
はじめにIntellijのデータベース接続設定でSnowflake接続を作成します。
次にSSH/SSLタブを開き以下の設定を行います。
Use SSL
をチェックする- 先に作成した秘密鍵の.p8ファイルを
Client key file
ボックスに入力し、秘密鍵のパスフレーズをClient key password
に入力する
次にGeneralタブを開き以下の設定を行います。
Host
にホスト名を入力するAuthentication
にAuthenticator
を入力するAuthenticator
にSNOWFLAKE_JWT
を入力するUser
にユーザー名を入力するPassword
を空白のままにする
最後にAdvancedタブを開きprivate_key_file
やauthenticator
のカスタムプロパティが設定されていないことを確認します。
ここに値が設定されているとSSH/SSLタブで設定したClient key file
の値やGeneralタブで設定した値と競合して接続ができません。
これで設定が終わったのでTest Connection
を押下して接続が問題ないことを確認します。
まとめ
Intellijで使えるデータベースクライアントのDataGripでSnowflakeのキーペア接続を試してみました。2025年の11月にパスワードによる単一要素認証を使用したSnowflakeへのサインインができなくなるので今後はこちらの方式で接続設定を行う必要があります。
最後まで読んで頂いてありがとうございました。