Comprendre les droits du propriétaire et les applications Streamlit in Snowflake

Dans ce chapitre :

Introduction

Le modèle de Streamlit dans Snowflake est étroitement lié au modèle des droits du propriétaire dans les procédures stockées. Cela élimine le besoin de jetons de compte de service et s’intègre aux fonctions d’authentification, de contrôle d’accès et de politique réseau fournies par Snowflake.

Concernant les droits du propriétaire dans Streamlit in Snowflake

Les applications Streamlit respectent les règles suivantes au sein d’une session :

  • Exécuter avec les privilèges du propriétaire, pas les privilèges de l’appelant.

  • Effectuer une exécution avec l’entrepôt fourni par le propriétaire de l’application.

  • Utiliser la base de données et le schéma dans lesquels l’application Streamlit dans Snowflake est créée, et non la base de données et le schéma actuellement utilisés par l’appelant.

À propos de la création d’applications

Le privilège de créer une application Streamlit est accordé au niveau du schéma. Seuls les utilisateurs disposant du privilège OWNER sur le schéma peuvent créer une application Streamlit dans ce schéma. Lorsqu’une application Streamlit est créée, elle s’exécute avec le rôle de l’utilisateur qui a créé l’application à l’origine.

Visualisation d’une application

Le propriétaire de l’application peut choisir les rôles autorisés à utiliser l’application.

  • Les spectateurs peuvent interagir avec l’application et voir tout ce qui s’affiche à l’écran.

  • Tous les privilèges du rôle propriétaire de l’application peuvent être utilisés par l’application lorsqu’ils sont partagés avec d’autres rôles, que le privilège ait ou non WITH GRANT activé.

Restrictions des droits du propriétaire

Les applications fonctionnant avec les droits du propriétaire, elles sont soumises à plusieurs restrictions supplémentaires. Ces restrictions concernent les éléments suivants :

  • Les fonctions intégrées qui peuvent être appelées à l’intérieur d’une procédure stockée ne sont pas disponibles lorsqu’une procédure stockée est appelée dans une application Streamlit.

  • ALTER USER.

  • Les types d’instructions SQL qui peuvent être appelées à l’intérieur d’une procédure stockée.

  • Certaines commandes DESCRIBE.

Droits des propriétaires et sécurité des applications

Bien que Snowflake offre des fonctions de sécurité telles que l’authentification, le contrôle d’accès basé sur les rôles et les contrôles administratifs, la responsabilité de la sécurité des applications est partagée avec les auteurs d’applications. Par conséquent, vous devez suivre des pratiques de sécurité appropriées lorsque vous développez des applications Streamlit dans Snowflake.

Une logique d’application incorrecte peut permettre à un attaquant d’obtenir un accès complet à tous les privilèges accordés au rôle du propriétaire. Par exemple, une application qui permet aux visiteurs d’écrire directement des commandes SQL permettrait également aux visiteurs d’agir en tant que propriétaire de l’application : ils pourraient reconfigurer l’application et cibler d’autres visiteurs de l’application.

Snowflake recommande d’utiliser un contrôle d’accès basé sur les rôles et des rôles dédiés pour la création et l’affichage d’applications Streamlit.