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

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

-- Optionally, grant access to specific roles
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE my_cortex_role;
GRANT DATABASE ROLE SNOWFLAKE.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é 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 :

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

    REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER FROM ROLE my_role;
    
    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 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

Cortex AI Functions

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

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 base de données SNOWFLAKE.COPILOT_USER

Snowflake Intelligence

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 :

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