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