Konfigurieren von Snowflake CLI¶
Snowflake CLI verwendet eine globale Konfigurationsdatei namens config.toml
, um Verbindungen und Protokolle für Snowflake CLI zu konfigurieren. Wenn die Datei nicht existiert, wird bei der ersten Ausführung eines beliebigen snow
-Befehls automatisch eine leere config.toml
-Datei erstellt, die Sie dann mit den gewünschten Verbindungen füllen können. Weitere Informationen zu toml
-Dateiformaten finden Sie unter TOML (Tom’s Obvious Minimal Language). Die Snowflake-Python-Bibliotheken unterstützen derzeit TOML, Version 1.0.0.
Die config.toml
unterstützt die folgenden Abschnitte:
[Verbindungen] zur Definition und zur Verwaltung von Verbindungen
[Protokolle] zum Konfigurieren, welche Arten von Meldungen in den Dateien gespeichert werden
Eine Snowflake CLI-Konfigurationsdatei hat die folgende Struktur:
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"
Speicherort der .toml
-Konfigurationsdatei¶
Standardmäßig sucht Snowflake CLI die Datei config.toml
im Verzeichnis ~/.snowflake
oder, falls dieses Verzeichnis nicht existiert, an einem systemspezifischen Speicherort, wie unten aufgelistet. Sie können auch mit dem Flag --config-file
oder der Umgebungsvariablen SNOWFLAKE_HOME
angeben, welche Datei für die Konfiguration verwendet werden soll.
Wenn Sie die Option
--config-file
angeben (z. B.snow --config-file ./my-config-file-path
), verwendet Snowflake CLI die angegebene Konfigurationsdatei.Wenn die Umgebungsvariable
SNOWFLAKE_HOME
eingestellt ist, verwendet Snowflake CLI den durch diese Variable angegebenen Speicherort.Wenn auf Ihrem Computer ein Verzeichnis
~/.snowflake
existiert, verwendet Snowflake CLI die Datei~/.snowflake/config.toml
.Andernfalls verwendet die Snowflake CLI die Datei
config.toml
an einem der folgenden Speicherorte, abhängig von Ihrem Betriebssystem:Linux:
~/.config/snowflake/config.toml
, aber Sie können es mit XDG vars aktualisierenWindows:
%USERPROFILE%\AppData\Local\snowflake\config.toml
Mac:
~/Library/Application Support/snowflake/config.toml
Bemerkung
Bei Snowflake CLI unter MacOS oder Linux muss die Datei config.toml
ihre Dateiberechtigungen darauf beschränken, dass das Lesen und Schreiben nur für den Eigentümer der Datei möglich ist. Um die erforderlichen Dateiberechtigungen festzulegen, führen Sie die folgenden Befehle aus:
chown $USER config.toml
chmod 0600 config.toml
Wählen Sie eine andere Konfigurationsdatei¶
In manchen Situationen, z. B. in Umgebungen mit kontinuierlicher Integration und kontinuierlicher Bereitstellung (CI/CD), ziehen Sie es vielleicht vor, eigene Konfigurationsdateien für Test- und Bereitstellungspipelines zu erstellen, anstatt alle möglichen Konfigurationen in einer einzelnen Snowflake-Standardkonfigurationsdatei zu definieren.
Um eine andere Konfigurationsdatei als Ihre Standarddatei zu verwenden, können Sie die Option --config-file
für den Befehl snow
verwenden, wie gezeigt:
snow --config-file="my_config.toml" connection test
Unterstützung von Systemumgebungsvariablen¶
Snowflake CLI unterstützt die Verwendung von Systemumgebungsvariablen, um Parameterwerte zu überschreiben, die in Ihrer config.toml
-Datei definiert sind, und zwar im folgenden Format:
SNOWFLAKE_<config-section>_<variable>=<value>
Wobei:
<config_section>
ist der Name eines Abschnitts in der Konfigurationsdatei, wobei die Zeiträume (.
) durch Unterstriche (_
) ersetzt werden, z. B.CLI_LOGS
.variable ist der Name einer in diesem Abschnitt definierten Variable, z. B.
path
.
Einige Beispiele sind:
Überschreiben Sie den Parameter
path
im Abschnitt[cli.logs]
in derconfig.toml
-Datei:export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
Legen Sie das Kennwort für die Verbindung
myconnection
fest:export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
Legen Sie den Standardnamen für die Verbindung fest:
export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
Hinzufügen einer Authentifizierungsrichtlinie, die den Zugriff nur auf Snowflake CLI beschränkt¶
Benutzer können eine Authentifizierungsrichtlinie erstellen, die die Zugriffsberechtigung auf Treiber sowie Snowflake CLI beschränkt. Wenn Sie nur den Zugriff auf Snowflake CLI erlauben (und die Treiber ausschließen) möchten, können Sie wie folgt vorgehen:
Erstellen Sie eine neue Authentifizierungsrichtlinie, die den Zugriff streng auf Snowflake CLI beschränkt.
Aktivieren Sie die Richtlinie in der Datei
config.toml
.
Erstellen einer Authentifizierungsrichtlinie, die auf Snowflake CLI beschränkt ist¶
So erstellen Sie eine neue Authentifizierungsrichtlinie nur für Snowflake CLI:
Führen Sie den Befehl CREATE AUTHENTICATION POLICY SQL aus und setzen Sie den Parameter CLIENT_TYPES auf include
'SNOWFLAKE_CLI'
.
CREATE AUTHENTICATION POLICY snowflake_cli_only CLIENT_TYPES = ('SNOWFLAKE_CLI');
Fügen Sie die Richtlinie, dem Benutzer hinzu, wie gezeigt:
ALTER USER user1 SET AUTHENTICATION POLICY snowflake_cli_only;
Aktivieren Sie die Richtlinie in der Snowflake CLI-Konfiguration¶
Mit dem Konfigurationsparameter enable_separate_authentication_policy_id
können Sie den Zugriff auf Snowflake CLI getrennt von den Treibern aktivieren. Wenn dieser Zugriff aktiviert ist, können bestimmte Benutzer auf Snowflake CLI zugreifen, nicht aber auf die anderen Snowflake-Treiber.
Warnung
Wenn Sie bereits eine Authentifizierungsrichtlinie haben, die nur den Zugriff auf Treiber erlaubt und keine, die nur den Zugriff auf Snowflake CLI erlaubt, führt die Aktivierung des Parameters enable_separate_authentication_policy_id
dazu, dass die Benutzer den Zugriff auf Snowflake CLI verlieren, wenn Sie nicht zuerst die neue Richtlinie erstellen. Stellen Sie sicher, dass Sie SNOWFLAKE_CLI zu Ihrer Authentifizierungsrichtlinie hinzufügen, bevor Sie den Konfigurationsparameter aktivieren.
Um die SNOWFLAKE_CLI-Richtlinie zu aktivieren, fügen Sie den Parameter enable_separate_authentication_policy_id
zum Abschnitt [cli.features]
in der Datei config.toml
hinzu, wie gezeigt:
[cli.features]
enable_separate_authentication_policy_id = true
Bemerkung
Die Aktivierung dieses Parameters wirkt sich auf alle von Snowflake CLI hergestellten Verbindungen aus.
Verwenden eines Proxyservers¶
Um einen Proxyserver zu verwenden, konfigurieren Sie die folgenden Umgebungsvariablen:
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
Beispiel:
- Linux oder macOS:
export HTTP_PROXY='http://username:password@proxyserver.company.com:80' export HTTPS_PROXY='http://username:password@proxyserver.company.com:80'
- Windows:
set HTTP_PROXY=http://username:password@proxyserver.company.com:80 set HTTPS_PROXY=http://username:password@proxyserver.company.com:80
Tipp
Das Sicherheitsmodell von Snowflake erlaubt keine Secure Sockets Layer (SSL)-Proxys (unter Verwendung eines HTTPS-Zertifikats). Ihr Proxyserver muss eine öffentlich zugängliche Zertifizierungsstelle (CA) verwenden, um potenzielle Sicherheitsrisiken wie einen MITM (Man In The Middle)-Angriff durch einen kompromittierten Proxy zu reduzieren.
Wenn Sie Ihren SSL-Proxy verwenden müssen, empfehlen wir Ihnen dringend, die Serverrichtlinie zu aktualisieren, um die Snowflake-Zertifikatsprüfung zu bestehen, sodass mitten in der Kommunikation kein Zertifikat geändert wird.
Optional kann NO_PROXY
verwendet werden, um den Proxy für bestimmte Arten der Kommunikation zu umgehen. Beispielsweise kann für den Zugriff auf Amazon S3 der Proxyserver durch Angabe von NO_PROXY=".amazonaws.com"
umgangen werden.
NO_PROXY
unterstützt keine Platzhalter. Jeder angegebene Wert sollte einer der folgenden Werte sein:
Das Ende eines Hostnamens (oder eines vollständigen Hostnamens), zum Beispiel:
.amazonaws.com
meineOrganisation-meinKonto.snowflakecomputing.com
Eine IP-Adresse, zum Beispiel:
192.196.1.15
Wenn mehr als ein Wert angegeben wird, sollten die Werte durch Kommas getrennt werden. Beispiel:
localhost,.my_company.com,.snowflakecomputing.com,192.168.1.15,192.168.1.16
Protokollierung konfigurieren¶
Standardmäßig speichert Snowflake CLI Meldungen der Ebenen INFO
, WARNING
und ERROR
automatisch in Protokolldateien. Um die Protokollierung zu deaktivieren oder anzupassen, erstellen Sie in Ihrer config.toml
-Datei einen Abschnitt [cli.logs]
:
[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
Wobei:
save_logs
gibt an, ob die Protokolle in Dateien gespeichert werden sollen. Standard:true
.level
gibt an, welche Meldungen in den Protokolldateien gespeichert werden sollen. Wählen Sie eine der folgenden Ebenen aus, die alle Ebenen unterhalb der ausgewählten Ebene einschließt:debug
Warnung
Das Umschalten auf den Protokolliergrad
debug
kann sensible Informationen preisgeben, wie z. B. ausgeführte SQL-Abfragen. Seien Sie vorsichtig, wenn Sie diesen Protokolliergrad aktivieren.info
warning
error
Standard:
info
path
gibt den absoluten Pfad zum Speichern der Protokolldateien an. Das Format des Pfads variiert je nach Betriebssystem: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"
Wenn nichts angegeben wird, erstellt der Befehl ein Verzeichnis
logs
am Standardspeicherortconfig.toml
.
Wenn config.toml
automatisch erstellt wurde, enthält Ihre config.toml
-Datei den Abschnitt `` |cli.logs| ``, der mit Standardwerten gefüllt ist.
Die Protokolle eines einzelnen Tages werden an die Datei snowflake-cli.log
angehängt, die später in snowflake-cli.log.YYYY-MM-DD
umbenannt wird, wie gezeigt.
ls logs/
snowflake-cli.log snowflake-cli.log.2024-10-22