Snowflake sessions and session policies

Este tópico descreve as sessões do Snowflake e as políticas de sessão e fornece instruções para configurar as políticas de sessão em nível de conta ou de usuário.

Snowflake sessions

A session begins when a user connects to Snowflake and authenticates successfully using a Snowflake programmatic client or Snowsight. A session is independent of an identity provider (IdP) session. If the Snowflake session expires but the IdP session remains active, a user can log in to Snowflake without entering their login credentials again (i.e. silent authentication).

A sessão é mantida indefinidamente com a atividade contínua do usuário. Após um período de inatividade na sessão, conhecido como tempo limite de sessão ociosa, o usuário deve se autenticar novamente no Snowflake. O tempo limite de sessão ociosa tem um valor máximo de quatro horas e uma política de sessão pode modificar o período de tempo limite da sessão ociosa. O tempo limite de sessão ociosa se aplica aos seguinte elementos:

O Snowflake recomenda reutilizar as sessões existentes quando possível e fechar a conexão com o Snowflake quando uma sessão não for mais necessária.

Snowsight session expiration and logout behavior

  • A Snowsight session remains active as long as the user is interacting with the application and has not exceeded the configured idle session timeout.

  • The session idle timeout is controlled by your organization’s session policy (the default is 4 hours). If there is no activity for longer than this period, the session will expire and you will be logged out automatically.

  • In addition to idle timeout, session persistence is also affected by authentication cookies:

    • In most cases, closing and reopening your browser will end your Snowsight session, regardless of your idle time.

    • If your authentication cookie expires (typically after 24 hours), you will be required to log in again, even if you have not been idle for longer than the session timeout.

  • If your network connection is lost or you attempt to access Snowsight from a disallowed network, your session may be closed and you will be logged out.

  • When a session is closed for any reason, any running queries or jobs associated with that session will be terminated after a short delay (usually within a few minutes).

Nota

Session expiration can occur due to idle timeout, cookie expiration, browser restarts, or network policy violations. Closing your browser or being inactive for an extended period may require you to log in again, even if you have not reached the configured idle timeout.

Monitor session usage

Você pode monitorar sessões ativas e uso de sessão usando o Snowsight ou um visualizador de SQL. Você pode visualizar suas próprias sessões ou usar uma função com acesso para visualizar a exibição SESSIONS para visualizar sessões da sua conta. Consulte Funções do banco de dados SNOWFLAKE do esquema ACCOUNT_USAGE.

SQL:

Consulte a exibição SESSIONS no esquema ACCOUNT USAGE do banco de dados SNOWFLAKE compartilhado para monitorar o uso da sessão.

Snowsight:

No menu de navegação, selecione Governance & security » Network policies e, em seguida, a guia Sessions. Você pode revisar o ID de sessão, o nome de usuário, a hora de início, o driver de cliente em uso para a sessão, o endereço de rede do cliente e o método de autenticação. Passe o mouse sobre o horário de início para visualizar a data e a hora exatas em que a sessão começou, em seu fuso horário local.

Session policies

Uma política de sessão define o tempo limite de sessão ociosa em minutos e oferece a opção de ignorar o valor padrão de tempo limite de inatividade. O período de tempo limite começa com uma autenticação bem sucedida no Snowflake. O valor mínimo de tempo ocioso configurável para uma política de sessão é de 5 minutos.

Se uma política de sessão não for definida, o Snowflake usará um valor padrão de 240 minutos (quatro horas).

Quando a sessão expirar, o usuário deve autenticar-se novamente no Snowflake. No entanto, o Snowflake não impõe nenhuma configuração definida pelo Ponto de extremidade de logout personalizado.

A política de sessão pode ser definida para uma conta ou usuário com períodos de tempo limite de inatividade configuráveis para atender às exigências de conformidade. Se um usuário está associado tanto a uma conta quanto a uma política de sessão no nível de usuário, a política de sessão no nível de usuário tem precedência. Após a política da sessão ser definida por conta ou usuário, Snowflake aplica a política da sessão.

Há duas propriedades que regem o comportamento da política da sessão:

  • SESSION_IDLE_TIMEOUT_MINS for programmatic and Snowflake clients.

  • SESSION_UI_IDLE_TIMEOUT_MINS for Snowsight.

Para obter mais informações, consulte Gerenciamento de políticas de sessão.

Funções secundárias em uma política de sessão

Quando um usuário se conecta ao Snowflake e a sessão começa, o usuário pode ativar funções secundárias cm um comando USE SECONDARY ROLES. No entanto, como administrador de segurança, você pode querer gerenciar as funções secundárias que estão disponíveis para um usuário individual, grupos de usuários ou para toda a conta. Gerenciar funções secundárias ajuda a definir o escopo do conjunto de privilégios disponíveis para um usuário durante a sessão.

Para atender a essas necessidades de gerenciamento, você pode definir a propriedade ALLOWED_SECONDARY_ROLES em uma política de sessão, e definir a política de sessão na conta ou um usuário na conta. Essa propriedade controla as funções secundárias que podem ser ativadas em uma sessão. Definir essa propriedade como uma lista vazia ALLOWED_SECONDARY_ROLES=() desativa as funções secundárias em uma sessão.

Para exemplos, consulte Especificar funções secundárias em uma política de sessão.

Nota

Quando você define a propriedade ALLOWED_SECONDARY_ROLES em uma política de sessão, a aplicação das funções secundárias começa imediatamente, incluindo as sessões existentes.

Antes de atualizar a política de sessão para limitar as funções secundárias, considere o cronograma da carga de trabalho e o controle de acesso de cada carga de trabalho para evitar interrupções desnecessárias na carga de trabalho.

Considerações

  • Se um cliente oferece suporte à opção CLIENT_SESSION_KEEP_ALIVE e a opção está definida para TRUE, o cliente preserva a sessão do Snowflake indefinidamente enquanto a conexão com o Snowflake estiver ativa. Caso contrário, se a opção for definida para FALSE, a sessão termina após 4 horas. Quando possível, evite usar esta opção, pois isso pode resultar em muitas sessões abertas e aumentar a demanda de recursos, levando a uma degradação do desempenho.

  • Você pode usar o parâmetro CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY para especificar o número de segundos entre as tentativas do cliente de atualizar o token da sessão. A sessão da interface da Web pode ser atualizada à medida que objetos Snowflake continuam a ser usados, como a execução de instruções DDL e DML. O Snowflake verifica esse comportamento a cada 30 segundos.

  • Criar uma nova planilha ou abrir uma planilha existente continua a utilizar a sessão de usuário estabelecida, mas o tempo limite de sessão ociosa é redefinido para 0.

Limitações

Concessões futuras:

Concessões futuras de privilégios em políticas de sessão não são suportadas.

Como alternativa, conceda o privilégio APPLYSESSION POLICY a uma função personalizada para permitir que esta função aplique políticas de sessão em um usuário ou conta Snowflake.