Désactiver des fonctionnalités Snowflake AI¶
Most Snowflake AI features are initially available to all users in your Snowflake account. Access to most features is controlled by the SNOWFLAKE.CORTEX_USER database role, which is initially granted to the PUBLIC role. All users are granted the PUBLIC role, giving them access to Cortex features by default. (Access to Snowflake Copilot is controlled by the SNOWFLAKE.COPILOT_USER database role, also granted to PUBLIC by default.) Cortex Analyst is an opt-in feature that is not accessible to users by default.
Désactiver les fonctionnalités par défaut¶
Pour révoquer l’accès à toutes les fonctionnalités Snowflake AI qui sont disponibles par défaut pour les utilisateurs, révoquez les rôles de base de données SNOWFLAKE.CORTEX_USER et SNOWFLAKE.COPILOT_USER à partir du rôle PUBLIC. Vous pouvez accorder ces rôles à des rôles spécifiques qui doivent avoir accès aux fonctionnalités, puis accorder ces rôles à des utilisateurs spécifiques selon les besoins. (Vous ne pouvez pas accorder de rôles de base de données directement aux utilisateurs, mais vous devez les accorder à des rôles qui peuvent être assumés par les utilisateurs.)
Utilisez SQL comme suit pour révoquer l’accès aux rôles SNOWFLAKE.CORTEX_USER et SNOWFLAKE.COPILOT_USER depuis le rôle PUBLIC, puis accordez-les à des rôles et à des utilisateurs spécifiques.
Note
Si vous avez accordé SNOWFLAKE.CORTEX_USER et SNOWFLAKE.COPILOT_USER à d’autres rôles, révoquez-les de ces rôles afin d’empêcher complètement les utilisateurs d’utiliser les fonctionnalités AI de Snowflake.
Révoquer l’accès aux fonctionnalités facultatives¶
Certaines fonctionnalités d’AI de Snowflake sont facultatives. L’accès à ces fonctionnalités est désactivé par défaut, de sorte que si vous ne leur accordez pas l’accès, vos utilisateurs ne peuvent pas les utiliser. Si vous avez accordé l’accès à l’une de ces fonctionnalités, vous pouvez révoquer l’accès à des fonctionnalités individuelles :
Cortex Analyst : définissez le paramètre de compte ENABLE_CORTEX_ANALYST sur FALSE :
Fonctions d’intégration Cortex (AI_EMBED, EMBED_TEXT_768 et EMBED_TEXT_1024) : L’appel de ces fonctions nécessite le rôle de base de données SNOWFLAKE.CORTEX_EMBED_USER si l’utilisateur ne possède pas le rôle de base de données SNOWFLAKE.CORTEX_USER. Révoquer le rôle SNOWFLAKE.CORTEX_EMBED_USER de tous les rôles que vous lui avez accordés.
Mise au point Cortex : révoquez le privilège CREATE MODEL sur les schémas de tous les rôles auxquels vous l’avez accordé.
Débit provisionné : révoquez le privilège CREATE PROVISIONED THROUGHPUT sur les schémas de tous les rôles auxquels vous l’avez accordé.
Contrôle d’accès par fonctionnalité¶
Le tableau suivant contient des informations plus détaillées sur le contrôle d’accès pour les différentes fonctionnalités Snowflake AI :
Fonctionnalité |
Facultative |
Méthode de contrôle d’accès principale |
Méthodes de contrôle d’accès supplémentaires |
|---|---|---|---|
Rôle de base de données SNOWFLAKE.CORTEX_USER |
USAGE sur le service de recherche que l’agent interroge, plus USAGE sur la base de données, le schéma et la table utilisés par le service de recherche |
||
Rôle de base de données SNOWFLAKE.CORTEX_USER |
|||
✔ |
Paramètre de compte ENABLE_CORTEX_ANALYST |
||
✔ |
CREATE MODEL sur le schéma où vous créez des modèles affinés |
||
Rôle de base de données SNOWFLAKE.CORTEX_USER |
Repose sur le contrôle d’accès pour le Cortex Search Service sous-jacent |
||
✔ |
Le privilège CREATE PROVISIONED THROUGHPUT sur le schéma où vous créez des objets de débit provisionnés |
||
Rôle de base de données SNOWFLAKE.CORTEX_USER |
USAGE sur le service de recherche, la base de données, le schéma et la table utilisés par le service de recherche |
||
Rôle de base de données SNOWFLAKE.COPILOT_USER |
|||
Rôle de base de données SNOWFLAKE.CORTEX_USER |
Repose sur le contrôle d’accès pour le Cortex Agent ou le service de recherche sous-jacent |
Opt out of specific models and AI Functions¶
Étant donné que le coût d’utilisation de différents grands modèles de langage varie, vous pouvez limiter l’accès à des LLMs spécifiques via une liste d’autorisation au niveau du compte, par un contrôle d’accès basé sur les rôles, ou par une combinaison des deux. Pour plus d’informations, voir Contrôle de l’accès au modèle.
ACCOUNTADMIN et fonctionnalités d’AI¶
Le rôle ACCOUNTADMIN dispose d’un accès complet à toutes les fonctionnalités d’un compte Snowflake, y compris aux fonctionnalités d’AI de Snowflake. Révoquer les rôles SNOWFLAKE.CORTEX_USER et SNOWFLAKE.COPILOT_USER de PUBLIC n’empêche pas ACCOUNTADMIN d’utiliser ces fonctionnalités. Même si un accès d’ACCOUNTADMIN aux fonctionnalités d’AI est révoqué, un utilisateur ayant accès à ACCOUNTADMIN peut toujours accorder à nouveau l’accès à ce rôle (ou à n’importe quel autre rôle).
For this and other reasons, it is a best practice to grant the ACCOUNTADMIN role to trusted users only, or even more strictly, to a single user in the account which is not used for any purpose other than Snowflake account administration and whose login credentials are tightly controlled. Use ACCOUNTADMIN only for account setup and maintenance, and use other administrative roles with more limited scope (that is, SECURITYADMIN, SYSADMIN, or USERADMIN) for day-to-day administration.
Il est possible d’empêcher ACCOUNTADMIN d’utiliser les fonctionnalités d’AI de Snowflake qui sont gérées par des moyens autres qu’un contrôle d’accès basé sur les rôles. Par exemple, même un utilisateur possédant le rôle ACCOUNTADMIN ne peut pas utiliser Cortex Analyst si le paramètre de compte ENABLE_CORTEX_ANALYST est défini sur FALSE. Bien entendu, cet utilisateur peut toujours définir ce paramètre sur TRUE.
Surveiller l’utilisation des fonctionnalités d’AI¶
Pour vous assurer que les fonctionnalités d’AI de Snowflake ne sont pas utilisées, surveillez l’utilisation des fonctionnalités d’AI de Snowflake à l’aide des vues liées à Cortex dans le schéma SNOWFLAKE.ACCOUNT_USAGE. Ces vues sont les suivantes :
Note
CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY et CORTEX_FUNCTIONS_USAGE_HISTORY enregistrent essentiellement les mêmes événements. Il n’est donc pas nécessaire de surveiller les deux.
Créez des alertes pour les nouvelles données dans ces vues pour être informé des nouvelles fonctionnalités d’AI qui sont utilisées dans votre compte. Par exemple, l’instruction SQL suivante crée une alerte qui envoie un message Slack lorsque n’importe quelle fonctionnalité d’AI est utilisée :
Ces alertes entraînent un coût de calcul nominal lorsque de nouvelles données sont ajoutées à une vue de l’historique d’utilisation de Cortex, mais si aucune fonctionnalité d’AI n’est utilisée, aucun coût n’est engendré, car aucune donnée n’est jamais ajoutée et l’alerte n’est donc jamais déclenchée.
Contrôler l’accès aux fonctionnalités de ML¶
Les fonctionnalités ML de Snowflake ne sont pas des fonctionnalités AI, l’accès à celles-ci n’est pas contrôlé par le rôle SNOWFLAKE.CORTEX_USER.
Fonctions ML¶
Les fonctions de ML utilisent des techniques classiques de machine learning à des fins de prévision, de détection des anomalies et de classification, et pour d’autres tâches d’analyse des données. La création de modèles avec des fonctions ML est facultative et contrôlée par un privilège spécifique à la fonction, comme CREATE SNOWFLAKE.ML.FORECAST, sur les schémas. L’accès aux modèles entraînés est contrôlé par le privilège USAGE sur l’objet de modèle. Si vous avez déjà accordé ces privilèges, révoquez-les pour empêcher les utilisateurs de créer ou d’utiliser des modèles de fonctions de ML. Il se peut que vous souhaitiez DROP tous les modèles qui ont déjà été créés.
Les propriétaires des schémas peuvent créer des modèles de fonctions ML, qu’ils aient ou non des privilèges CREATE pour un type spécifique de modèle, limitez donc la propriété et la création de schémas à des utilisateurs de confiance. Accordez des privilèges spécifiques pour créer des modèles dans chaque schéma uniquement aux utilisateurs qui en ont besoin.
Snowflake ML¶
Snowflake ML vous permet de créer, déployer et gérer des modèles personnalisés de machine learning développés en Python, à l’échelle de Snowflake. La création et l’utilisation d’objets ML Snowflake, y compris le registre des modèles, le référentiel de fonctionnalités et les modèles et leurs versions, ne sont pas contrôlées par le rôle SNOWFLAKE.CORTEX_USER.
Les objets Snowflake ML sont des objets de niveau schéma, ce qui signifie que les utilisateurs peuvent créer des objets Snowflake ML dans n’importe quel schéma sur lequel ils ont un privilège OWNERSHIP ou CREATE approprié (par exemple, CREATE MODEL REGISTRY). Par conséquent, l’accès à Snowflake ML est mieux contrôlé en limitant la propriété et la création de schémas à des utilisateurs de confiance. Accordez des privilèges spécifiques pour créer des objets de ML Snowflake dans chaque schéma uniquement aux utilisateurs qui en ont besoin.
Note
Les utilisateurs dotés du privilège CREATE MODEL dans un schéma peuvent également créer des modèles à l’aide de la mise au point Cortex. Cependant, l’utilisation réelle de modèles Cortex mis au point requiert le rôle de base de données SNOWFLAKE.CORTEX_USER.