Cinq couches pour le sandboxing des agents IA sur Kubernetes
Des ingénieurs d'Oracle présentent une architecture à cinq couches pour isoler les agents IA autonomes sur Kubernetes, équilibrant sécurité et performance grâce à des runtimes comme gVisor et Kata Containers.
Traduit automatiquement depuis l'original anglais.
Les agents IA autonomes qui génèrent et exécutent du code introduisent de nouveaux risques de sécurité pour l'infrastructure Kubernetes partagée. Pour y remédier, les ingénieurs d'Oracle Cloud Infrastructure ont défini une stratégie de sandboxing en cinq couches qui isole les charges de travail des agents sans sacrifier l'efficacité du cluster. Cette approche s'appuie sur des outils cloud-natifs existants pour créer des périmètres de sécurité autour de l'exécution de code non fiable.
Ce qui s'est passé
À mesure que les agents IA deviennent courants dans les flux de développement, ils opèrent avec une autonomie croissante pour installer des packages, exécuter des scripts et itérer sur le code. Si ce comportement est gérable sur un ordinateur portable local, il pose des risques importants dans les environnements d'entreprise où les agents partagent des clusters Kubernetes avec d'autres charges de travail critiques. L'isolation standard par conteneurs repose sur le noyau hôte, ce qui signifie qu'une vulnérabilité du noyau exploitée par un agent pourrait compromettre l'ensemble du nœud.
Mickey Boxell et Kay, responsables produits chez Oracle Cloud Infrastructure (OCI), ont détaillé une approche structurée pour atténuer ces risques lors d'une analyse technique approfondie. Ils soutiennent que l'isolation des charges de travail est passée d'une exigence de durcissement spécifique à une nécessité fondamentale pour les plateformes exécutant des agents IA. La solution proposée ne nécessite pas de réinventer la roue, mais plutôt d'assembler des composants open source existants en une pile cohérente.
Le cadre se compose de cinq couches distinctes : le runtime d'isolation, la configuration des nœuds, la politique d'accès, le mécanisme de requêtes Kubernetes et la couche de gestion de session. En traitant chaque couche, les équipes de plateforme peuvent limiter le rayon d'action de l'exécution de code autonome tout en maintenant les performances et la flexibilité attendues par les développeurs.
Comment cela fonctionne
Le cœur de cette stratégie réside dans le choix de la bonne frontière d'isolation. Les conteneurs runc standards partagent le noyau hôte, offrant des performances élevées mais une sécurité moindre. Pour une isolation plus forte, les équipes peuvent utiliser gVisor, qui implémente un noyau d'application en espace utilisateur pour gérer les appels système, réduisant ainsi la surface d'attaque exposée à l'hôte. Pour le niveau de sécurité le plus élevé, Kata Containers exécute chaque pod dans une machine virtuelle légère dotée de son propre noyau invité, séparée de l'hôte par virtualisation matérielle. Cela empêche les exploits au niveau du noyau de s'échapper du conteneur, bien que cela entraîne une surcharge de ressources plus élevée.
Une fois le runtime sélectionné, le nœud doit être configuré pour le prendre en charge. Cela implique l'installation de shims spécifiques et la garantie du support de la virtualisation matérielle pour les runtimes basés sur des VMs. La couche d'accès restreint ensuite ce que l'agent peut faire à l'intérieur du sandbox. Cela inclut l'application de politiques réseau par défaut « deny-all » (tout refuser), l'émission de credentials à durée de vie courte et le montage des volumes de données en lecture seule sauf si l'accès en écriture est explicitement requis. Ces politiques garantissent que, même si un agent est compromis, sa capacité à exfiltrer des données ou à endommager des systèmes externes est minimisée.
Les objets Kubernetes RuntimeClass permettent aux pods d'opter dynamiquement pour ces runtimes isolés. Cela signifie que les charges de travail non-agents peuvent continuer à utiliser le runtime haute performance par défaut, tandis que les tâches des agents sélectionnent automatiquement l'environnement plus sécurisé, quoique plus lourd. Enfin, le projet Agent Sandbox normalise la gestion des sessions, permettant des environnements stateful qui peuvent être mis en pause et repris, équilibrant l'utilisation des ressources et la réactivité.
Détails clés
- Options d'isolation :
runcpartage le noyau hôte ;gVisorutilise un noyau en espace utilisateur ;Kata Containersutilise des VMs légères avec des noyaux invités séparés. - Exigences des nœuds :
Kata Containersnécessite des nœuds prenant en charge la virtualisation matérielle (KVM) et des capacités de virtualisation imbriquée s'il tourne sur des VMs. - Contrôle d'accès : Les politiques réseau doivent refuser par défaut le trafic sortant (egress), n'autorisant que des destinations spécifiques comme les miroirs de packages ou les endpoints de modèles.
- Gestion des credentials : Utiliser des jetons à durée de vie courte limités à des tâches spécifiques plutôt que des secrets à longue durée de vie montés dans le pod.
- Surcharge de ressources : Les runtimes sandboxés ajoutent une surcharge CPU et mémoire ; les définitions
RuntimeClassdoivent inclure des valeurs de surcharge mesurées pour une planification précise. - Gestion des sessions : L'API Agent Sandbox prend en charge les pools chauds (warm pools) et le stockage persistant pour gérer la nature irrégulière des interactions avec les agents.
Pourquoi c'est important
Pour les ingénieurs logiciels et les responsables de plateforme, la prolifération des agents IA signifie que les modèles traditionnels de sécurité des conteneurs ne sont plus suffisants. Un agent capable d'exécuter arbitrairement du code représente un vecteur de menace dynamique que les scans statiques ne peuvent pas entièrement adresser. La mise en œuvre de ces cinq couches fournit une stratégie de défense en profondeur qui protège l'infrastructure sous-jacente contre le comportement imprévisible des agents.
L'arbitrage entre sécurité et performance est central dans cette discussion. Bien que Kata Containers offre l'isolation la plus forte, le coût du démarrage d'un noyau invité et de la gestion de ressources supplémentaires peut être prohibitif pour les tâches à haut débit et faible latence. gVisor offre un juste milieu, mais son émulation des appels système Linux peut ne pas prendre en charge tous les comportements des agents, tels que les builds imbriqués complexes ou certaines opérations de compilateur. Comprendre ces arbitrages permet aux équipes de prendre des décisions éclairées en fonction de leur tolérance au risque spécifique et de leurs exigences de charge de travail.
De plus, cette approche s'appuie sur les API Kubernetes standard, assurant la portabilité entre différents fournisseurs de cloud et configurations sur site. En s'appuyant sur des projets communautaires comme gVisor, Kata Containers et Agent Sandbox, les organisations évitent l'enfermement fournisseur (vendor lock-in) et bénéficient de mises à jour de sécurité continues et de revues de conception provenant d'un large écosystème de contributeurs.
Ce que vous pouvez faire
- Évaluez vos charges de travail actuelles liées aux agents pour déterminer le niveau d'isolation approprié, choisissant entre
gVisorpour un équilibre sécurité/performance etKata Containerspour une isolation maximale. - Configurez vos nœuds Kubernetes avec les runtimes nécessaires et assurez-vous que la virtualisation matérielle est activée si vous utilisez des sandboxes basés sur des VMs.
- Définissez des objets
RuntimeClasspour chaque runtime sandboxé, incluant des mesures précises de la surcharge de ressources pour éviter les échecs de planification. - Mettez en œuvre des politiques réseau strictes qui refusent par défaut tout le trafic sortant, n'autorisant explicitement que les endpoints requis pour les tâches des agents.
- Refactorisez la gestion des credentials pour émettre des jetons à durée de vie courte et limités pour les sessions d'agents, au lieu d'utiliser des secrets statiques.
- Explorez le projet Agent Sandbox pour gérer les sessions d'agents stateful et optimiser l'utilisation des ressources grâce aux pools chauds.



