CData Snowflake Drivers でキーペア認証を使う

by 浦邊信太郎 | 2023年03月31日

本記事ではCData Snowflake Drivers で、Snowflake への接続時にキーペア認証を行う方法を紹介します。

CData Snowflake Drivers はSnowflake がサポートする様々な認証方式が使用できます。このうち「キーペア認証」はRSA のキーペアを使用した認証方式です。ドライバーからキーペア認証で接続するにはキーペアの秘密鍵が手元にあり、ログインユーザに公開鍵が割り当てられている必要があります。本記事ではキーペアの生成方法から説明します。

キーペアの作成と公開鍵の割り当て

Snowflake キーペア認証の設定方法はこちらのマニュアルページで詳しく書かれています。はじめにキーペアを生成します。マニュアルページに書かれている通りにOpenssl で秘密鍵と公開鍵をそれぞれ生成します。

秘密鍵の生成(暗号化なし)

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

秘密鍵の生成(暗号化あり)

$ openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8

公開鍵の生成

$ openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

つづいてSnowflake ユーザへの公開鍵を割り当てます。こちらもマニュアルページに書かれている通りACCOUNTADMIN 権限でALTER USER コマンドを実行します。

ALTER USER TESTUSRE SET RSA_PUBLIC_KEY='<公開鍵>';


実行例

これで接続の準備は完了です。

CData Snowflake Drivers でのキーペア認証の設定

ドライバーでOAuth 認証を行うには、AuthSchem プロパティを「PrivateKey」に設定し、認証に必要な情報を設定します。以下にキーペア認証に必要なプロパティを示します。

プロパティ名 説明
Url SnowflakeのURL
Warehouse 接続先Warehouse
User 公開鍵が割り当てられているログインユーザの名前
AuthScheme 「PrivateKey」を設定
PrivateKey 秘密鍵ファイル(今回の例ではrsa_key.p8)のファイルパス
PrivateKeyType 秘密鍵ファイルの形式(今回の例では「PEMKEY_FILE」)
PrivateKeyPassword 秘密鍵ファイルが暗号化されている場合はパスワードを設定

JDBC / ODBC / Connect Cloud での設定例

JDBC Driver の接続文字列の例を以下に示します。

jdbc:cdata:snowflake:url=https://xxxxxx.us-east-1.snowflakecomputing.com;Warehouse=TEST_WAREHOUSE;User=TESTUSER;AuthScheme=PrivateKey;PrivateKey="C:\SnowflakePrivateKey\rsa_key.p8";PrivateKeyType=PEMKEY_FILE;PrivateKeyPassword="*****";

ODBC Driver のDSN 設定例を以下に示します。

Connect Cloud でのコネクション設定例を以下に示します。

秘密鍵のファイルを直接参照できないため、[Private Key Type]を「PEMKEY_BLOB」に設定し、[Private Key]に暗号化された秘密鍵の文字列を直接設定してください。暗号化されていない秘密鍵は使用できません。

おわりに


今回はCData Snowflake Drivers でキーペア認証を行う方法を説明しました。CData Snowflake Drivers は30日間無料でお使いいただけますのでSnowflake との連携をご検討の方はぜひお試しください。

Snowflake Drivers はOAuth 認証にも対応しております。OAuth 認証での接続はこちらの記事を参考にしてください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。