Sécurisation d’une fonction externe

Cette rubrique décrit les détails indépendants de la plate-forme liés à la sécurisation des fonctions externes.

Dans ce chapitre :

Contrôle d’accès

Fonctions externes

Les fonctions externes, comme toutes les fonctions définies par l’utilisateur (UDFs), suivent les règles de contrôle d’accès:

  • Les fonctions externes ont un propriétaire.

  • Le propriétaire doit accorder aux appelants (autres que le propriétaire) les privilèges appropriés sur la fonction.

Cependant, les fonctions externes ont des exigences de privilège supplémentaires :

  • Etant donné qu’une fonction externe nécessite une intégration API, l’auteur de la fonction externe doit disposer du privilège USAGE sur l’intégration API.

Pour plus d’informations sur les UDFs et le contrôle d’accès, voir Privilèges de contrôle d’accès.

Intégrations API

Une intégration API est un objet de base de données. Pour créer une intégration API, vous avez besoin de privilèges ACCOUNTADMIN ou d’un rôle Snowflake avec le privilège CREATE INTEGRATION. Les administrateurs de compte peuvent accorder et révoquer des privilèges de propriété et d’utilisation sur chaque intégration API.

Sécurisez le service proxy

Après avoir vérifié que vous pouvez appeler la fonction externe, vous devez généralement ajouter des restrictions de sécurité au service proxy, puis vérifier que vous pouvez toujours appeler la fonction.

  1. A moins que votre fonction externe ne soit destinée à être accessible au public, vous devez limiter le nombre de personnes pouvant appeler votre fonction externe. Pour plus de détails, voir Sécurisez votre point de terminaison de service proxy.

  2. Après avoir ajouté des restrictions de sécurité, appelez à nouveau votre fonction pour vous assurer que vous pouvez toujours l’appeler.

Pour aider à sécuriser l’accès au service proxy depuis Snowflake, le propriétaire de l’intégration API spécifie une liste blanche de points de terminaison auxquels l’objet d’intégration API peut accéder. N’oubliez pas de consulter la liste blanche pour vous assurer qu’elle est aussi affinée que possible.

Sécurisez le service distant

Si vous avez créé votre propre service distant, n’oubliez pas de le sécuriser.

Les détails dépendent de l’implémentation du service distant et sortent du cadre de ce document.

Dans la plupart des cas, le service distant doit utiliser HTTPS, pas HTTP.

Informations de sécurité supplémentaires

  • Les communications entre Snowflake et le serveur proxy sont chiffrées à l’aide de HTTPS.

Informations de sécurité spécifiques à la plate-forme

AWS