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 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.

  • Connect to external endpoints outside of 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.

Considérations de sécurité lors de l’utilisation de l’octroi automatique de privilèges

Lorsqu’un fournisseur configure une application pour utiliser manifest_version: 2 dans le fichier manifeste, l’octroi automatique de privilèges est activé. Par défaut, cela permet à Snowflake d’accorder automatiquement certains privilèges à l’application. Pour plus d’informations sur les privilèges qui peuvent être automatiquement accordés à l’application, consultez Privilèges accordés par l’octroi automatique de privilèges.

Lors de l’installation, Snowsight affiche une notification relative aux privilèges demandés par l’application. Lorsqu’un consommateur installe une application qui utilise l’octroi automatique de privilèges, il accepte que l’application puisse se voir accorder ces privilèges lors des mises à niveau, sans nécessiter de consentement supplémentaire.

Les consommateurs peuvent créer des politiques de fonctionnalités qui restreignent les objets qu’une application peut créer. Pour plus d’informations sur la création de politiques de fonctionnalités, consultez Utiliser des politiques de fonctions pour limiter les objets qu’une application peut créer.

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

Providers can use automated granting of privileges to specify the privileges an app needs to create and use objects in the consumer account. Automated granting of privileges grants the required privileges to the app when the consumer installs or upgrades the app.

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

Using automated granting of privileges, providers can add the SQL commands to the setup script to create and access objects in the consumer account.

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

  • CREATE SHARE

  • CREATE LISTING

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 on privileges gated by app specifications

The following privileges allow apps to create objects, but require additional app specification approval:

CREATE EXTERNAL ACCESS INTEGRATION

Allows an app to create an external access integration in the consumer account. However, to allow connections to an external endpoint, consumers must also approve the app specification that allows the app to connect to external hosts.

CREATE SECURITY INTEGRATION

Allows an app to create a security integration in the consumer account. However, to enable OAuth authentication, consumers must also approve the app specification that defines the OAuth endpoints and scopes.

CREATE SHARE and CREATE LISTING

Allow an app to create shares and listings in the consumer account. However, to share data with target accounts, consumers must also approve the app specification that specifies the target accounts and auto-fulfillment settings.

For more information about app specifications, see Vue d’ensemble des spécifications d’application.

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.