【SnowflakeTips】SnowflakeのODBCドライバのKeyPair認証設定方法について

SnowflakeのODBCドライバのKeyPair認証設定方法について

本記事は、Alteryx用に提供されているSimba ODBCドライバのKeyPair設定ですが、通常のSnowflakeのODBCドライバの手順と同一になります。

 

昨今(2025年2月時点)、Snowflakeのセキュリティ設定が厳しくなり、基本的にMFA必須という流れになっています。しかしながら、自動化を行うようなシステムでの接続は、MFA認証などできません。そこでIDとパスワードというセキュリティ的に脆弱なものではないもので接続しましょう、ということでキーペア認証(Key Pair)が推奨されています。

本記事では、ODBCドライバのKeyPair認証の設定方法について解説します。

前提条件

  • Snowflake側で秘密鍵を生成していること
  • 管理者権限必要(ODBC設定、レジストリエディタを使用します)

つまり、ここでは秘密鍵の生成方法は取り扱いません。秘密鍵の生成についてはこちらのSnowflake社ドキュメント を御覧ください。

 

具体的なODBCへの設定手順

基本的な流れは以下のとおりです。

  1. ODBCドライバの設定を行う
  2. レジストリエディタで作成したODBCドライバの設定を変更する
  3. ODBCドライバの接続テストを行う

1.ODBCドライバの設定を行う

すでに作成済みのODBCドライバを使うのであれば本手順はスキップ可能ですが、追加の作業があるのでご注意ください。

まず、ODBCデータソースアドミニストレータ(ODBCデータソース(64ビット))を起動します。

すでにODBCドライバが登録されている場合は、それをダブルクリックします。そうでない場合は新規作成します。

 

Simbaの場合は「Simba Snowflake ODBC Driver」を選択します。通常のドライバの場合は、「SnowflakeDSIIDriver」になります。

以下のように必要事項を入力します。

ここでのポイントは、Authenticatorに「SNOWFLAKE_JWT」と入力することです。それ以外は通常のODBCドライバと設定は変わりません。新規作成の場合も、既存設定の再利用の場合もOKボタンで一度決定します。

2.レジストリエディタで作成したODBCドライバの設定を変更する

次に、レジストリエディタを起動し、設定を行っていきます。レジストリエディタはWindowsの検索ボックスで「れじすとり」などと入力すれば、候補として出てくると思います。

 

これを起動します。

目的のレジストリは、「コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\」です。ここを開くと、先程ODBCデータソースアドミニストレータで作成したODBCの設定項目があるはずです。ここをクリックします。今回は「Snowflake_PROD_Key_Pair」という項目名にしています。

 

ここで、新規の項目を作成していきます。今回作った項目を選択後、レジストリエディタのメニューから「編集」-「新規」-「文字列値」を選択します。

 

ここで、項目名を「PRIV_KEY_FILE」とします。

 

この作成された項目をダブルクリックし、メニューを開きます。

 

ここで、値のデータとして、秘密鍵のファイルの格納パスを入力します。

 

オプションとはなっていますが、公式の手順にあるので、さらに項目を追加しましょう。先ほどと同じように新規の項目を作成していきます。レジストリエディタのメニューから「編集」-「新規」-「文字列値」を選択し、名称を「LogLevel」とします。再度項目をダブルクリックし、出てきたダイアログに「6」と入力します。

 

秘密鍵にパスワードをかけていない場合はこれで終了です。

一方で、秘密鍵にパスワードをかけている場合はさらに追加の作業があります。

再び新規の項目を作成していきます。レジストリエディタのメニューから「編集」-「新規」-「文字列値」を選択し、名称を「PRIV_KEY_FILE_PWD」とします。再度項目をダブルクリックし、出てきたダイアログに秘密鍵作成時のパスワードを入力します。

 

これで以下のような形で「PRIV_KEY_FILE」「LogLevel」そして秘密鍵にパスワードをかけている場合は「PRIV_KEY_FILE_PWD」という項目が作成されていればオッケーです。

 

3.ODBCドライバの接続テストを行う

最後に接続テストです。

ODBCデータソースアドミニストレータにて、設定を開きます。左下にテストボタンがあるのでクリックしましょう。

 

なお、ここではパスワードは不要です。以下のように「SUCCESS!」と出ればオッケーです。

 

注意点

使用するツールによっては、「[Simba][DSI] (20032) Required setting 'PWD' is not present in the connection settings.」というエラーが出るケースがあります(AlteryxのDCMを使わないODBC接続の場合など)。この場合、パスワードをレジストリで埋め込む必要があります(さらに、ツール側の設定でもパスワードが必要なケースがあります)。

再び新規の項目を作成していきます。レジストリエディタのメニューから「編集」-「新規」-「文字列値」を選択し、名称を「PWD」とします。再度項目をダブルクリックし、出てきたダイアログに接続するアカウントのパスワードを入力します(ここで入力するパスワードはKeyPairでは使われないためダミーのパスワードでオッケーです)。

 

とはいえ、本来KeyPairの場合はアカウントのパスワードは使わないので、本来必要ないのですが、どうやらID/Passがセットのなごりなのか、パスワードが形式的に必要なようです。

参考URL

 

Snowflakeの導入はぜひKCMEで!

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Snowflakeを用いた環境構築、開発、ヘルプデスク対応なども承りますので、お気軽にご相談ください。

おすすめの記事