Activation du contrôle d'accès granulaire pour Milvus

Suivez cette procédure pour gérer les droits d'accès des utilisateurs dans watsonx.data Milvus afin que chaque utilisateur puisse consulter ou interroger uniquement les bases de données ou les collections que vous autorisez. Milvus prend en charge une autorisation fine grâce à des politiques qui définissent ce que les utilisateurs peuvent consulter ou interroger, ce qui vous permet de contrôler l'accès tant au niveau de la base de données qu'au niveau de la collection.

En attribuant intentionnellement des autorisations, vous soutenez la gouvernance d'entreprise, appliquez l'accès avec le moins de privilèges possible et protégez les données vectorielles sensibles entre les équipes ou les charges de travail. Cette approche permet de garantir la sécurité des opérations dans les environnements multi-locataires et crée un modèle de sécurité prévisible qui répond aux exigences organisationnelles et de conformité.

Avant de commencer

Remarque :

Les conditions préalables suivantes relatives au contrôle d'accès granulaire ne sont prises en charge que pour les déploiements sur site.

Préparez votre environnement en remplissant les conditions préalables suivantes :

  • Vous devez vous connecter en tant qu'utilisateur « cpadmin » à votre cluster IBM Cloud Pak for Data.

  • Une instance d' watsonx.data est installée dans le cluster IBM Cloud Pak for Data.

  • Un service « Milvus » est créé dans votre instance watsonx.data.

  • Les utilisateurs requis existent dans le cluster IBM Cloud Pak for Data.

Pour ajouter des utilisateurs via le protocole LDAP ( LDAP ), consultez la section « Connexion à votre fournisseur d'identité ».

  • Pour vérifier la liste des utilisateurs :

    1. Accédez à la page d'accueil du cluster.

    2. Cliquez sur Gérer les utilisateurs.

    3. Consultez la liste des utilisateurs.

Ajouter des utilisateurs à l'instance d' watsonx.data

Ajoutez des utilisateurs à l'instance d' watsonx.data afin qu'ils puissent accéder aux services Lakehouse, gérer les ressources et utiliser le service Milvus conformément aux autorisations que vous configurez.

  1. Accédez à la page d'accueil du cluster et cliquez sur Mes instances.

  2. Dans la section « Mes instances », sélectionnez l'instance « watsonx.data ».

  3. Sur la page des détails de l'instance, ouvrez le menu déroulant (⋮) et sélectionnez Gérer l'accès.

  4. Cliquez sur Ajouter des utilisateurs, puis sélectionnez les utilisateurs que vous souhaitez autoriser pour l'instance.

Création de politiques et de règles

Les politiques définissent les ressources d' Milvus s auxquelles un utilisateur peut accéder et les actions qu'il est autorisé à effectuer. Vous gérez ces stratégies via la console watsonx.data.

Pour accéder à la console de gestion des politiques :

  1. Accédez à « Mes instances » et ouvrez l'instance « watsonx.data ».

  2. Sur la page de l'instance, cliquez sur Ouvrir.

  3. Dans la console, sélectionnez Contrôle d'accès dans la fenêtre de navigation.

  4. Dans l'onglet Politiques, sélectionnez Ajouter une politique pour commencer à créer vos règles d'accès.

Création d'une stratégie au niveau de la collection

Utilisez ce type de stratégie pour limiter la visibilité à une seule collection au sein d'une base de données.

  1. Dans l'onglet Politiques, cliquez sur Ajouter une politique > Détails.

  2. Dans Nom de la stratégie, entrez un nom, puis cliquez sur Suivant.

  3. Sur la page Objets de données :

    • Choisissez votre service d' Milvus s dans le menu déroulant « Choisissez une ressource pour commencer ».

    • Sélectionnez la base de données qui contient la collection d'intérêts.

    • Sélectionnez la collection.

    • Cliquez sur Suivant.

  4. Cliquez sur Ajouter des règles > Sélectionner tout pour les options Objets gérés et Données gérées.

  5. Cliquez sur Ajouter > Sélectionnez un utilisateur.

  6. Cliquez sur Révision > Créer.

  7. Dans les options (⋮), sélectionnez Activer pour activer la politique.

  8. Validez l'accès en suivant les étapes suivantes.

