Désactiver des fonctionnalités Snowflake AI

La plupart des fonctionnalités Snowflake AI sont initialement disponibles pour tous les utilisateurs de votre compte Snowflake. L’accès à la plupart des fonctionnalités est contrôlé par le rôle de base de données SNOWFLAKE.CORTEX_USER, qui est initialement accordé au rôle PUBLIC. Tous les utilisateurs se voient attribuer le rôle PUBLIC, ce qui leur donne accès par défaut aux fonctionnalités de Cortex. (L’accès à Snowflake Copilot est contrôlé par le rôle de base de données SNOWFLAKECOPILOT_USER, également accordé à PUBLIC par défaut). Deux fonctionnalités, Cortex Analyst et Document AI, sont des fonctionnalités optionnelles qui ne sont pas accessibles aux utilisateurs par défaut.

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 CORTEX_USER et 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 vos besoins. (Vous ne pouvez pas accorder de rôles de base de données directement à des utilisateurs, mais vous devez les accorder à des rôles qui peuvent être endossés par des utilisateurs.)

Utilisez SQL comme suit pour révoquer l’accès aux rôles CORTEX_USER et COPILOT_USER depuis le rôle PUBLIC, puis accordez-les à des rôles et à des utilisateurs spécifiques.

-- Revoke access to most Snowflake AI features from all users in the account
REVOKE ROLE CORTEX_USER FROM ROLE PUBLIC;
REVOKE ROLE COPILOT_USER FROM ROLE PUBLIC;

-- Optionally, grant access to specific roles
GRANT ROLE CORTEX_USER TO ROLE my_cortex_role;
GRANT ROLE COPILOT_USER TO ROLE my_copilot_role;

-- Then grant those roles to specific users
GRANT ROLE my_cortex_role TO USER alice;
GRANT ROLE my_copilot_role TO USER bob;
Copy

Note

Si vous avez accordé CORTEX_USER et 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 d’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 :

    ALTER ACCOUNT SET ENABLE_CORTEX_ANALYST = FALSE;
    
    Copy
  • 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é.

    REVOKE CREATE MODEL ON SCHEMA my_schema FROM ROLE my_role;
    
    Copy
  • Document AI : révoquez le rôle de base de données SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR de tous les rôles auxquels vous l’avez accordé.

    REVOKE DATABASE ROLE SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR FROM ROLE my_role;
    
    Copy

    Note

    Les pipelines existants continuent de fonctionner après que l’accès à Document AI est révoqué. Suspendez ou supprimez les tâches associées aux pipelines pour les empêcher de s’exécuter.

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

    REVOKE CREATE PROVISIONED THROUGHPUT ON SCHEMA my_schema FROM ROLE my_role;
    
    Copy

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

Cortex Agents

Rôle de la base de données 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

Cortex AISQL

Rôle de la base de données CORTEX_USER

Cortex Analyst

Paramètre de compte ENABLE_CORTEX_ANALYST

Mise au point Cortex

CREATE MODEL sur le schéma où vous créez des modèles affinés

Cortex Knowledge Extensions

Rôle de la base de données CORTEX_USER

Repose sur le contrôle d’accès pour le Cortex Search Service sous-jacent

Débit provisionné Cortex

Le privilège CREATE PROVISIONED THROUGHPUT sur le schéma où vous créez des objets de débit provisionnés

Cortex Search

Rôle de la base de données 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

Document AI

Rôle de base de données SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR

Nombre de privilèges au niveau de l’objet pour la création de modèles et de pipelines

Snowflake Copilot

Rôle de la base de données COPILOT_USER

Snowflake Intelligence

Rôle de la base de données CORTEX_USER

Repose sur le contrôle d’accès pour le Cortex Agent ou le service de recherche sous-jacent

Désactiver des modèles spécifiques et des fonctions AISQL

É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 CORTEX_USER et 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).

Il s’agit de l’une des raisons pour lesquelles il est recommandé d’accorder le rôle ACCOUNTADMIN aux utilisateurs de confiance uniquement, ou de façon plus stricte, à un seul utilisateur du compte qui n’est utilisé à aucune autre fin que l’administration du compte Snowflake et dont les identifiants de connexion sont étroitement contrôlés. Utilisez ACCOUNTADMIN uniquement pour la configuration et la maintenance du compte, et utilisez d’autres rôles administratifs dont le champ d’action est plus limité (c’est-à-dire SECURITYADMIN, SYSADMIN ou USERADMIN) pour l’administration quotidienne.

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 :

CREATE ALERT my_alert
  IF (EXISTS (
    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY))
  THEN
    BEGIN
      CALL SYSTEM$SEND_SNOWFLAKE_NOTIFICATION(
        SNOWFLAKE.NOTIFICATION.TEXT_PLAIN('AI function used in account'),
        '{"my_slack_integration": {}}'
      );
    END;
Copy

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 de ML de Snowflake ne sont pas des fonctionnalités d’AI, l’accès à celles-ci n’est pas contrôlé par le rôle 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 Snowflake ML, 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 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 CORTEX_USER.