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.

Expiration d’une session sur Snowsight et comportement de déconnexion

  • Une session sur Snowsight reste active tant que l’utilisateur interagit avec l’application et n’a pas dépassé le délai d’inactivité configuré pour les sessions inactives.

  • Le délai d’inactivité des sessions est contrôlé par la politique de sessions de votre entreprise (la valeur par défaut étant de 4 heures). Si aucune activité n’est détectée pendant une période supérieure à cette durée, votre session expirera et vous serez automatiquement déconnecté.

  • Outre le délai d’inactivité, la persistance de la session est également affectée par les cookies d’authentification :

    • Dans la plupart des cas, la fermeture et la réouverture de votre navigateur mettent fin à votre session sur Snowsight, indépendamment de votre temps d’inactivité.

    • Si votre cookie d’authentification expire (généralement, après 24 heures), vous devrez vous reconnecter, même si vous n’avez pas été inactif plus longtemps que le délai d’inactivité de la session.

  • Si votre connexion réseau est perdue ou si vous tentez d’accéder à Snowsight à partir d’un réseau non autorisé, votre session peut être fermée et vous serez déconnecté.

  • Lorsqu’une session est fermée pour une raison quelconque, toutes les requêtes en cours d’exécution ou les tâches associées à cette session sont interrompues après un court délai (généralement, dans les minutes qui suivent).

Note

L’expiration d’une session peut être due au délai d’inactivité, à l’expiration des cookies, au redémarrage du navigateur ou à des violations de la politique réseau. Si vous fermez votre navigateur ou restez inactif pendant trop longtemps, vous devrez peut-être vous reconnecter, même si vous n’avez pas atteint le délai d’inactivité configuré.

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.