3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SnowflakeでTROCCOユーザーのキーペア認証を設定する

Last updated at Posted at 2025-09-08

TROCCOからSnowflakeに接続する検証を行うことがあったので、
そのときの内容をまとめます。

以下ドキュメントを参考にしています。

作業手順です。

  1. 秘密キーを生成する
  2. 公開キーを生成する
  3. Snowflakeユーザーに公開キーを割り当てる
  4. TROCCOのSnowflake接続情報を作成する

秘密キーを生成する

ターミナルで作業します。
TROCCO側の設定では、非暗号化バージョンの秘密キー(rsa_key.p8)を使います。
非暗号化バージョンを生成するには、次のコマンドを使用します。
-nocryptをつけるのがポイントです。

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

秘密キーの内容を表示してみます。

 cat rsa_key.p8

以下のような出力が確認できます。

-----BEGIN PRIVATE KEY-----
~~~
-----END PRIVATE KEY-----

この<出力1>は、TROCCO接続情報を設定するときに利用するのでメモしておきます。
(Snowflake側設定では使いません)

公開キーを生成する

ターミナルで作業を続けます。
以下のコマンドを実行し、先程の秘密キーから公開キー(rsa_key.pub)を作成します。

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

公開キーの内容を、Snowflake側設定することを見越して加工し出力します。

cat rsa_key.pub | \
tr -d "\n" | \
sed "s/-----BEGIN PUBLIC KEY-----//g" | \
sed "s/-----END PUBLIC KEY-----//g"

この<出力2>は、Snowflakeでユーザー設定クエリ実行時に利用するのでメモしておきます。

Snowflakeユーザーに公開キーを割り当てる

Snowflakeのコンソールにログインし、ワークシートを開きます。

作業環境として以下が準備できている状況とします。

  • SECURITYADMIN ロールをもつユーザーでクエリを実行します
  • TROCCO用のユーザー・ロール(my_service_user, my_service_role)は作成済みであるとします
USER ROLE SECURITYADMIN;

-- キーペア認証を行いたいユーザー(`my_service_user`)に、公開キー(`'MII...'`)を割り当てる
ALTER USER my_service_user SET RSA_PUBLIC_KEY='<出力2>';

TROCCOのSnowflake接続情報を作成する

TROCCOのコンソールにログインします。
メニュー > 接続情報 > 新規作成 > Snowflake を選択します。

ここまで作成した情報をもとに、Snowflake接続情報を設定します。

  • ホスト: <ORGANIZATION>-<ACCOUNT_NAME>.snowflakecomputing.com
    ※ SnowflakeのコンソールURLから確認できます
    https://app.snowflake.com/<ORGANIZATION>/<ACCOUNT_NAME>/
    ※以下クエリを実行しても確認できます。
SELECT CURRENT_ORGANIZATION_NAME() AS ORGANIZATION,
       CURRENT_ACCOUNT_NAME() AS ACCOUNT_NAME --こちらがアカウント名
       -- CURRENT_ACCOUNT() AS account_id --これはアカウントロケーターなので注意
;
  • ユーザー: my_service_user
  • 認証方式: キーペア認証
  • 秘密鍵: <出力1> (非暗号化秘密キー全文)
  • ロール: MY_SERVICE_ROLE ※ロール名は大文字で指定しないとエラーになります・!

接続確認

最後に「接続を確認」をクリックし、

接続結果
☑ホストの疎通確認

が出ればOKです!
image.png

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?