Sandbox : définition
En informatique, un sandbox est un environnement étroitement contrôlé dans lequel une application s'exécute. Les environnements en sandbox imposent des restrictions permanentes aux ressources. On les utilise souvent pour isoler et exécuter des programmes non testés ou non fiables sans risquer d'endommager la machine hôte ou le système d'exploitation. Les conteneurs en sandbox ajoutent une nouvelle option d'exécution aux plateformes de conteneurs, qui isole le programme du reste du système grâce à des machines virtuelles légères qui lancent ensuite les conteneurs dans ces pods.
Les conteneurs en sandbox sont généralement utilisés en complément des fonctions de sécurité des conteneurs Linux.
L'importance des conteneurs en sandbox
Les conteneurs en sandbox sont particulièrement adaptés aux charges de travail qui nécessitent des mesures strictes d'isolation et de sécurité au niveau des applications, comme les charges de travail privilégiées qui exécutent du code non fiable ou non testé et des applications natives pour Kubernetes. Un conteneur en sandbox protège davantage les applications de l'exécution à distance, des fuites de mémoire et de l'accès sans privilège en isolant :
- les environnements des développeurs et la portée des privilèges ;
- les charges de travail conteneurisées existantes ;
- les charges de travail tierces ;
- le partage des ressources (tâches CI/CD, fonctions CNF, etc.) et la sécurité de l'architecture multi-client.
Fonctionnement de Red Hat OpenShift avec les conteneurs en sandbox
Les conteneurs en sandbox de Red Hat OpenShift , basés sur le projet Open Source Kata Containers , ajoutent une couche d'isolation aux applications soumises à des exigences de sécurité élevées, grâce à une exécution de conteneurs conforme à l'initiative OCI (Open Container Initiative). Ils utilisent pour cela des machines virtuelles légères qui exécutent les charges de travail dans leur propre noyau isolé. Ce sont les outils de notre projet certifié Operator Framework qui permettent de gérer, déployer et mettre à jour l'opérateur des conteneurs en sandbox de Red Hat OpenShift.
L'opérateur des conteneurs en sandbox de Red Hat OpenShift fournit et met à jour tous les éléments nécessaires pour utiliser des Kata Containers comme option d'exécution dans le cluster. Il se charge notamment des étapes suivantes :
- installation du logiciel QEMU et des RPM des Kata Containers en tant qu' extensions de Red Hat CoreOS dans le nœud ;
- configuration de l'exécution des Kata Containers au niveau de l'exécution grâce aux gestionnaires CRI-O , et au niveau du cluster via l'ajout et la configuration d'une ressource RuntimeClass exclusive aux Kata Containers ;
- configuration déclarative afin de personnaliser l'installation, comme la sélection de nœuds sur lesquels déployer des Kata Containers ;
- vérification de l'intégrité du déploiement dans son ensemble et signalement des problèmes survenus au cours de l'installation.
Les conteneurs en sandbox de Red Hat OpenShift sont maintenant disponibles.