Aller au contenu principal

Tutoriel : Gouverner l'accès aux modèles avec des politiques GRANT

Utilisez les politiques GRANT ABAC pour régir l’accès aux modèles, aux services de modèle, aux services de fournisseur de modèle et aux services MCP dans le schéma system.ai. Au lieu de maintenir un octroi direct sur chaque objet, créez une politique pour chaque type sécurisable pris en charge et faites correspondre les assets par leurs tags gouvernés.

À la fin de ce didacticiel, vous serez en mesure de :

  • Accordez dynamiquement l'accès aux modèles, aux services de modèle, aux services de fournisseur de modèle et aux services MCP en utilisant des tags gouvernés.
  • Supprimez l’accès à une famille de modèles sélectionnée tout en conservant les autres modèles étiquetés et services de modèles disponibles, ainsi que les services de fournisseur de modèles et les services MCP approuvés.

Le guide utilise le tag système ai.model_family que Databricks applique aux modèles et aux services de modèle dans system.ai. Pour les services de fournisseur de modèle et les services MCP, il utilise un tag gouverné défini par l'utilisateur, access_status = approved.

important

Les politiques GRANT ne prennent pas en charge les fonctions Unity Catalog. La suppression du privilège default EXECUTE de system.ai supprime également l’accès aux AI Functions. Ce tutoriel montre comment accorder l’accès aux fonctions requises avec des attributions directes.

Avant de commencer

Les politiques de ce tutoriel s’appliquent au groupe account users, qui contient tous les utilisateurs et Service Principal du compte.

Vous devez disposer de :

Étape 1 : Créer des politiques GRANT

Choisir une famille de modèles à exclure

Les modèles et les services de modèle dans system.ai possèdent des tags système tels que ai.model_family et ai.model_creator qui sont appliqués automatiquement. Vous pouvez référencer ces tags directement dans une politique sans avoir à les créer ou à les assigner vous-même.

Pour créer des conditions de politique basées sur des tags supplémentaires, vous pouvez créer et assigner vos propres tags gouvernés et référencer ces tags dans les politiques GRANT.

Dans l’Explorateur de catalogues, inspectez les modèles et les services de modèle que vous souhaitez gouverner et choisissez une valeur ai.model_family à exclure. Dans les politiques suivantes, remplacez <excluded-model-family> par cette valeur.

Les politiques GRANT n’accordent l’accès que lorsqu’un asset correspond à la condition basée sur les tags de la politique. Dans les politiques suivantes, un modèle ou un service de modèle ne correspond que s’il possède un tag ai.model_family dont la valeur n’est pas <excluded-model-family>.

Créer un tag gouverné pour les services

Pour gouverner l’accès aux services de fournisseur de modèle et aux services MCP, créez et attribuez un tag gouverné qui identifie les services auxquels les utilisateurs du compte peuvent accéder. Ce didacticiel utilise access_status = approved comme exemple.

  1. Créez un tag gouverné nommé access_status avec la valeur autorisée approved. Consultez Gérer les tags gouvernés.
  2. Appliquez access_status = approved à chaque service de fournisseur de modèle et service MCP que les utilisateurs du compte peuvent utiliser. Vous pouvez attribuer des tags dans Catalog Explorer ou via l'API d'attribution de tags d'entité Unity Catalog.

Créer des politiques pour les modèles et les services

Une politique GRANT cible un type sécurisable. Créez des politiques distinctes pour les modèles et les services de modèle, en utilisant la même condition.

SQL
CREATE POLICY grant_allowed_models
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on models outside the excluded family'
TO `account users`
GRANT EXECUTE FOR MODELS
WHEN has_tag('ai.model_family')
AND NOT has_tag_value('ai.model_family', '<excluded-model-family>');
SQL
CREATE POLICY grant_allowed_model_services
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on model services outside the excluded family'
TO `account users`
GRANT EXECUTE FOR MODEL SERVICES
WHEN has_tag('ai.model_family')
AND NOT has_tag_value('ai.model_family', '<excluded-model-family>');

Les politiques accordent automatiquement des privilèges EXECUTE sur les nouveaux modèles et services de modèles lorsqu’ils possèdent un tag ai.model_family qui ne correspond pas à la valeur exclue. Les utilisateurs ne reçoivent pas de privilèges EXECUTE sur les ressources sans ce tag via ces politiques.

