Configurer les privilèges requis par une application

Cette rubrique décrit comment utiliser l’octroi automatique de privilèges pour demander des privilèges à un consommateur lors de l’installation ou de la mise à niveau d’une Snowflake Native App.

Vue d’ensemble de l’octroi automatique de privilèges

Souvent, une application doit créer ou accéder à des objets ou effectuer d’autres actions dans un compte de consommateur. Pour ce faire, le consommateur doit accorder les privilèges nécessaires pour permettre à l’application d’effectuer ces actions. Par exemple, les applications doivent disposer de privilèges pour effectuer les types de tâches suivants :

  • Créer et démarrer des entrepôts et des pools de calcul

  • Accéder aux données du compte consommateur.

  • Se connecter à des points de terminaison externes (en dehors de Snowflake)

En utilisant l’octroi automatisé de privilèges, les fournisseurs peuvent spécifier les privilèges requis dans le fichier manifeste d’une application. Lorsque le consommateur installe ou met à niveau une application, les privilèges spécifiés dans le fichier manifeste sont automatiquement accordés à l’application.

Prudence

Le fournisseur doit communiquer ces privilèges et leur impact potentiel afin qu’ils soient visibles pour le consommateur lors de l’évaluation et de l’installation de l’application. Une fois que les privilèges ont été automatiquement accordés lors de l’installation ou de la mise à niveau, ces privilèges ne peuvent plus être révoqués.

Demander des privilèges pour une application à l’aide de l’octroi automatique de privilèges

Les fournisseurs peuvent utiliser l’octroi automatique de privilèges pour spécifier les privilèges dont une application a besoin pour créer et utiliser des objets dans le compte de consommateur. L’octroi automatique de privilèges accorde les privilèges requis à l’application lorsque le consommateur installe ou met à niveau l’application.

Spécifier la version du fichier manifeste

Pour activer l’octroi automatique de privilèges pour une application, définissez la version au début du fichier manifeste, comme indiqué dans l’exemple suivant :

manifest_version: 2
Copy

Spécifier les privilèges dans le fichier manifeste

Pour spécifier les privilèges requis par l’application, les fournisseurs doivent les déclarer dans le fichier manifeste de l’application.

Note

Pour utiliser l’octroi automatique de privilèges, les fournisseurs doivent spécifier manifest_version: 2.

L’exemple suivant montre comment spécifier le privilège CREATE WAREHOUSE dans le fichier manifeste :

manifest_version: 2
...
privileges:
  - CREATE WAREHOUSE
    description: "Allows the app to create warehouses in the consumer account"
Copy

Lorsqu’un consommateur installe l’application, le privilège CREATE WAREHOUSE est automatiquement accordé à l’application.

Prudence

Si un fournisseur modifie la propriété manifest_version du fichier manifeste depuis 2 vers 1, tous les privilèges automatiques sont révoqués de l’application lors de la mise à niveau. Si le consommateur a explicitement accordé des privilèges à l’application, ces privilèges restent inchangés.

Note

Les fournisseurs ne peuvent modifier la propriété manifest_version que lors de mises à niveau importantes vers une nouvelle version de l’application. Le manifest_version ne peut pas être modifié dans une version de correctif.

Créer les objets requis dans le script d’installation

En utilisant l’octroi automatique de privilèges, les fournisseurs peuvent ajouter les commandes SQL au script d’installation qui est utilisé pour créer et accéder à des objets dans le compte de consommateur.

L’exemple suivant montre comment créer un entrepôt dans le compte de consommateur :

CREATE OR REPLACE WAREHOUSE application_wh;
Copy

Cette commande crée un entrepôt nommé application_wh dans le compte de consommateur. La fonctionnalité d’octroi automatique de privilèges permet à l’application de créer directement l’entrepôt. Le fournisseur n’a pas à ajouter une logique supplémentaire pour vérifier si le consommateur a accordé les privilèges requis.

Privilèges accordés par l’octroi automatique de privilèges

Les privilèges suivants sont pris en charge par l’octroi automatique de privilèges :

  • EXECUTE TASK

  • EXECUTE MANAGED TASK

  • CREATE WAREHOUSE

  • CREATE COMPUTE POOL

  • BIND SERVICE ENDPOINT

  • CREATE DATABASE

  • CREATE EXTERNAL ACCESS INTEGRATION

  • CREATE SECURITY INTEGRATION

Lorsqu’un fournisseur ajoute ces privilèges au fichier manifeste, ils sont automatiquement accordés à l’application lors de l’installation et de la mise à niveau.

Restrictions concernant le privilège CREATE EXTERNAL ACCESS INTEGRATION

Le privilège CREATE EXTERNAL ACCESS INTEGRATION permet à une application de créer une intégration d’accès externe dans le compte de consommateur. Toutefois, pour autoriser les connexions à un point de terminaison externe, les consommateurs doivent également approuver la spécification d’application qui permet à l’application de se connecter à des hôtes externes.

Pour plus d’informations, voir Utiliser les spécifications d’application pour demander des points de terminaison externes aux consommateurs.

Privilèges non accordés par l’octroi automatique de privilèges

Certains privilèges ne sont pas automatiquement accordés à l’application. Les consommateurs doivent accorder manuellement ces privilèges lors de l’installation ou de la mise à niveau d’une application. Par exemple, les privilèges suivants ne sont pas automatiquement accordés à l’application :

  • MANAGE WAREHOUSES

  • IMPORTED PRIVILEGES ON SNOWFLAKE DB

  • READ SESSION

  • EXECUTE ALERT

Utilisation de l’octroi automatique de privilèges lors des mises à niveau

Lors de la publication d’une nouvelle version d’une application, vous devrez peut-être ajouter ou supprimer les privilèges requis par l’application. Le script d’installation de la nouvelle version ou du correctif s’exécute à la fois avec les nouveaux privilèges automatiques spécifiés dans le fichier manifeste et les privilèges requis par la version précédente. Tous les privilèges superflus qui sont supprimés dans la nouvelle version sont révoqués une fois la mise à niveau de l’application terminée.

Pour assurer la stabilité lors des mises à niveau, lorsque la version du fichier manifeste est définie sur 2, la liste des privilèges demandés dans le fichier manifeste ne peut pas être modifiée dans le cadre d’un correctif. Cela empêche les fournisseurs de perturber involontairement le fonctionnement des applications en supprimant les privilèges requis dans un correctif.