Sandboxing dans Qwen Code
Ce document fournit un guide sur le sandboxing dans Qwen Code, incluant les prérequis, un démarrage rapide et la configuration.
Prérequis
Avant d’utiliser le sandboxing, vous devez installer et configurer Qwen Code :
npm install -g @qwen-code/qwen-codePour vérifier l’installation
qwen --versionAperçu du sandboxing
Le sandboxing isole les opérations potentiellement dangereuses (comme les commandes shell ou les modifications de fichiers) de votre système hôte, fournissant une barrière de sécurité entre les opérations IA et votre environnement.
Les avantages du sandboxing incluent :
- Sécurité : Prévenir les dommages accidentels au système ou la perte de données.
- Isolation : Limiter l’accès au système de fichiers au répertoire du projet.
- Cohérence : Garantir des environnements reproductibles sur différents systèmes.
- Sûreté : Réduire les risques lors de l’utilisation de code non fiable ou de commandes expérimentales.
Méthodes de sandboxing
Votre méthode idéale de sandboxing peut varier selon votre plateforme et votre solution de conteneur préférée.
1. macOS Seatbelt (macOS uniquement)
Sandboxing léger et intégré utilisant sandbox-exec.
Profil par défaut : permissive-open - restreint les écritures en dehors du répertoire du projet mais autorise la plupart des autres opérations.
2. Basé sur conteneur (Docker/Podman)
Sandboxing multiplateforme avec isolement complet des processus.
Note : Nécessite de construire l’image sandbox localement ou d’utiliser une image publiée depuis le registre de votre organisation.
Démarrage rapide
# Activer le sandboxing avec un flag de commande
qwen -s -p "analyze the code structure"
# Utiliser une variable d'environnement
export GEMINI_SANDBOX=true
qwen -p "run the test suite"
# Configurer dans settings.json
{
"tools": {
"sandbox": "docker"
}
}Configuration
Activer le sandboxing (par ordre de priorité)
- Flag de commande :
-sou--sandbox - Variable d’environnement :
GEMINI_SANDBOX=true|docker|podman|sandbox-exec - Fichier de configuration :
"sandbox": truedans l’objettoolsde votre fichiersettings.json(ex. :{"tools": {"sandbox": true}}).
Profils Seatbelt macOS
Profils intégrés (définis via la variable d’environnement SEATBELT_PROFILE) :
permissive-open(par défaut) : Restrictions en écriture, réseau autorisépermissive-closed: Restrictions en écriture, pas de réseaupermissive-proxied: Restrictions en écriture, accès réseau via proxyrestrictive-open: Restrictions strictes, réseau autorisérestrictive-closed: Restrictions maximales
Custom Sandbox Flags
Pour le sandboxing basé sur des containers, vous pouvez injecter des flags personnalisés dans la commande docker ou podman en utilisant la variable d’environnement SANDBOX_FLAGS. C’est utile pour les configurations avancées, comme désactiver certaines fonctionnalités de sécurité pour des cas d’usage spécifiques.
Exemple (Podman) :
Pour désactiver l’étiquetage SELinux sur les montages de volumes, vous pouvez définir :
export SANDBOX_FLAGS="--security-opt label=disable"Plusieurs flags peuvent être fournis sous forme de chaîne séparée par des espaces :
export SANDBOX_FLAGS="--flag1 --flag2=value"Gestion des UID/GID Linux
Le sandbox gère automatiquement les permissions utilisateur sur Linux. Vous pouvez outrepasser ces permissions avec :
export SANDBOX_SET_UID_GID=true # Forcer l'UID/GID de l'hôte
export SANDBOX_SET_UID_GID=false # Désactiver le mapping UID/GIDDépannage
Problèmes courants
“Operation not permitted”
- L’opération nécessite un accès en dehors du sandbox.
- Essayez un profil plus permissif ou ajoutez des points de montage.
Commandes manquantes
- Ajoutez-les dans un Dockerfile personnalisé.
- Installez via
sandbox.bashrc.
Problèmes réseau
- Vérifiez que le profil du sandbox autorise le réseau.
- Contrôlez la configuration du proxy.
Mode debug
DEBUG=1 qwen -s -p "debug command"Note : Si vous avez DEBUG=true dans le fichier .env d’un projet, cela n’affectera pas le CLI car il est automatiquement exclu. Utilisez les fichiers .qwen/.env pour les paramètres de debug spécifiques à Qwen Code.
Inspection du sandbox
# Vérifier l’environnement
qwen -s -p "run shell command: env | grep SANDBOX"
# Lister les montages
qwen -s -p "run shell command: mount | grep workspace"Notes de sécurité
- Le sandboxing réduit mais n’élimine pas tous les risques.
- Utilisez le profil le plus restrictif qui permet votre travail.
- La surcharge du conteneur est minimale après la première construction.
- Les applications GUI peuvent ne pas fonctionner dans les sandboxes.
Documentation associée
- Configuration : Options de configuration complètes.
- Commandes : Commandes disponibles.
- Dépannage : Dépannage général.