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

本記事では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 認証での接続はこちらの記事を参考にしてください。

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

関連コンテンツ