Présentation des bacs à sable

De nombreuses tâches d'agent impliquent l'exécution de code non fiable, l'exécution de commandes, l'utilisation d'un navigateur Web ou l'interaction avec des environnements externes de manière à présenter des risques de sécurité. Gemini Enterprise Agent Platform fournit des bacs à sable isolés pour gérer ces charges de travail de manière sécurisée.

Les bacs à sable fournissent des environnements d'exécution sécurisés et isolés qui sont générés pour effectuer des tâches spécifiques au nom d'un agent. En exécutant ces opérations dans un bac à sable, vous pouvez protéger votre infrastructure et vos données contre les actions potentiellement malveillantes ou erronées effectuées par l'agent. Les bacs à sable atténuent ces risques en :

  • Isolation : chaque bac à sable est isolé des autres bacs à sable et du système hôte. Les actions effectuées par un agent dans un bac à sable n'affectent pas les autres agents ni les utilisateurs qui partagent les mêmes ressources d'exécution.
  • Sécurité : les opérations dans le bac à sable sont limitées, ce qui empêche tout accès non autorisé à vos ressources. Tous les environnements de bac à sable utilisent un bac à sable de conteneur sécurisé, ce qui offre une limite de sécurité solide. Le code malveillant ne peut pas accéder aux données ni aux identifiants sensibles dans l'environnement d'exécution.
  • Sécurité : si un agent exécute une commande nuisible ou une boucle infinie, l'impact est limité au bac à sable. Par exemple, un code mal écrit ou malveillant peut consommer tout le processeur ou la mémoire disponibles.

Bac à sable par rapport à l'environnement d'exécution

Le runtime de l'agent et le bac à sable diffèrent par leur objectif et leur utilisation :

  • Environnement d'exécution de l'agent : environnement dans lequel s'exécutent la logique de base, la prise de décision et l'orchestration de l'agent. Il s'agit d'un environnement de confiance qui exécute votre code et gère le cycle de vie de l'agent.
  • Bac à sable : il s'agit d'un environnement auxiliaire généré par l'agent ou la plate-forme pour exécuter des tâches spécifiques potentiellement dangereuses. Les bacs à sable peuvent être éphémères, basés sur une session ou avec état pendant plusieurs jours.

Par exemple, si un agent doit calculer une formule complexe en générant et en exécutant un script Python personnalisé, il doit exécuter ce script dans un bac à sable d'exécution de code, et non dans son propre environnement d'exécution. De plus, si l'agent utilise une compétence et un script shell, il doit les exécuter dans un environnement provisionné spécifiquement pour cette session, en utilisant l'accès de l'utilisateur final.

Vitesse de provisionnement du TTL et de la sandbox

  • TTL : les valeurs TTL du bac à sable varient. Elles vont de sept jours pour une image de conteneur personnalisée à 14 jours pour un bac à sable d'exécution de code. Cela vous permet de reprendre l'état dans un environnement de bac à sable plusieurs jours plus tard pour les tâches à long terme et les environnements shell pouvant être repris.
  • Provisionnement : la création d'un bac à sable prend jusqu'à deux minutes pour provisionner les ressources à partir d'un démarrage à froid. Toutefois, une fois les ressources provisionnées, les bacs à sable sont généralement lancés en quelques secondes. Vous pouvez consulter l'architecture sous-jacente dans les projets Open Source suivants : AX et Substrate.

Fonctionnalités

Les bacs à sable offrent plusieurs fonctionnalités, telles que des bacs à sable prédéfinis, des conteneurs personnalisés, des contrôles de sécurité pour les entreprises et la gestion du cycle de vie :

  • Exécution de code : permet à l'agent de générer et d'exécuter du code dans un environnement sécurisé. Cela est utile pour les calculs mathématiques complexes, l'analyse de données et d'autres tâches nécessitant des calculs.
  • Utilisation de l'ordinateur : permet à l'agent d'interagir avec un navigateur Web pour effectuer des tâches telles que remplir des formulaires, effectuer des recherches sur le Web ou parcourir des workflows d'UI complexes.
  • Conteneurs personnalisés : vous pouvez "apporter votre propre conteneur" pour personnaliser l'environnement d'exécution avec des bibliothèques, des outils ou des configurations spécifiques. Utilisez-le pour fournir à votre agent un environnement de shell contenant les commandes et les outils de votre image personnalisée.
  • VPC Service Controls : configurez des périmètres de sécurité pour protéger les données sensibles et empêcher toute sortie non autorisée des environnements de bac à sable.
  • Clés de chiffrement gérées par le client (CMEK) : protégez les données au repos du bac à sable à l'aide de clés de chiffrement gérées dans Cloud Key Management Service (Cloud KMS).