Cloud et infrastructure

Exécution sécurisée d'agents IA sur Kubernetes avec OpenShell

OpenShell, un nouveau projet CNCF Sandbox de NVIDIA, offre des contrôles d'exécution granulaires pour les agents IA sur Kubernetes grâce à Agent Sandbox et à l'application de politiques basée sur un superviseur.

Illustration d'un agent IA dans un cube de verre sécurisé par des boucliers
Illustration générée pour cet article

Traduit automatiquement depuis l'original anglais.

OpenShell de NVIDIA a rejoint le CNCF Sandbox en tant qu'environnement d'exécution dédié permettant d'exécuter des agents IA en toute sécurité au sein de clusters Kubernetes. Lancé fin 2026, cet outil répond aux risques de sécurité posés par les agents autonomes qui exécutent des commandes shell, accèdent à des fichiers et gèrent des connexions réseau tout en détenant des identifiants sensibles. En s'intégrant au projet Agent Sandbox du SIG Apps, OpenShell permet aux ingénieurs de plateforme d'appliquer des politiques strictes par requête sans sacrifier la visibilité sur les objets Kubernetes standards.

Ce qui s'est passé

Les agents IA sont de plus en plus capables d'accomplir des tâches complexes dépassant les simples appels API, comme installer des paquets, lire des fichiers locaux ou ouvrir des sockets réseau. Comme ces agents agissent souvent sur des données non fiables récupérées sur Internet, ils représentent un risque de sécurité majeur lorsqu'ils disposent de vrais identifiants. OpenShell a été conçu pour traiter chaque agent comme du code non fiable, l'exécutant dans un bac à sable isolé où un superviseur de confiance approuve explicitement chaque action.

Le projet utilise une configuration YAML pour déclarer quatre types spécifiques de contrôle : l'accès au système de fichiers via Landlock, les privilèges de processus utilisant seccomp et des utilisateurs non-root, les règles de trafic réseau par binaire et hôte, et la gestion des identifiants qui remplace les espaces réservés par de vraies clés uniquement sur les points de terminaison autorisés. Contrairement à la sécurité traditionnelle des conteneurs, OpenShell peut distinguer différentes actions effectuées par le même binaire, comme autoriser une requête GET vers GitHub tout en bloquant une requête POST, et il peut mettre à jour ces politiques sur les bacs à sable en cours d'exécution sans redémarrage.

Pour les administrateurs Kubernetes, OpenShell exploite les outils existants de l'écosystème plutôt que de les remplacer. Il n'inclut pas son propre ordonnanceur mais s'appuie sur Agent Sandbox pour traduire les définitions d'agents en ressources Kubernetes standard telles que les Pods, Services et NetworkPolicies. Cette approche garantit que les agents restent visibles par les outils opérationnels existants comme kubectl, les journaux d'audit et les moteurs de politique comme Kyverno, tout en ajoutant une couche de contrôle granulaire que les ressources Kubernetes natives ne peuvent pas fournir.

Comment cela fonctionne

L'architecture repose sur une passerelle qui gère le cycle de vie de chaque bac à sable et un pod superviseur qui médiate toutes les communications pour un agent spécifique. Lorsqu'un utilisateur crée un bac à sable via l'API de la passerelle OpenShell, le système génère une ressource Agent Sandbox suspendue. Le contrôleur crée ensuite un pod de charge de travail avec des portes d'ordonnancement strictes, garantissant qu'aucun accès réseau sortant n'existe tant que le superviseur n'est pas prêt. Le superviseur s'authentifie auprès de la passerelle en utilisant une identité liée à l'espace de noms et à l'UID du bac à sable, établissant un canal sécurisé vers la charge de travail.

