Créer et accéder à des objets dans un compte de consommateur

Cette rubrique décrit comment les fournisseurs peuvent développer une Snowflake Native App pour créer des objets dans un compte de consommateur ou accéder aux objets existants.

Vue d’ensemble de la création et de l’accès aux objets dans un compte de consommateur

Les Snowflake Native Apps ont souvent besoin de créer ou d’accéder aux objets dans un compte de consommateur. Par exemple, même une application de base permettant au consommateur d’interroger des données partagées nécessiterait que l’application crée et utilise un entrepôt dans le compte de consommateur. Une application peut également avoir besoin de se connecter à des services externes en dehors de Snowflake.

Le Snowflake Native App Framework offre deux moyens de demander des privilèges pour créer des objets dans un compte de consommateur.

Attribution automatique de privilèges à une application

Le Snowflake Native App Framework permet aux fournisseurs de demander certains privilèges sûrs, puis de les accorder automatiquement. Les fournisseurs ajoutent ces privilèges au fichier manifeste de l’application. Lors de l’installation ou de la mise à niveau de l’application, Snowflake accorde automatiquement ces privilèges à l’application.

Pour plus d’informations sur la configuration d’une application pour que les privilèges soient accordés automatiquement, consultez Configurer les privilèges requis par une application.

Du point de vue du fournisseur, l’octroi automatique de privilèges rationalise le développement de l’application, car celle-ci n’a pas à déterminer si un consommateur a accordé les privilèges demandés ou créé les objets requis dans son compte.

Du point de vue du consommateur, l’octroi automatique de privilèges simplifie l’installation et la configuration de l’application. Cependant, cela donne également au consommateur moins de contrôle par défaut sur ce qu’une application peut faire dans son compte. Pour permettre aux consommateurs de mieux contrôler ce qu’une application peut faire, le Snowflake Native App Framework fournit les fonctionnalités suivantes :

Spécifications d’application:

Elles permettent aux consommateurs de contrôler les points de terminaison externes auxquels une application peut se connecter. Pour accéder à des services extérieurs à Snowflake, une application peut avoir besoin de créer une intégration d’accès externe ou une intégration de service en fonction du type de service. En utilisant l’octroi automatique de privilèges, l’application peut créer ces objets dans le compte de consommateur. Toutefois, un administrateur du compte de consommateur doit approuver la spécification d’application qui permet à l’application d’exécuter la connexion externe.

Pour plus d’informations sur le développement d’une application utilisant des spécifications d’application, consultez Utiliser les spécifications d’application pour demander des points de terminaison externes aux consommateurs. Pour plus d’informations sur la façon dont le consommateur approuve la spécification d’application, consultez Approuver des connexions à des ressources externes à l’aide de spécifications d’application.

Politiques de fonctionnalités:

Les politiques de fonctionnalités permettent aux consommateurs de remplacer l’octroi automatique de privilèges. Avant d’installer ou de mettre à niveau une application, les consommateurs peuvent créer une politique de fonctionnalités pour interdire à l’application de créer des types d’objets spécifiques. Par exemple, un consommateur peut avoir besoin de configurer une politique de fonctionnalités pour interdire à une application de créer un entrepôt. Si une application tente de créer un entrepôt lors de l’installation ou de la mise à niveau, l’installation échoue.

Pour plus d’informations sur la façon dont un consommateur crée des politiques de fonctionnalités, consultez Utiliser des politiques de fonctions pour limiter les objets qu’une application peut créer.

Attribution manuelle de privilèges à une application

Pour les applications créées avant la publication de l’octroi automatique de privilèges, par exemple une application qui a été installée et qui ne dispose pas des privilèges nécessaires pour créer des objets dans le compte de consommateur, les consommateurs doivent manuellement accorder des privilèges à l’application à l’aide de SQL ou de l’Snowsight, en fonction de la configuration de l’application. Pour plus d’informations, voir Demander des privilèges globaux des consommateurs.

Accès aux objets existants dans le compte de consommateur

Dans certains contextes, une application installée doit accéder à des objets existants dans un compte de consommateur qui existent en dehors de l’application. Par exemple, une application peut avoir besoin d’accéder à des tables existantes dans une base de données de consommateurs. Pour permettre à l’application de créer des objets, le Snowflake Native App Framework utilise des références qui permettent au client de spécifier le nom et le schéma d’un objet et d’activer l’accès à cet objet.

Pour plus d’informations, voir Demander des références et des privilèges au niveau de l’objet des consommateurs.

Comparaison des privilèges automatiques et manuels

Exigences relatives aux applications

Octroi automatique de privilèges

Attribution manuelle de privilèges

Privilèges pour créer des objets

Les applications disposent de privilèges pour créer des objets, avec quelques exceptions.

Les consommateurs doivent explicitement accorder des privilèges à l’application en utilisant l’Snowsight ou SQL.

Accès aux services externes

Les applications peuvent créer des règles de réseau et des intégrations d’accès externes.

Les consommateurs doivent approuver l’accès externe à l’aide des spécifications d’application.

Les consommateurs doivent créer manuellement les règles de réseau et les intégrations d’accès externes requises, puis lier ces intégrations à l’aide de références.

Accès aux fournisseurs d’identité externes

Les applications peuvent créer des intégrations de sécurité pour une authentification d’API externe.

Les consommateurs doivent approuver la connexion externe à l’aide de la spécification d’application.

Les consommateurs doivent créer manuellement les intégrations de sécurité requises, puis lier ces intégrations à l’aide de références.

Accès aux objets existants

Les fournisseurs doivent utiliser des références pour accéder aux objets existants.

Les consommateurs approuvent l’accès aux références.

Les fournisseurs doivent utiliser des références pour accéder aux objets existants.

Les consommateurs approuvent l’accès aux références.

Développement d’applications

Les fournisseurs n’ont pas à écrire de code pour déterminer si le consommateur a accordé un certain privilège.

Les fournisseurs doivent écrire du code qui vérifie si le consommateur a accordé un certain privilège.

Installation d’applications

Les consommateurs n’ont pas à créer des objets ou à accorder des privilèges manuellement.

Les consommateurs doivent créer manuellement des objets dans leur compte ou explicitement accorder des privilèges à l’application en utilisant l’Snowsight ou SQL.

Considérations relatives à la sécurité lors de l’utilisation de privilèges automatiques avec les spécifications d’application

Les spécifications d’application contrôlent uniquement les communications vers des points de terminaison extérieurs à Snowflake. Les consommateurs peuvent approuver ou refuser les spécifications d’application pour accepter ou refuser que l’application établisse une connexion avec ces points de terminaison.

Les spécifications d’application n’empêchent pas l’application de créer des objets Snowflake qui contrôlent les connexions externes, à savoir les règles de réseau, les intégrations d’accès externes et les intégrations de sécurité. Les privilèges permettant de créer ces objets sont accordés à l’aide de l’octroi automatique de privilèges.

Les spécifications d’application ne fournissent pas de validation des données. En outre, elles n’imposent aucune restriction sur les secrets ou les jetons référencés par une intégration d’accès externe ou une intégration de sécurité.

Par exemple, si un fournisseur configure une intégration d’accès externe d’une application pour utiliser ALLOWED_AUTHENTICATION_SECRETS et que le consommateur approuve la spécification d’application pour cette intégration, l’application peut modifier ultérieurement les secrets et les jetons qu’elle utilise.

Toutefois, si un fournisseur modifiait l’application pour utiliser un point de terminaison différent, le numéro de séquence de la spécification d’application changerait, et le consommateur devrait approuver ou refuser la nouvelle version.