Validation de l'accès au niveau de la collection dans l' Python

Suivez les étapes suivantes pour vérifier si votre utilisateur Milvus a accès à des collections spécifiques. Commencez par créer une session MilvusClient avec le nom d'utilisateur et le mot de passe que vous souhaitez tester.


from pymilvus import MilvusClient
client = MilvusClient(
    uri="<your milvus service URI>", # your Milvus service URI, for example, http://localhost:19530
    user="<your username>",
    password="<your password>",
    server_pem_path="./milvus_onprem_tls.crt" # path to your SSL certificate
)

Étape 1 : Vérifiez que les opérations restreintes échouent.

Les utilisateurs disposant d'autorisations au niveau de la collection ne doivent pas pouvoir répertorier toutes les bases de données ou collections. Ces commandes renvoient des erreurs d'autorisation comme prévu :

client.list_databases() client.list_collections()

Étape 2 : Valider l'accès à la collection autorisée

Un utilisateur disposant de la politique appropriée peut toujours récupérer des informations sur une collection autorisée. Cette commande fonctionne lorsque l'utilisateur est autorisé :

client.describe_collection("<allowed_collection_name>")

Exemple de sortie

Lorsque vous exécutez describe_collection() sur une collection à laquelle l'utilisateur est autorisé à accéder, Milvus renvoie les métadonnées de la collection, comme suit :


{
  "collection_name": "assistant_builder_docs_en_slate_30m_v2",
  "auto_id": true,
  "num_shards": 1,
  "description": "",
  "fields": [
    {
      "field_id": 100,
      "name": "text",
      "description": "",
      "type": "<DataType.VARCHAR: 21>",
      "params": { "max_length": 65535 }
    }
  ]
}

Créer une stratégie au niveau de la base de données

Suivez ces étapes pour accorder aux utilisateurs l'autorisation d'exécuter list_databases().

  1. Dans Politiques, accédez à Détails.

  2. Dans Nom de la stratégie, indiquez un nom pour votre stratégie, puis cliquez sur Suivant.

  3. Dans Objets de données, choisissez votre service d' Milvus s et ne sélectionnez aucune base de données.

  4. Cliquez sur Ajouter des règles et sélectionnez le ListDatabases.

  5. Cliquez sur Ajouter > Sélectionnez un utilisateur.

  6. Cliquez sur Réviser > Créer > Activer pour activer votre politique.

  7. Validez l'autorisation ListDatabases à l'aide de :

client.list_databases()

Créer une stratégie au niveau de la collection

Suivez ces étapes pour permettre aux utilisateurs d'exécuter list_collections().

  1. Dans Politiques, ouvrez Détails.

  2. Dans le champ Nom de la stratégie, donnez un nom à votre stratégie, puis cliquez sur Suivant.

  3. Dans les objets Données, choisissez votre service d' Milvus s > sélectionnez une base de données (par exemple, par défaut) et ne sélectionnez aucune collection.

  4. Cliquez sur Ajouter des règles > sélectionnez ShowCollections > cliquez sur Ajouter > sélectionnez un utilisateur.

  5. Cliquez sur Réviser > Créer > Activer pour activer votre politique.

  6. Validez l'autorisation ShowCollections à l'aide de :

client.using_database("<database_selected_for_policy>")
client.list_collections()

Etape suivante

Vous pouvez désormais utiliser les identifiants d'utilisateur autorisé pour intégrer Milvus avec :

Ces outils vous permettent de créer facilement des agents qui accèdent en toute sécurité à Milvus et respectent les règles d'autorisation que vous avez configurées.