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

To revoke access to all Snowflake AI features that are available to users by default, revoke the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER database roles from the PUBLIC role. You can grant these roles to specific roles that you want to have access to the features, then grant those roles to specific users as needed. (You cannot grant database roles directly to users, but must grant them to roles that can be assumed by users.)

Use SQL like the following to revoke access to the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER roles from the PUBLIC role, then grant them to specific roles and users.

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

If you granted SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER to other roles, revoke them from those roles to completely block users from using Snowflake AI features.

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

SNOWFLAKE.CORTEX_USER database role

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

SNOWFLAKE.CORTEX_USER database role

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

SNOWFLAKE.CORTEX_USER database role

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

SNOWFLAKE.CORTEX_USER database role

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

SNOWFLAKE.COPILOT_USER database role

Snowflake Intelligence

SNOWFLAKE.CORTEX_USER database role

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

The ACCOUNTADMIN role has complete access to all features in a Snowflake account, including Snowflake AI features. Revoking the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER roles from PUBLIC does not prevent ACCOUNTADMIN from using these features. Even if an ACCOUNTADMIN’s access to AI features is revoked, a user with access to ACCOUNTADMIN can always grant access to that role (or any other role) again.

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

Snowflake ML features are not AI features, and access to them is not controlled by the SNOWFLAKE.CORTEX_USER role.

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 lets you build, deploy, and manage custom machine learning models developed in Python, at Snowflake scale. Creation and use of Snowflake ML objects, including the model registry, the feature store, and models and their versions, is not controlled by the SNOWFLAKE.CORTEX_USER role.

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

Users with the CREATE MODEL privilege in a schema can also create models using Cortex Fine-tuning. However, actually using Cortex fine-tuned models requires the SNOWFLAKE.CORTEX_USER database role.