Configuração do Snowflake CLI¶
Snowflake CLI usa um arquivo de configuração global chamado config.toml
para configurar conexões e logs para Snowflake CLI. Se o arquivo não existir, executar qualquer comando snow
pela primeira vez criará automaticamente um arquivo config.toml
vazio que você poderá preencher com as conexões desejadas. Para obter mais informações sobre formatos de arquivo toml
, consulte TOML (Tom’s Obvious Minimal Language). As bibliotecas Snowflake Python atualmente oferecem suporte a TOML versão 1.0.0.
O config.toml
oferece suporte às seguintes seções:
[conexões] para definir e gerenciar conexões
[logs] para configurar quais tipos de mensagens são salvas em arquivos de log
Um arquivo de configuração Snowflake CLI tem a seguinte estrutura:
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"
Local do arquivo de configuração .toml
¶
Por padrão, Snowflake CLI procura o arquivo config.toml
no diretório ~/.snowflake
ou, caso este diretório não exista, em um local específico do sistema, conforme listado abaixo. Você também pode especificar qual arquivo de configuração deve ser usado usando o sinalizador --config-file
ou a variável de ambiente SNOWFLAKE_HOME
.
Se você especificar a opção
--config-file
(comosnow --config-file ./my-config-file-path
), Snowflake CLI usará o arquivo de configuração especificado.Se a variável de ambiente
SNOWFLAKE_HOME
estiver definida, Snowflake CLI usa o local especificado por esta variável.Se existir um diretório
~/.snowflake
em sua máquina, o Snowflake CLI usará o arquivo~/.snowflake/config.toml
.Caso contrário, o Snowflake CLI usará o arquivo
config.toml
em um dos seguintes locais, com base em seu sistema operacional:Linux:
~/.config/snowflake/config.toml
, mas é possível atualizá-lo com variáveis XDGWindows:
%USERPROFILE%\AppData\Local\snowflake\config.toml
Mac:
~/Library/Application Support/snowflake/config.toml
Nota
Para sistemas MacOS e Linux, Snowflake CLI exige o arquivo config.toml
para limitar suas permissões de leitura e gravação somente para o proprietário do arquivo. Para definir as permissões de arquivo necessárias, execute os seguintes comandos:
chown $USER config.toml
chmod 0600 config.toml
Escolha um arquivo de configuração diferente¶
Em algumas situações, como ambientes de integração contínua e implantação contínua (CI/CD), você pode preferir criar arquivos de configuração dedicados para pipelines de teste e implementação em vez de definir todas as configurações possíveis em um único arquivo de configuração padrão do Snowflake.
Para usar um arquivo de configuração diferente de seu arquivo padrão, é possível usar a opção --config-file
para o comando snow
, conforme mostrado:
snow --config-file="my_config.toml" connection test
Suporte para variáveis de ambiente do sistema¶
Snowflake CLI oferece suporte ao uso de variáveis de ambiente do sistema para substituir valores de parâmetro definidos em seu arquivo config.toml
, usando o seguinte formato:
SNOWFLAKE_<config-section>_<variable>=<value>
onde:
<config_section>
é o nome de uma seção no arquivo de configuração com pontos (.
) substituídos por sublinhados (_
), comoCLI_LOGS
.variável é o nome de uma variável definida naquela seção, como
caminho
.
Alguns exemplos incluem:
Substitua o parâmetro de
path
na seção[cli.logs]
no arquivoconfig.toml
:export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
Defina a senha para a conexão
myconnection
:export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
Defina o nome da conexão padrão:
export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
Adicione uma política de autenticação que limite o acesso somente a Snowflake CLI¶
Os usuários podem criar uma política de autenticação que limita a permissão de acesso aos drivers, bem como Snowflake CLI. Se quiser permitir o acesso apenas a Snowflake CLI (e excluir os drivers), você pode fazer o seguinte:
Crie uma nova política de autenticação que limite o acesso estritamente a Snowflake CLI.
Habilite a política no arquivo
config.toml
.
Criação de uma política de autenticação limitada a Snowflake CLI¶
Para criar uma nova política de autenticação somente para Snowflake CLI, siga estas etapas:
Execute o comando CREATE AUTHENTICATION POLICY SQL, definindo o parâmetro CLIENT_TYPES para incluir
'SNOWFLAKE_CLI'
.
CREATE AUTHENTICATION POLICY snowflake_cli_only CLIENT_TYPES = ('SNOWFLAKE_CLI');
Adicione a política ao usuário, conforme mostrado:
ALTER USER user1 SET AUTHENTICATION POLICY snowflake_cli_only;
Ative a política na configuração do Snowflake CLI¶
O parâmetro de configuração enable_separate_authentication_policy_id
permite que você habilite o acesso a Snowflake CLI separadamente dos drivers. Quando esse acesso está ativado, os usuários especificados podem acessar Snowflake CLI, mas não os outros drivers do Snowflake.
Aviso
Se você já tiver uma política de autenticação que permita o acesso somente a drivers e não tiver uma que permita o acesso somente a Snowflake CLI, a habilitação do parâmetro enable_separate_authentication_policy_id
fará com que os usuários percam o acesso a Snowflake CLI se você não criar a nova política primeiro. Certifique-se de adicionar SNOWFLAKE_CLI à sua política de autenticação antes de habilitar o parâmetro de configuração.
Para ativar a política SNOWFLAKE_CLI, adicione o parâmetro enable_separate_authentication_policy_id
à seção [cli.features]
do arquivo config.toml
, conforme mostrado:
[cli.features]
enable_separate_authentication_policy_id = true
Nota
A ativação desse parâmetro afeta todas as conexões feitas pelo Snowflake CLI.
Uso de um servidor proxy¶
Para utilizar um servidor proxy, configure as seguintes variáveis de ambiente:
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
Por exemplo:
- 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
Dica
O modelo de segurança do Snowflake não permite a utilização de proxies Secure Sockets Layer (SSL) (usando um certificado HTTPS). Seu servidor proxy deve usar uma Autoridade Certificadora (CA) disponível publicamente, reduzindo riscos potenciais de segurança, como um ataque MITM (Man In The Middle) através de um proxy comprometido.
Se você precisar usar seu proxy SSL, recomendamos fortemente que atualize a política do servidor para passar o certificado do Snowflake de modo que nenhum certificado seja alterado no meio das comunicações.
Opcionalmente NO_PROXY
pode ser usado para ignorar o proxy para comunicações específicas. Por exemplo, o acesso ao Amazon S3 pode ignorar o servidor proxy especificando NO_PROXY=".amazonaws.com"
.
NO_PROXY
não tem suporte para curingas. Cada valor especificado deve ser um dos seguintes:
O fim de um nome de host (ou um nome de host completo), por exemplo:
.amazonaws.com
minhaorganização-minhaconta.snowflakecomputing.com
Um endereço IP, por exemplo:
192.196.1.15
Se for especificado mais de um valor, os valores devem ser separados por vírgulas; por exemplo:
localhost,.my_company.com,.snowflakecomputing.com,192.168.1.15,192.168.1.16
Configuração do registro em log¶
Por padrão, Snowflake CLI salva automaticamente as mensagens de nível INFO
, WARNING
e ERROR
em arquivos de log. Para desabilitar ou personalizar o registro, crie uma seção [cli.logs]
em seu arquivo config.toml
:
[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
onde:
save_logs
indica se os logs devem ser salvos em arquivos. Padrão:true
.level
especifica quais níveis de mensagens salvar nos arquivos de log. Escolha entre os seguintes níveis, que incluem todos os níveis abaixo do selecionado:debug
Aviso
Mudando para o nível de registro em log
debug
pode expor informações confidenciais, como consultas SQL. Tenha cuidado ao habilitar este nível.info
warning
error
Padrão:
info
path
especifica o caminho absoluto para salvar os arquivos de log. O formato do caminho varia de acordo com o seu sistema operacional, conforme mostrado:Linux:
path = "/home/<seu_nome_de_usuário>/.config/snowflake/logs"
MacOS:
path = "/Users/<seu_nome_de_usuário>/Library/Application Support/snowflake/logs"
Windows:
path = "C:\\Users\\<seu_nome_de_usuário>\\AppData\\Local\\snowflake\\logs"
Se não for especificado, o comando cria um diretório
logs
na localização padrãoconfig.toml
do arquivo.
Se oseu config.toml
foi criado automaticamente, o arquivo config.toml
contém a seção `` |cli.logs| `` preenchida com valores padrão.
Os registros de um único dia são anexados ao arquivo snowflake-cli.log
, que mais tarde foi renomeado para snowflake-cli.log.YYYY-MM-DD
, como mostrado.
ls logs/
snowflake-cli.log snowflake-cli.log.2024-10-22