Snowflake sessions and session policies

Cette rubrique décrit les sessions Snowflake et les politiques de session et fournit des instructions pour configurer les politiques de session au niveau du compte ou de l’utilisateur.

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).

Avec une activité continue de l’utilisateur, une session client est maintenue indéfiniment. Après une période d’inactivité de la session, connue sous le nom de expiration de session inactive, l’utilisateur doit s’authentifier à nouveau auprès de Snowflake. Le délai d’expiration d’une session inactive a une valeur maximale de quatre heures et une politique de session peut modifier le délai d’expiration d’une session inactive. Le délai d’expiration d’une session inactive s’applique aux éléments suivants :

Snowflake recommande de réutiliser les sessions existantes lorsque cela est possible et de fermer la connexion à Snowflake lorsqu’une session n’est plus nécessaire.

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).

Note

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

Vous pouvez surveiller les sessions actives et l’utilisation des sessions à l’aide de Snowsight ou d’une vue SQL. Vous pouvez visualiser vos propres sessions ou utiliser un rôle ayant accès à la vue SESSIONS pour visualiser les sessions de votre compte. Voir Rôles de base de données SNOWFLAKE du schéma ACCOUNT_USAGE.

SQL:

Exécuter une requête sur la vue SESSIONS dans le schéma ACCOUNT USAGE de la base de données partagée SNOWFLAKE pour contrôler l’utilisation des sessions.

Snowsight:

Dans le menu de navigation, sélectionnez Governance & security » Network policies, puis sélectionnez l’onglet Sessions. Vous pouvez visualiser l’ID de session, le nom de l’utilisateur, l’heure de début, le pilote client utilisé pour la session, l’adresse réseau du client et la méthode d’authentification. Survolez l’heure de début pour voir la date et l’heure exactes auxquelles la session a commencé, dans votre fuseau horaire local.

Session policies

Une politique de session définit le délai d’expiration d’une session inactive en minutes et offre la possibilité de remplacer la valeur par défaut du délai d’inactivité. Le délai d’expiration commence dès que l’authentification à Snowflake a réussi. La valeur minimale configurable du délai d’expiration d’une session inactive pour une politique de session est de 5 minutes.

Si une politique de session n’est pas définie, Snowflake utilise une valeur par défaut de 240 minutes (4 heures).

Lorsque la session expire, l’utilisateur doit s’authentifier à nouveau auprès de Snowflake. Cependant, Snowflake n’applique pas les paramètres définis par le Point de terminaison de déconnexion personnalisé.

La politique de session peut être définie pour un compte ou un utilisateur avec des délais d’expiration en cas d’inactivité configurables pour répondre à des exigences de conformité. Si un utilisateur est associé à la fois à une politique de session de compte et de niveau utilisateur, la politique de session de niveau utilisateur a la priorité. Une fois la politique de session définie pour le compte ou l’utilisateur, Snowflake l’applique.

Il existe deux propriétés qui régissent le comportement de la politique de session :

  • SESSION_IDLE_TIMEOUT_MINS for programmatic and Snowflake clients.

  • SESSION_UI_IDLE_TIMEOUT_MINS for Snowsight.

Pour plus d’informations, voir Gestion des politiques de session.

Rôles secondaires dans une politique de session

Lorsqu’un utilisateur se connecte à Snowflake et que la session démarre, l’utilisateur peut activer les rôles secondaires à l’aide d’une commande USE SECONDARY ROLES. Toutefois, en tant qu’administrateur de sécurité, vous pouvez souhaiter gérer les rôles secondaires disponibles pour un utilisateur individuel, des groupes d’utilisateurs ou l’ensemble du compte. La gestion des rôles secondaires permet de définir l’ensemble des privilèges disponibles pour un utilisateur pendant la durée de la session.

Pour répondre à ces besoins de gestion, vous pouvez définir la propriété ALLOWED_SECONDARY_ROLES dans une politique de session et définir la politique de session sur le compte ou un utilisateur du compte. Cette propriété contrôle les rôles secondaires qui peuvent être activés dans une session. La définition de cette propriété dans une liste vide ALLOWED_SECONDARY_ROLES=() désactive les rôles secondaires dans une session.

Pour des exemples, voir Spécification des rôles secondaires dans une politique de session.

Note

Lorsque vous définissez la propriété ALLOWED_SECONDARY_ROLES dans une politique de session, l’application des rôles secondaires commence immédiatement, y compris pour les sessions existantes.

Avant de mettre à jour la politique de session pour limiter les rôles secondaires, tenez compte de votre planification de la charge de travail et du contrôle d’accès pour chaque charge de travail afin d’éviter toute interruption inutile de la charge de travail.

Considérations

  • Si un client prend en charge l’option CLIENT_SESSION_KEEP_ALIVE et que l’option est définie sur TRUE, le client préserve la session Snowflake indéfiniment tant que la connexion à Snowflake est active. Sinon, si l’option a pour valeur FALSE, la session se termine après 4 heures. Dans la mesure du possible, évitez d’utiliser cette option, car elle peut entraîner l’ouverture de nombreuses sessions et une plus grande demande de ressources, ce qui peut entraîner une dégradation des performances.

  • Vous pouvez utiliser le paramètre CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY pour spécifier le nombre de secondes entre les tentatives du client pour mettre à jour le jeton pour la session. La session de l’interface Web peut être actualisée au fur et à mesure que des objets Snowflake continuent d’être utilisés, comme l’exécution des instructions DDL et DML. Snowflake vérifie ce comportement toutes les 30 secondes.

  • La création d’une nouvelle feuille de calcul ou l’ouverture d’une feuille de calcul existante continue à utiliser la session utilisateur établie, mais avec un délai d’expiration de session inactive réinitialisé à 0.

Limitations

Autorisations futures:

Les autorisations futures de privilèges sur les politiques de session ne sont pas prises en charge.

Comme solution de contournement, accordez le privilège APPLYSESSION POLICY à un rôle personnalisé pour lui permettre d’appliquer des politiques de session à un utilisateur ou au compte Snowflake.