接続
接続の方法はブラウザでのログイン(Snowflake の OAuth)とキーペア認証の2つです。パスワードを入力する接続(ブラウザを使わないもの)と、社内 IdP の SSO(SAML)には対応していません。
- 左上でプロファイルを選んで「接続」を押します。プロファイルが1件だけなら、起動時に自動で接続します(SQL は実行しません)。
- 接続エラーのときは、理由と「プロファイルを編集…」が出ます。
- 接続済み・接続中のプロファイルは編集も削除もできません。管理画面の「切断」で切断してから編集します。
ブラウザでのログイン
Section titled “ブラウザでのログイン”- 「管理…」→「新規追加」で、認証方式に「ブラウザでログイン」を選びます。
- Account と User を入れて、「ブラウザでログイン」を押します。
- ブラウザに Snowflake のログイン画面が開きます。ID・パスワード(MFA を設定していればそれも)で認証します。
成功するとプロファイルを登録し、そのまま接続します。3分以内にログインしないと失敗します。
- 必須は Account と User です。表示名・Role・Warehouse は空欄でかまいません。空欄なら、表示名は「ユーザー名@Account」、Role はログインしたユーザーの既定値で登録します。Warehouse は未指定のまま登録し、接続のたびにユーザーの既定のウェアハウスを使います(既定が無ければ未選択)。
- User はログイン画面で入力するユーザー名と同じにしてください。トークンをユーザー名ごとに保存するため、アプリ側でも事前にユーザー名が要ります。
- 全アカウントに組み込まれたセキュリティ統合
SNOWFLAKE$LOCAL_APPLICATIONを使います。管理者がセキュリティ統合を作る必要はありません。
トークンの保存先
Section titled “トークンの保存先”トークンは macOS ではキーチェーン、Windows では資格情報マネージャーに保存します(ホストとユーザー名ごと)。Role はログインしたあとに USE ROLE で切り替えるので、Role ごとにログインし直すことはありません。プロファイルの Role でしか使えないウェアハウスも、Role を切り替えてから選びます。
アクセストークンが切れてもリフレッシュトークンで取り直すので、リフレッシュトークンの期限(SNOWFLAKE$LOCAL_APPLICATION の OAUTH_REFRESH_TOKEN_VALIDITY)までは、接続や SQL タブを開くたびにブラウザが開くことはありません。
プロファイルを削除しても、保存したトークンは残ります。消すときは、macOS ではキーチェーンアクセス、Windows では資格情報マネージャーで削除してください。
キーペア認証
Section titled “キーペア認証”暗号化していない PKCS#8 形式の RSA 秘密鍵を使います。パスフレーズ付きの鍵は読めません。
-
鍵を作ります(例)。
ターミナルウィンドウ openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocryptopenssl rsa -in rsa_key.p8 -pubout -out rsa_key.pubchmod 600 rsa_key.p8 -
公開鍵をユーザーに登録します(Snowflake で、権限のあるロールで実行します)。
ALTER USER <ユーザー名> SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...'; -- rsa_key.pub の BEGIN/END 行を除いた本文 -
アプリの「管理…」でプロファイルを登録します。Account(例:
myorg-myaccount)、User、秘密鍵のパスを入れ、「接続テスト」で確認してから保存します。
表示名・Role・Warehouse は任意です。空欄なら、表示名は「ユーザー名@Account」、Role と Warehouse はユーザーの既定値を使います。
秘密鍵の内容はアプリに保存しません。保存するのはファイルのパスだけで、接続のたびに読み込みます。詳しくは Snowflake のキーペア認証を参照してください。