Sessions Snowflake et politiques de sessions

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.

Sessions Snowflake

Une session commence lorsqu’un utilisateur se connecte à Snowflake et réussit à s’authentifier à l’aide d’un client automatique Snowflake ou de Snowsight. Une session est indépendante de la session d’un fournisseur d’identité (IdP). Si la session Snowflake expire mais que la session IdP reste active, un utilisateur peut se connecter à Snowflake sans saisir à nouveau ses identifiants de connexion (authentification silencieuse).

Par défaut, 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 par défaut d’une session inactive est de quatre heures pour les régions non-UI (programmatiques) et 18 heures pour les sessions UI (si vous avez opté pour BCR -2139). La politique de session peut modifier le délai d’expiration d’une session inactive d’un minimum de 5 minutes à un maximum de 24 heures.

Une politique de session peut également appliquer une durée de vie maximale de session, qui met fin à la session après une durée définie, quelle que soit l’activité. La plage configurable est de 0 minute à 30 jours, où une valeur de 0 signifie qu’aucune durée de vie maximale n’est appliquée. Par défaut, aucune durée de vie maximale n’est appliquée. Ces délais de session s’appliquent 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 Snowsight reste active tant que l’utilisateur interagit avec l’application, n’a pas dépassé le délai d’expiration configuré d’une session inactive et n’a pas atteint la durée de vie maximale de la session (si configuré).

  • Le délai d’inactivité des sessions est contrôlé par la politique de sessions de votre entreprise. Le délai d’inactivité par défaut est de quatre heures (ou de 18 heures en cas d’inscription à BCR-2139). S’il n’y a aucune activité pendant plus longtemps, la session expirera et vous serez automatiquement déconnecté.

  • Une politique de session peut également appliquer une durée de vie maximale de la session. Si elle est configurée, la session expire après la durée spécifiée, quelle que soit l’activité. Par défaut, aucune durée de vie maximale n’est appliquée.

  • Outre le délai d’inactivité et la duré de vie maximale, 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é, à la durée e vie maximale, à 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é.

Surveiller l’utilisation des sessions

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.

Politiques de session

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) pour les sessions non-UI (programmatiques). Pour les sessions Snowsight, la valeur par défaut est de 1080 minutes (18 heures) en cas d’inscription à BCR-2139, ou``240`` minutes (4 heures) dans le cas contraire.

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 valeurs de délai d’expiration d’inactivité configurables et de durée de vie de session maximale 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 du délai d’expiration :

  • SESSION_IDLE_TIMEOUT_MINS pour les clients automatiques et les clients Snowflake.

  • SESSION_UI_IDLE_TIMEOUT_MINS pour Snowsight.

Une politique de session peut également définir la durée de vie maximale de la session, quelle que soit l’activité. Lorsque la durée de vie maximale est atteinte, l’utilisateur doit s’authentifier à nouveau même si la session est toujours active. La plage configurable va de 0 à 43200 minutes (30 jours).

Si une politique de session est définie, mais qu’une durée de vie de session n’est pas définie, Snowflake utilise une valeur par défaut de 0, ce qui signifie qu’aucune durée de vie maximale n’est appliquée.

Il existe deux propriétés qui régissent le comportement de la durée de vie maximale :

  • SESSION_MAX_LIFESPAN_MINS pour les clients automatiques et les clients Snowflake.

  • SESSION_UI_MAX_LIFESPAN_MINS pour 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 tant que la connexion à Snowflake est active. Toutefois, si une politique de session avec une durée de vie maximale est configurée, la session se termine toujours lorsque cette durée de vie est atteinte, quelle que soit l’activité. Si l’option est définie sur FALSE, la session se termine après le délai d’expiration de la session inactive (4 heures par défaut pour les sessions programmatiques). Lorsque cela est 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.