Une fois le superviseur connecté, il applique les politiques déclarées avant même que la commande de l'agent ne démarre. Chaque requête sortante de l'agent est interceptée par le superviseur, qui vérifie la destination, le port, le binaire appelant et la méthode HTTP par rapport à la politique active. Si la requête est autorisée, le superviseur ouvre la connexion amont ; si elle est refusée, la requête est immédiatement bloquée. Ce modèle permet des mises à jour dynamiques des politiques, où les modifications sont chargées et confirmées par le bac à sable sans nécessiter un redémarrage complet ou une suspension du pod.

Détails clés

  • OpenShell utilise la ressource Sandbox agents.x-k8s.io du SIG Apps, mappant les agents sur des Pods et Services Kubernetes standard.
  • L'isolation du système de fichiers est gérée par Landlock, restreignant l'accès en écriture à des chemins spécifiques comme /sandbox et /tmp tout en gardant les répertoires système en lecture seule.
  • Les politiques réseau sont appliquées par un superviseur qui inspecte le trafic par binaire, permettant des règles granulaires telles que l'autorisation des lectures via curl mais le blocage des écritures.
  • Les identifiants ne sont jamais exposés directement à l'agent ; le superviseur remplace les valeurs d'espace réservé par de vraies clés API uniquement sur les points de terminaison permis.
  • La création nécessite actuellement d'appeler directement l'API Gateway, car il n'existe pas encore de CRD Kubernetes natif pour les bacs à sable OpenShell.
  • L'environnement de démonstration fonctionne sur Kubernetes 1.35 avec Cilium 1.20, Agent Sandbox v1.0.5 et Kyverno 1.18.2 pour le contrôle d'admission.

Pourquoi c'est important

Pour les équipes développant des plateformes pilotées par l'IA, le défi principal est d'équilibrer l'autonomie des agents avec la conformité en matière de sécurité. Les NetworkPolicies Kubernetes traditionnelles peuvent restreindre quels pods peuvent communiquer avec quels hôtes, mais elles ne peuvent pas inspecter le contenu du trafic ni l'intention de l'application effectuant la requête. OpenShell comble cette lacune en fournissant une application de politique consciente de l'application, garantissant qu'un agent ne puisse pas accidentellement ou malveillamment exfiltrer des données ou modifier des systèmes de production, même s'il compromet le runtime du conteneur.

De plus, OpenShell maintient la compatibilité avec les flux de travail opérationnels Kubernetes existants. Parce que les agents apparaissent comme des pods et services standard, les ingénieurs de plateforme n'ont pas besoin d'apprendre une nouvelle pile d'observabilité complète. Ils peuvent continuer à utiliser des outils familiers pour la journalisation, la surveillance et le contrôle d'accès basé sur les rôles, tout en comptant sur OpenShell pour gérer les exigences de sécurité nuancées des agents autonomes. Cela réduit la charge opérationnelle liée à l'adoption d'agents IA dans les environnements d'entreprise où l'auditableté et l'accès au moindre privilège sont obligatoires.

Ce que vous pouvez faire

  • Installez Cilium comme votre CNI pour garantir que les NetworkPolicies d'entrée et de sortie sont efficacement appliquées dans votre cluster.
  • Déployez le contrôleur Agent Sandbox et les CRDs avant d'installer le chart Helm de la passerelle OpenShell pour établir l'infrastructure requise.
  • Utilisez Kyverno ou des moteurs de politique similaires pour appliquer des contrôles d'admission sur les images de bac à sable, les limites de ressources et les règles RBAC.
  • Définissez des espaces de travail dans OpenShell pour regrouper les bacs à sable, les politiques et les journaux afin de faciliter la gestion et l'audit des activités des agents.
  • Testez les mises à jour de politiques sur les bacs à sable en cours d'exécution pour vérifier que les changements de règles dynamiques s'appliquent sans perturber l'exécution de l'agent.
  • Consultez la feuille de route d'OpenShell pour le futur support des CRDs natifs Kubernetes et les options de déploiement flexibles pour les environnements à grande échelle.
  • #kubernetes
  • #ai-agents
  • #security
  • #cncf
  • #openshell

Outils de la Boutique Bytechap

Continuer la lecture

Tous les articles