Configuration de Snowflake CLI¶
Snowflake CLI utilise un fichier de configuration global appelé config.toml
pour configurer les connexions et les journaux pour Snowflake CLI. Si le fichier n’existe pas, la première exécution d’une commande snow
crée automatiquement un fichier config.toml
vide que vous pouvez ensuite remplir avec les connexions souhaitées. Pour plus d’informations sur les formats de fichiers toml
, consultez TOML (Tom’s Obvious Minimal Language). Les bibliothèques Python de Snowflake prennent en charge actuellement la version TOML de 1.0.0.
Le config.toml
prend en charge les sections suivantes :
(connexions) pour définir et gérer les connexions
(journaux) pour configurer les types de messages enregistrés dans les fichiers journaux
Un fichier de configuration Snowflake CLI a la structure suivante :
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"
Emplacement du fichier de configuration .toml
¶
Par défaut, Snowflake CLI cherche le fichier config.toml
dans le répertoire ~/.snowflake
ou, si ce répertoire n’existe pas, dans un emplacement spécifique au système, comme indiqué ci-dessous. Vous pouvez également spécifier quel fichier de configuration doit être utilisé en utilisant l’indicateur --config-file
ou la variable d’environnement SNOWFLAKE_HOME
.
Si vous spécifiez l’option
--config-file
option (par exemple,snow --config-file ./my-config-file-path
), Snowflake CLI utilise le fichier de configuration spécifié.Si la variable d’environnement
SNOWFLAKE_HOME
est définie, Snowflake CLI utilise l’emplacement spécifié par cette variable.Si un répertoire
~/.snowflake
existe sur votre machine, Snowflake Snowflake CLI utilise le fichier~/.snowflake/config.toml
.Sinon, Snowflake CLI utilise le fichier
config.toml
dans l’un des emplacements suivants, en fonction de votre système d’exploitation :Linux :
~/.config/snowflake/config.toml
, mais vous pouvez le mettre à jour avec des variables XDGWindows :
%USERPROFILE%\AppData\Local\snowflake\config.toml
Mac :
~/Library/Application Support/snowflake/config.toml
Note
Pour les systèmes MacOS et Linux, Snowflake CLI exige que le fichier config.toml
limite ses autorisations à la lecture et à l’écriture pour le propriétaire du fichier uniquement. Pour définir les autorisations requises pour le fichier, exécutez les commandes suivantes :
chown $USER config.toml
chmod 0600 config.toml
Choisir un fichier de configuration différent¶
Dans certaines situations, comme un environnement d’intégration continue et de déploiement continu (CI/CD), vous préférerez peut-être créer des fichiers de configuration dédiés aux pipelines de test et de déploiement plutôt que de définir toutes les configurations possibles dans un simple fichier de configuration par défaut de Snowflake.
Pour utiliser un fichier de configuration différent de votre fichier par défaut, vous pouvez utiliser l’option --config-file
pour la commande snow
, comme indiqué :
snow --config-file="my_config.toml" connection test
Prise en charge des variables d’environnement système¶
Snowflake CLI prend en charge l’utilisation de variables d’environnement système pour remplacer les valeurs de paramètres définies dans votre fichier config.toml
, en utilisant le format suivant :
SNOWFLAKE_<config-section>_<variable>=<value>
où :
<config_section>
est le nom d’une section dans le fichier de configuration avec des points (.
) remplacé par des traits de soulignement (_
), commeCLI_LOGS
.variable est le nom d’une variable définie dans cette section, telle que
path
.
Quelques exemples :
Remplacez le paramètre
path
dans la section[cli.logs]
dans le fichierconfig.toml
:export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
Définissez le mot de passe pour la connexion
myconnection
:export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
Définissez le nom de connexion par défaut :
export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
Ajouter une politique d’authentification qui limite l’accès à Snowflake CLI uniquement¶
Les utilisateurs peuvent créer une politique d’authentification qui limite l’autorisation d’accès aux pilotes, ainsi qu’à Snowflake CLI. Si vous souhaitez autoriser l’accès à Snowflake CLI uniquement (et exclure les pilotes), vous pouvez procéder comme suit :
Créez une nouvelle politique d’authentification qui limite strictement l’accès à Snowflake CLI.
Activez la politique dans le fichier
config.toml
.
Créer une politique d’authentification limitée à Snowflake CLI¶
Pour créer une nouvelle politique d’authentification pour Snowflake CLI uniquement, procédez comme suit :
Exécutez la commande CREATE AUTHENTICATION POLICY SQL, en fixant le paramètre CLIENT_TYPES de manière à inclure
'SNOWFLAKE_CLI'
.
CREATE AUTHENTICATION POLICY snowflake_cli_only CLIENT_TYPES = ('SNOWFLAKE_CLI');
Ajoutez la politique à l’utilisateur, comme indiqué :
ALTER USER user1 SET AUTHENTICATION POLICY snowflake_cli_only;
Activer la politique dans la configuration de Snowflake CLI¶
Le paramètre de configuration enable_separate_authentication_policy_id
vous permet d’activer l’accès à Snowflake CLI séparément des pilotes. Lorsque cet accès est activé, les utilisateurs spécifiés peuvent accéder à Snowflake CLI mais pas aux autres pilotes Snowflake.
Avertissement
Si vous avez déjà une politique d’authentification qui autorise l’accès uniquement aux pilotes et que vous n’en avez pas concernant l’accès à Snowflake CLI, l’activation du paramètre enable_separate_authentication_policy_id
fera perdre aux utilisateurs l’accès à Snowflake CLI si vous ne créez pas d’abord la nouvelle politique. Veillez à ajouter SNOWFLAKE_CLI à votre politique d’authentification avant d’activer le paramètre de configuration.
Pour activer la politique SNOWFLAKE_CLI, ajoutez le paramètre enable_separate_authentication_policy_id
à la section [cli.features]
du fichier config.toml
, comme indiqué :
[cli.features]
enable_separate_authentication_policy_id = true
Note
L’activation de ce paramètre affecte toutes les connexions effectuées par Snowflake CLI.
Utiliser un serveur proxy¶
Pour utiliser un serveur de proxy, configurez les variables d’environnement suivantes :
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
Par exemple :
- Linux ou 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
Astuce
Le modèle de sécurité de Snowflake ne permet pas les proxys Secure Sockets Layer (SSL) (utilisant un certificat HTTPS). Votre serveur de proxy doit utiliser une autorité de certification accessible au public (CA), réduisant ainsi les risques potentiels de sécurité tels qu’une attaque MITM (Man In The Middle) via un proxy compromis.
Si vous devez utiliser votre proxy SSL, nous vous recommandons fortement de mettre à jour la politique du serveur pour passer par le certificat Snowflake, afin qu’aucun certificat ne soit modifié au milieu des communications.
En option, NO_PROXY
peut être utilisé pour contourner le proxy pour des communications spécifiques. Par exemple, l’accès à Amazon S3 peut contourner le serveur proxy en spécifiant NO_PROXY=".amazonaws.com"
.
NO_PROXY
ne prend pas en charge les caractères génériques. Chaque valeur spécifiée doit être l’une des suivantes :
La fin d’un nom d’hôte (ou d’un nom d’hôte complet), par exemple :
.amazonaws.com
myorganization-myaccount.snowflakecomputing.com
Une adresse IP, par exemple :
192.196.1.15
Si plusieurs valeurs sont spécifiées, elles doivent être séparées par des virgules, par exemple :
localhost,.my_company.com,.snowflakecomputing.com,192.168.1.15,192.168.1.16
Configurer la journalisation¶
Par défaut, Snowflake CLI enregistre automatiquement les messages de niveau INFO
, WARNING
et ERROR
dans des fichiers journaux. Pour désactiver ou personnaliser la journalisation, créez une section [cli.logs]
dans votre fichier config.toml
:
[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
où :
save_logs
indique s’il faut enregistrer les journaux dans des fichiers. Par défaut :true
.level
spécifie les niveaux de message à enregistrer dans les fichiers journaux. Choisissez parmi les niveaux suivants, qui incluent tous les niveaux inférieurs à celui sélectionné :debug
Avertissement
Le passage au niveau de journalisation
debug
peut exposer des informations sensibles, telles que les requêtes SQL exécutées. Soyez prudent lorsque vous activez ce niveau.info
warning
error
Par défaut :
info
path
spécifie le chemin absolu où enregistrer les fichiers journaux. Le format du chemin varie en fonction de votre système d’exploitation, comme indiqué ci-dessous :Linux :
path = "/home/<votre_nom_d_utilisateur>/.config/snowflake/logs"
MacOS :
path = "/Users/<votre_nom_d_utilisateur>/Library/Application Support/snowflake/logs"
Windows :
path = "C:\\Users\\<votre_nom_d_utilisateur>\\AppData\\Local\\snowflake\\logs"
Si elle n’est pas spécifiée, la commande crée un répertoire
logs
dans l’emplacement par défaut du fichierconfig.toml
.
Si votre config.toml
a été créé automatiquement, le fichier config.toml
contient la section `` |cli.logs| `` remplie de valeurs par défaut.
Les journaux d’une seule journée sont ajoutés au fichier snowflake-cli.log
, qui est ensuite renommé snowflake-cli.log.YYYY-MM-DD
, comme indiqué.
ls logs/
snowflake-cli.log snowflake-cli.log.2024-10-22