Sessions Snowflake et politiques de session¶
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 en utilisant un client automatique Snowflake, Snowsight, ou l”Classic Console. Une session est indépendante de la session d’un fournisseur d’identité (c’est-à-dire 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).
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 :
Clients tiers qui se connectent à Snowflake en utilisant un connecteur ou un pilote pris en charge.
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.
Sessions Snowsight¶
Snowflake crée une nouvelle session pour chaque feuille de calcul dans Snowsight. Une session de feuille de calcul applique la politique de session qui s’applique à l’utilisateur qui crée la feuille de calcul.
Prudence
Les requêtes actives ne sont pas annulées lorsque la session se termine et que l’utilisateur est déconnecté, même si le paramètre ABORT_DETACHED_QUERY est fixé sur true.
Sessions Console classique¶
Dans l’onglet Worksheets Snowflake crée une nouvelle session chaque fois qu’une nouvelle feuille de calcul est créée. Chaque feuille de calcul est limitée à un maximum de 4 heures d’inactivité, et le délai d’inactivité de chaque feuille de calcul est suivi séparément.
Lorsqu’une feuille de calcul est fermée, la session de l’utilisateur pour cette feuille de calcul se termine.
Après l’expiration du délai de 4 heures pour toute feuille de calcul ouverte Snowflake déconnecte l’utilisateur de l’interface Web.
Note
Notez que les comportements passifs tels que le défilement du jeu de résultats d’une requête ou le tri d’un ensemble de données ne remettent pas à zéro le suivi du délai d’expiration d’une session inactive.
Pour éviter de fermer une session trop tôt et d’être déconnecté de l”Classic Console, enregistrez toutes les instructions SQL nécessaires dans un fichier local et fermez toutes les feuilles de calcul ouvertes qui ne sont pas utilisées.
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:
Sélectionnez Admin » Security, puis 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 la 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).
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
pour les clients automatiques et les clients Snowflake.SESSION_UI_IDLE_TIMEOUT_MINS
pour l”Classic Console et 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. Cependant, en tant qu’administrateur de sécurité, vous souhaiterez peut-être gérer les rôles secondaires disponibles pour un utilisateur individuel, des groupes d’utilisateurs et 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. Ensuite, l’utilisateur peut exécuter une commande USE SECONDARY ROLES et spécifier les rôles secondaires qu’il peut utiliser pendant la session Snowflake.
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 lorsqu’une nouvelle session démarre. Vous pouvez démarrer une nouvelle session Snowflake en vous connectant à Snowflake ou en ouvrant une nouvelle feuille de calcul dans Snowsight.
Avant de mettre à jour la politique de session pour évaluer les rôles secondaires, tenez compte de votre planification de 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 valeurFALSE
, 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.