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-code
Pour vérifier l’installation
qwen --version
Aperçu du sandboxing
Le sandboxing isole les opérations potentiellement dangereuses (telles que 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écurité : 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 différer en fonction de votre plateforme et de votre solution de conteneurisation préférée.
1. macOS Seatbelt (macOS uniquement)
Sandboxing léger 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 les conteneurs (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
{
"sandbox": "docker"
}
Configuration
Activer le sandboxing (par ordre de priorité)
- Flag de commande :
-s
ou--sandbox
- Variable d’environnement :
GEMINI_SANDBOX=true|docker|podman|sandbox-exec
- Fichier de configuration :
"sandbox": true
danssettings.json
Profils Seatbelt macOS
Profils intégrés (définis via la variable d’environnement SEATBELT_PROFILE
) :
permissive-open
(par défaut) : Restrictions d’écriture, réseau autorisépermissive-closed
: Restrictions d’écriture, pas de réseaupermissive-proxied
: Restrictions d’écriture, 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
. Cela est utile pour les configurations avancées, comme désactiver des fonctionnalités de sécurité pour des cas d’usage spécifiques.
Exemple (Podman) :
Pour désactiver le labeling 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. Remplacez 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/GID
Dé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 minime 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.