Snowflake keypair setting

やりたいこと

Snowflakeのkeypair認証を設定するためのメモです。

OpenSSLをインストール

・MACの場合はデフォルトで入っている

・Windowsの場合は、Downloadする必要がある

https://slproweb.com/products/Win32OpenSSL.html

・環境変数に、opensslのpathを追加

 ・ windows + Rを押して、「SystemPropertiesAdvanced」を入れてenter

・[詳細設定]タブにある[環境変数]ボタンをクリックする。

・「システム環境変数」の「path」に、opensslのBINを追加

・最後、cmdで、「openssl version」を実行して、Versionを確認できれば、opensslのインストールは完了した。

秘密keyの生成

・以下のコマンドを実行して、no script keyを生成

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

・暗号化キーを生成する場合は以下のコマンド

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

公開キーの生成

・以下のコマンドを実行して、公開キーを生成

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

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

・roleとuserを作成

set quollio_role = 'stg_quollio_agent_role';

CREATE OR REPLACE ROLE identifier($quollio_role);

GRANT USAGE
  ON WAREHOUSE STG_GENERAL_S
  TO ROLE identifier($quollio_role);

GRANT OPERATE
  ON WAREHOUSE STG_GENERAL_S
  TO ROLE identifier($quollio_role);

SHOW SHARES;

-- create user
CREATE OR REPLACE USER stg_quollio_user
  PASSWORD = '$C3ub3oZ5TRo'
  MUST_CHANGE_PASSWORD = FALSE               
  DEFAULT_ROLE = stg_quollio_agent_role               
  DEFAULT_WAREHOUSE =   STG_GENERAL_S                 
  DEFAULT_NAMESPACE = STG_DXP_DMD.DENODO_LOG_SYS          
  COMMENT = 'quollio metadata agent user';

-- GRANT ROLE TO USER
GRANT ROLE identifier($quollio_role) TO USER stg_quollio_user;
SQL

・ユーザーにpublic keyを付与

ALTER USER stg_quollio_user SET RSA_PUBLIC_KEY='{public key}';

DESC USER stg_quollio_user;

-- RSA keyの認証IDを作成
SELECT SUBSTR((SELECT "value" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
  WHERE "property" = 'RSA_PUBLIC_KEY_FP'), LEN('SHA256:') + 1);
SQL

・ローカルで、以下のコマンドを実行して、認証IDを作成して、上記と比較

openssl rsa -pubin -in rsa_key.pub -outform DER | openssl dgst -sha256 -binary | openssl enc -base64
SQL

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注