Snowflake ドライバー: キーペア認証の設定と使用方法
この記事では、CData Snowflake ドライバーで Snowflake に接続する際にキーペア認証を使用する方法を紹介します。
Snowflake は、2025年11月までにパスワードを使用した単一要素認証によるサインインをブロックすることを発表しています。2024年10月以降に作成された新しい Snowflake アカウントでは、パスワードでサインインする際に多要素認証(MFA)が必須となります。さらに、2025年11月からは、すべてのユーザーに対してパスワード認証がブロックされます。
パスワード認証がブロックされると、CData Snowflake ドライバーで認証方法としてパスワード認証を指定した(「Auth Scheme」プロパティを「Password」に設定した)接続ができなくなります。そのため、現在パスワード認証を使用しているユーザーは、この記事で紹介するキーペア認証方式(または OAuth 認証。詳細はこちら)に切り替える必要があります。
CData Snowflake ドライバーは、Snowflake へのさまざまな認証方法をサポートしています。キーペア認証は、RSA キーペアを使用した認証方式です。CData ソリューションからキーペア認証を使用して接続するには、キーペアの秘密鍵を用意し、公開鍵をログインユーザーに割り当てる必要があります。この記事では、Snowflake でキーペア認証を設定し、CData Snowflake ドライバーからキーペア認証を使用する方法について説明します。
キーペアの作成と公開鍵の割り当て
Snowflake キーペア認証の設定手順の詳細は、Snowflake のマニュアルページをご覧ください。まず、キーペアを生成します。マニュアルページに記載されているとおり、OpenSSL を使用して秘密鍵と公開鍵を生成します。
秘密鍵の生成(非暗号化)
ターミナルを開き、次のコマンドを実行します:
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
秘密鍵の生成(暗号化)
ターミナルを開き、-nocrypt パラメータを含まない次のコマンドを実行します:
openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8
コマンドが完了すると、PEM 形式の秘密鍵が生成されます。
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIE6T...
-----END ENCRYPTED PRIVATE KEY-----
公開鍵の生成
ターミナルで、秘密鍵を参照して公開鍵を生成します。
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
ここで、rsa_key.p8 は暗号化された秘密鍵を含むファイル、rsa_key.pub は公開鍵の任意のファイル名です。公開鍵を開くと、PEM 形式で鍵が表示されます。
-----BEGIN PUBLIC KEY-----
MIIBIj...
-----END PUBLIC KEY-----
Snowflake ユーザーへの公開鍵の割り当て
次に、公開鍵を Snowflake ユーザーに割り当てます。マニュアルページに記載されているとおり、SECURITYADMIN ロール以上を持つユーザーで ALTER USER コマンドを実行します。
ALTER USER my_user SET RSA_PUBLIC_KEY='MIIBIj...';
これで、Snowflake へのキーペア認証の準備が整いました。
CData Snowflake ドライバーでキーペア認証を使用して接続する方法
ドライバーでキーペア認証を使用するには、「AuthScheme」プロパティを「PrivateKey」に設定し、必要な認証情報を構成します。以下は、キーペア認証に必要なプロパティです:
| 接続プロパティ | 詳細または推奨値 |
|---|---|
| URL | Snowflake アカウントの URL |
| Warehouse | 対象のウェアハウス |
| User | 認証するユーザーのユーザー名 |
| AuthScheme | PrivateKey |
| PrivateKeyType | 秘密鍵の形式(この例では PEMKEY_FILE) |
| PrivateKey | PrivateKeyType で指定した形式に基づく鍵の値(この例では、秘密鍵ファイルのフルパスとファイル名、/PATH/TO/rsa_key.p8) |
| PrivateKeyPassword | 秘密鍵のパスワード(設定している場合) |
CData Snowflake 製品での接続例
上記の接続手順を参考に、お使いの CData ソリューションで適切に接続を構成してください。
CData JDBC Driver for Snowflake
JDBC Driver では、JDBC URL に接続プロパティを指定するだけで接続できます。
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="*****";
CData ODBC Driver for Snowflake
ODBC Driver では、DSN 構成ウィザードで接続プロパティを設定します。

CData Connect AI
CData Connect AI は SaaS アプリケーションであるため、ファイルシステムにアクセスできません。PrivateKeyType を「PEMKEY_BLOB」に設定し、秘密鍵の内容を PrivateKey にコピーして使用します。

これで、CData Snowflake ドライバーでキーペア認証を行う準備が整いました。CData Snowflake ドライバーは30日間の無料トライアルが利用可能ですので、Snowflake との連携をご検討の場合は、ぜひお試しください。
Snowflake ドライバーは OAuth 認証もサポートしています。OAuth 認証での接続については、別の記事(Snowflake ドライバー:OAuth 認証の設定と使用方法)をご覧ください。