Snowflake CLI の構成¶
Snowflake CLI は、 config.toml というグローバル構成ファイルを使用して、 Snowflake CLI の接続とログを構成します。このファイルが存在しない場合、何らかの snow コマンドを初めて実行すると、自動的に空の config.toml ファイルが作成され、そのファイルに目的の接続を入力できるようになります。toml ファイルフォーマットの詳細については、 TOML (Tom's Obvious Minimal Language) をご参照ください。Snowflake Pythonライブラリは現在、 TOML バージョン1.0.0をサポートしています。
config.toml は次の設定をサポートしています。
Snowflake CLI 構成ファイルの構造は以下の通りです。
default_connection_name = "myconnection"
[connections]
[connections.myconnection]
account = "myorganization-myaccount"
user = "jdoe"
...
[connections.testingconnection]
account = "myorganization-myaccount"
user = "jdoe"
...
[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
TOML の構成ファイルの基本設定は、 Snowsight で生成できます。詳細については、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 をご参照ください。
.toml 構成ファイルの場所¶
デフォルトでは、 Snowflake CLI は、 ~/.snowflake ディレクトリにある config.toml ファイルを探すか、このディレクトリが存在しない場合は、以下に示すシステム固有の場所にある ファイルを探します。また、 --config-file フラグまたは SNOWFLAKE_HOME 環境変数を使用して、どの構成ファイルを使用するかを指定することもできます。
--config-fileオプションを指定すると(snow --config-file ./my-config-file-pathのように)、 Snowflake CLI は指定された構成ファイルを使用します。SNOWFLAKE_HOME環境変数が設定されている場合、 Snowflake CLI はこの変数で指定された場所を使用します。マシンに
~/.snowflakeディレクトリが存在する場合、 Snowflake CLI は~/.snowflake/config.tomlファイルを使用します。そうでない場合、 Snowflake CLI はオペレーティングシステムに応じて、次のいずれかの場所にある
config.tomlファイルを使用します。Linux:
~/.config/snowflake/config.toml、ただし、 XDG 変数で更新可Windows:
%USERPROFILE%\AppData\Local\snowflake\config.tomlMac:
~/Library/Application Support/snowflake/config.toml
注釈
MacOS およびLinuxシステムの場合、 Snowflake CLI は、 config.toml ファイルの権限を、ファイル所有者のみが読み取りおよび書き込みできるように制限する必要があります。ファイルに必要なファイルアクセス権を設定するには、次のコマンドを実行します。
chown $USER config.toml
chmod 0600 config.toml
別の構成ファイルを選択する¶
継続的インテグレーション、継続的デプロイメント(CI/CD)環境などの状況によっては、Snowflakeのデフォルト構成ファイルで可能なすべての構成を定義する代わりに、テストおよびデプロイメントパイプライン専用の構成ファイルを作成する方がよい場合があります。
デフォルト・ファイルとは異なる構成ファイルを使用するには、次のように snow コマンドの --config-file オプションを使用します。
snow --config-file="my_config.toml" connection test
システム環境変数のサポート¶
Snowflake CLI は、システム環境変数を使用して、 config.toml ファイルで定義されたパラメータ値を以下の形式で上書きすることをサポートしています:
SNOWFLAKE_<config-section>_<variable>=<value>
条件:
<config_section>は、構成ファイルのセクション名で、ピリオド(.)をアンダースコア(_)に置き換えたものです。例:CLI_LOGS。変数は、このセクションで定義された変数の名前です。例えば
パスです。
例は次のとおりです:
config.tomlファイルの[cli.logs]セクションのpathパラメーターをオーバーライドします。export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
myconnection接続のパスワードを設定します。export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
デフォルトの接続名を設定する:
export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
Snowflake CLI のみにアクセスを制限する認証ポリシーを追加します。¶
ユーザーは、ドライバーへのアクセス許可を制限する 認証ポリシー を作成できるほか、 Snowflake CLI も作成できます。Snowflake CLI (ドライバーを除く)のみにアクセスを許可したい場合は、以下のようにします。
Snowflake CLI へのアクセスを厳密に制限する新しい認証ポリシーを作成します。
config.tomlファイルでポリシーを有効にします。
Snowflake CLI に限定した認証ポリシーを作成します。¶
Snowflake CLI のみの新しい認証ポリシーを作成するには、以下の手順に従います。
CLIENT_TYPES パラメーターに
'SNOWFLAKE_CLI'をセットして、 CREATE AUTHENTICATION POLICY SQL コマンドを実行します。CREATE AUTHENTICATION POLICY snowflake_cli_only CLIENT_TYPES = ('SNOWFLAKE_CLI');
図のように、ポリシーをユーザーに追加します:
ALTER USER user1 SET AUTHENTICATION POLICY snowflake_cli_only;
Snowflake CLI 構成でポリシーを有効にします。¶
codenowrap:enable_separate_authentication_policy_id 構成パラメーターにより、ドライバーとは別に Snowflake CLI へのアクセスを有効にすることができます。このアクセスを有効にすると、指定したユーザーは Snowflake CLI にアクセスできますが、他のSnowflakeドライバーにはアクセスできません。
警告
ドライバーのみにアクセスを許可する認証ポリシーがすでにあり、 Snowflake CLI のみにアクセスを許可する認証ポリシーがない場合、 enable_separate_authentication_policy_id パラメーターを有効にすると、新しいポリシーを最初に作成しない場合、ユーザーは Snowflake CLI へのアクセスを失うことになります。構成パラメーターを有効にする前に、認証ポリシーに SNOWFLAKE_CLI を追加してください。
SNOWFLAKE_CLI ポリシーを有効にするには、 config.toml ファイルの [cli.features] セクションに、図のように enable_separate_authentication_policy_id パラメーターを追加します。
[cli.features]
enable_separate_authentication_policy_id = true
注釈
このパラメーターを有効にすると、 Snowflake CLI によるすべての接続に影響します。
プロキシサーバーの使用¶
プロキシサーバーを使用するには、次の環境変数を構成します。
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
例:
- Linuxまたは macOS:
export HTTP_PROXY='http://username:password@proxyserver.example.com:80' export HTTPS_PROXY='http://username:password@proxyserver.example.com:80'
- Windows:
set HTTP_PROXY=http://username:password@proxyserver.example.com:80 set HTTPS_PROXY=http://username:password@proxyserver.example.com:80
Tip
Snowflakeのセキュリティモデルは、Secure Sockets Layer(SSL)プロキシを許可しません( HTTPS 証明書を使用)。プロキシサーバーは、公的に利用可能な認証機関(CA)を使用する必要があり、侵害されたプロキシを介した MITM (Man In The Middle)攻撃などの潜在的なセキュリティリスクを低減します。
SSL プロキシを使用する 必要 がある場合は、通信中に証明書が変更されないように、サーバーポリシーを更新してSnowflake証明書を渡すことを強くお勧めします。
オプションで NO_PROXY を使用して、特定の通信のプロキシをバイパスできます。たとえば、Amazon S3へのアクセスは、 NO_PROXY=".amazonaws.com" を指定してプロキシサーバーをバイパスできます。
NO_PROXY はワイルドカードをサポートしていません。指定する各値は、次のいずれかである必要があります。
ホスト名の末尾(または完全なホスト名)。例:
.amazonaws.com
myorganization-myaccount.snowflakecomputing.com
IP アドレス。例:
192.196.1.15
複数の値を指定する場合、値はコンマで区切る必要があります。次に例を示します。
localhost,.example.com,.snowflakecomputing.com,192.168.1.15,192.168.1.16
ログの構成¶
デフォルトでは、 Snowflake CLI は自動的に INFO、 WARNING、 ERROR レベルのメッセージをログファイルに保存します。ログを無効化またはカスタマイズするには、 config.toml ファイルに [cli.logs] セクションを作成します。
[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
条件:
save_logsは、ログをファイルに保存するかどうかを示します。デフォルト:true。levelはログファイルに保存するメッセージのレベルを指定します。 次のレベルから選択します。選択したレベル以下のすべてのレベルが含まれます。debug警告
ログレベルを
debugに切り替えると、実行された SQL クエリなどの機密情報が公開される可能性があります。このレベルを有効にする場合は注意してください。infowarningerror
デフォルト:
infopathはログファイルを保存する絶対パスを指定します。パスの形式は、次に示されるようにオペレーティングシステムに応じて異なります。Linux:
path = "/home/<your_username>/.config/snowflake/logs"MacOS:
path = "/Users/<your_username>/Library/Application Support/snowflake/logs"Windows:
path = "C:\\Users\\<your_username>\\AppData\\Local\\snowflake\\logs"
指定しない場合は、デフォルトの
config.tomlファイルの場所にlogsディレクトリを作成します。
config.toml が自動的に作成された場合、 config.toml ファイルにはデフォルト値が入力された `` |cli.logs| `` セクションが含まれます。
1日のログがファイル snowflake-cli.log に追加され、後で snowflake-cli.log.YYYY-MM-DD に名前が変更されます。
ls logs/
snowflake-cli.log snowflake-cli.log.2024-10-22
トラブルシューティングのために、通常、次の例に示すように、:file:`config.toml`ファイルに:codenowrap:`[log]`セクションを追加して、Snowflake Connector for Pythonのログ記録も構成する必要もあります。
[log]
save_logs = true
path = "/home/<username>/.snowflake/logs"
level = "DEBUG"
Snowflake Connector for Pythonのログ記録の詳細については、Snowflake Connector for Pythonドキュメントの:ref:`label-python_easy_logging`をご参照ください。
バージョン更新通知の抑制¶
デフォルトでは、 Snowflake CLI で新しいバージョンのチェックを行い、新しいバージョンが利用可能になったときに通知メッセージを表示します。次のように、構成ファイルの設定または環境変数を使用して、これらの通知を抑制できます。
config.toml`ファイルに :codenowrap:`ignore_new_version_warning設定を追加します。[cli] ignore_new_version_warning = true
codenowrap:
SNOWFLAKE_CLI_IGNORE_NEW_VERSION_WARNING環境変数を設定します。export SNOWFLAKE_CLI_IGNORE_NEW_VERSION_WARNING=true