remarque

Les politiques précédentes accordent automatiquement EXECUTE aux modèles et services de modèle dont la valeur ai.model_family correspond à la condition. Si vous préférez contrôler explicitement les modèles et services de modèle auxquels les utilisateurs du compte peuvent accéder, utilisez plutôt votre propre tag gouverné. Par exemple, appliquez access_status = approved à chaque modèle ou service de modèle approuvé, puis utilisez has_tag_value('access_status', 'approved') comme condition de politique.

Pour les services de fournisseur de modèles et les services MCP, les politiques ci-dessous accordent EXECUTE lorsqu’un administrateur applique access_status = approved.

SQL
CREATE POLICY grant_allowed_model_provider_services
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on approved model provider services'
TO `account users`
GRANT EXECUTE FOR MODEL PROVIDER SERVICES
WHEN has_tag_value('access_status', 'approved');
SQL
CREATE POLICY grant_allowed_mcp_services
ON SCHEMA system.ai
COMMENT 'Grant EXECUTE on approved MCP services'
TO `account users`
GRANT EXECUTE FOR MCP SERVICES
WHEN has_tag_value('access_status', 'approved');

Étape 2 : Accorder l’accès aux AI Functions

Pour accorder l’accès à une fonction d’IA dans system.ai, accordez EXECUTE directement sur la fonction. Par exemple, l’instruction suivante accorde l’accès à la fonction intégrée python_exec :

SQL
GRANT EXECUTE ON FUNCTION system.ai.python_exec TO `account users`;

Répétez cet octroi direct pour chaque AI Function à laquelle les utilisateurs doivent accéder. Pour plus d’informations, reportez-vous à la rubrique Autorisations AI Functions Unity Catalog.

Étape 3 : Supprimer l’octroi de privilèges sur le schéma default

Après avoir créé les politiques GRANT, supprimez l'autorisation EXECUTE default au niveau du schéma.

Avant de révoquer EXECUTE, assurez-vous que account users peut toujours utiliser le catalogue et le schéma :

SQL
GRANT USE CATALOG ON CATALOG system TO `account users`;
GRANT USE SCHEMA ON SCHEMA system.ai TO `account users`;

Révoquer l’octroi default :

SQL
REVOKE EXECUTE ON SCHEMA system.ai FROM `account users`;
attention

Ce changement affecte chaque utilisateur du compte et chaque asset exécutable dans system.ai, y compris les modèles, les services de modèle, les services de fournisseur de modèle, les services MCP et les AI Functions.

Étape 4 : Vérifier l’accès

Confirmez que les politiques sont attachées à system.ai:

SQL
SHOW EFFECTIVE POLICIES ON SCHEMA system.ai;

Testez en tant qu'utilisateur de compte ne disposant d'aucun autre droit EXECUTE pour confirmer ce qui suit :

  • L’utilisateur dispose des privilèges EXECUTE sur un modèle ou un service de modèle avec une valeur ai.model_family non exclue.
  • Les utilisateurs ne disposent pas des privilèges EXECUTE sur un modèle ou un service de modèle avec la valeur exclue.
  • Les utilisateurs ne disposent pas des privilèges EXECUTE sur un asset sans le tag ai.model_family.
  • Les utilisateurs disposent des privilèges EXECUTE sur un service de fournisseur de modèles ou un service MCP tagué access_status = approved.
  • Les utilisateurs ne disposent pas des privilèges EXECUTE sur un service de fournisseur de modèle non tagué ou un service MCP via ces politiques.
  • Les utilisateurs disposent des privilèges EXECUTE sur une fonction d’IA uniquement si vous les leur avez accordés directement.

Pour exclure une famille de modèles différente, utilisez CREATE OR REPLACE POLICY pour mettre à jour <excluded-model-family> dans les conditions WHEN de grant_allowed_models et grant_allowed_model_services. Les politiques mises à jour accordent EXECUTE uniquement aux modèles et services de modèle dont la valeur ai.model_family diffère de la valeur exclue.

Pour les services de fournisseur de modèle et les services MCP, appliquez ou supprimez access_status = approved afin de modifier les services qui reçoivent EXECUTE.

Ressources supplémentaires