Snowflake CLIをインストールしてキーペア認証でSnowflakeへ接続してみた

Snowflake CLIをインストールしてキーペア認証でSnowflakeへ接続してみた

Clock Icon2024.12.11

さがらです。

Snowflake CLIをインストールしてキーペア認証でSnowflakeへ接続してみたので、その内容を本記事でまとめてみます。

Snowflake CLIとは

Snowflake CLIは、Snowflake上の操作をCLIで行うことが出来る開発者向けに提供されているOSSのCLIツールです。

https://docs.snowflake.com/en/developer-guide/snowflake-cli/index

具体的には、以下のことが可能です。(各項目をクリックすることで公式Docにリンクします。)

検証環境

  • Ubuntu 24.04LTS(WSL2上で動作)

Snowflake CLIのインストール

まず、今回はDebian系のLinuxディストリビューションであるUbuntuを使用しているため、下記からsnowflake-cli-3. 2.1.x86_64.debをダウンロードします。

※余談ですが、3.2.1より前のバージョンだとWSL2上のUbunutuでSnowflake CLIのコマンドが動作しない現象が確認されています。Snowflake社のサポートに起票して、3.2.1でこの現象が改修されたと伺っています。

https://sfc-repo.snowflakecomputing.com/snowflake-cli/linux_x86_64/3.2.1/index.html

wget https://sfc-repo.snowflakecomputing.com/snowflake-cli/linux_x86_64/3.2.1/snowflake-cli-3.
2.1.x86_64.deb

次に、aptコマンドでインストールします。

sudo apt install ./snowflake-cli-3.2.1.x86_64.deb

インストールできたかどうかを確認するため、下記のコマンドを実行します。下図のように表示されたら準備完了です!

snow --help

2024-12-05_07h47_56

キーペアの作成とSnowflakeユーザーに公開鍵を割り当て

ローカルのUbuntu上で以下のコマンドを実行してキーペアを生成します。(Snowflake用のキーペアとわかりやすくするために、.snowflakeディレクトリを作っています。)

mkdir -p ~/.snowflake/
cd ~/.snowflake/
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

chmod 400 rsa_key.p8
chmod 400 rsa_key.pub

次に、Snowflake上でキーペア認証で使用するユーザーに対して公開鍵(rsa_key.pub)の値を割り当てます。

alter user <ユーザー名> set rsa_public_key = 'MII..';

正しくキーペアが設定できたかどうかを確認したい際は、こちらのドキュメントに沿って確認が可能です。

Snowflake CLIでの接続設定

これまでの手順で準備が出来たので、Snowflake CLIで接続設定をしていきます。

https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections

snow connection addに対して以下のオプションを追加して実行します。

snow connection add --connection-name <任意の名前> --authenticator SNOWFLAKE_JWT --private-key-file ~/.snowflake/rsa_key.p8

下図のようにアカウント名やユーザー名など聞かれるため、入力してEnterを繰り返します。(roleとwarehouse含め、空白のところは必須項目ではありません。)

これにより、接続情報を保持するconfig.tomlが作られます。

2024-12-11_11h10_22

この後、接続テストを下記のコマンドで実行可能です。これを実行すると下図のように表示されます。

snow connection test -c <作成したconnection-name>

2024-12-11_11h14_12

また、接続先のデフォルトを定義することで、-cオプション不要で接続することも可能です。

snow connection set-default <作成したconnection-name>

2024-12-11_11h28_46

最後に

Snowflake CLIをインストールしてキーペア認証でSnowflakeへ接続してみたので、その内容をまとめてみました。

今後アプリ開発やSnowflakeのDevOpsなどでSnowflake CLIが必須となってくると思いますので、参考になると嬉しいです!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.