ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Configurer les environnements sandbox et la gestion des secrets dans Devin pour des builds et des tests d'intégration sécurisés

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Pour exécuter des builds automatisés et des tests d'intégration en toute sécurité avec Devin, les équipes d'ingénierie s'appuient sur un modèle de sécurité à trois niveaux : des Blueprints déclaratifs qui créent des environnements de machines isolés et reproductibles à partir d'instantanés (snapshots) ; une gestion hiérarchisée des secrets (Secret Management) qui injecte les identifiants exclusivement à l'exécution sous forme de variables d'environnement, sans jamais les figer dans les images ou le code ; et des mécanismes rigoureux de sandbox, englobant les instances éphémères dans Devin Cloud, l'isolation au niveau de l'OS par bubblewrap dans le CLI et les nœuds locaux avec Devin Outposts pour les infrastructures privées.

Contrairement aux extensions traditionnelles de complétion de code, Devin fonctionne comme un ingénieur logiciel autonome. Il clone des dépôts Git, installe des paquets système, démarre des services en arrière-plan, lance des suites de tests et pilote des navigateurs web pour valider les fonctionnalités de bout en bout. Accorder un accès au terminal et au réseau à un agent autonome sans un cloisonnement strict expose l'entreprise à des fuites de données sensibles, à des appels non contrôlés sur les réseaux internes ou à la corruption de la machine hôte.


1. Architecture des environnements dans Devin : Modèles de calcul et isolation

Devin s'adapte aux contraintes de conformité, aux topologies réseau et aux politiques de sécurité grâce à trois modes d'exécution :

Sandboxes dans Devin Cloud

En mode cloud par défaut, chaque session de Devin s'exécute dans une machine virtuelle éphémère et isolée, supervisée par Cognition.

Isolation au niveau de l'OS avec Devin CLI

Lors de l'utilisation du CLI de Devin sur des postes locaux ou sur des runners de CI d'entreprise, l'option --sandbox active un cloisonnement strict au niveau du système d'exploitation :

Devin Outposts (Infrastructure auto-hébergée)

Pour les organisations soumises à de strictes obligations de souveraineté des données ou dont les tests d'intégration doivent accéder à des bases de données internes et à des microservices non exposés sur Internet, Devin Outposts dissocie le plan de contrôle du plan de données :


2. Gestion hiérarchique des secrets et injection sans persistance

L'une des vulnérabilités les plus fréquentes dans les pipelines automatisés réside dans la présence de clés d'accès dans les commits Git, les couches d'images de conteneurs ou les logs publics. Devin résout cette problématique grâce à une gestion centralisée et chiffrée des secrets.

Portées de visibilité (Scopes)

Principes d'injection sans figeage ("Zero-Baking")


3. Guide de configuration étape par étape

Méthode standard pour mettre en place une chaîne de compilation et de tests d'intégration sécurisée :

Étape 1 : Structurer le Blueprint déclaratif

Dans l'éditeur de Blueprints, séparez nettement l'installation des outils système de la gestion des dépendances :

# 1. initialize : Exécuté uniquement lors des builds complets pour installer les runtimes
initialize: |
  curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
  apt-get update && apt-get install -y nodejs postgresql-client

# 2. maintenance : Installation rapide et autonome des dépendances du projet
maintenance:
  - name: "Installer les dépendances du projet"
    run: npm ci

# 3. knowledge : Consignes d'exécution destinées à Devin
knowledge: |
  Commande pour les tests unitaires : npm test
  Commande pour les tests d'intégration avec base locale : npm run test:e2e

Étape 2 : Associer des secrets dédiés aux tests

  1. Rendez-vous dans Settings > Environment > Blueprints et sélectionnez votre dépôt.
  2. Ouvrez l'onglet Secrets et cliquez sur Create secret.
  3. Renseignez uniquement des identifiants restreints à l'environnement de test :
    • E2E_DATABASE_URL : Chaîne de connexion vers un conteneur de test ou une base de staging isolée.
    • TEST_API_KEY : Clé d'API limitée à des données simulées (mock).
    • DEVIN_AUTH_COOKIE : Cookie de session temporaire pour les validations d'interface utilisateur.
  4. Précisez dans le champ Note l'usage et la politique de rotation (ex. : "Strictement réservé à la QA Staging ; rotation mensuelle").

Étape 3 : Délimiter les accès réseau et le bac à sable

Étape 4 : Lancer les tests d'intégration et examiner les livrables

Une fois les modifications de code terminées, donnez la consigne à Devin :

« Lance le build automatisé, exécute npm run test:e2e et valide le parcours de connexion et de paiement. »

Devin active automatiquement son mode de test (Testing Mode) :

  1. Contrôle l'environnement du blueprint et installe les dépendances requises.
  2. Lit les variables d'environnement de test injectées dynamiquement.
  3. Démarre les services locaux, lance la suite de tests et manipule le navigateur intégré si une validation d'interface est requise.
  4. Enregistre une vidéo commentée du test et la joint directement à la Pull Request, apportant la preuve irréfutable du bon fonctionnement sans afficher d'identifiants sensibles dans les journaux.

4. Bonnes pratiques de sécurité et pièges critiques à éviter

Domaine de sécuritéPratique recommandéeErreur critique
Stockage des identifiantsGestion centralisée via la console Devin ou l'onglet Secrets du Blueprint.Inscrire des secrets en clair dans les fichiers YAML du Blueprint, les scripts de setup ou des fichiers .env commités.
Périmètre des privilègesCréer des comptes de service dédiés à Devin (devin-test@company.com) avec droits limités aux tests.Réutiliser des clés d'API de production ou des jetons d'accès personnels (PAT) d'administrateurs.
Persistance des imagesUtiliser des variables d'environnement injectées dynamiquement à l'exécution ou via $ENVRC.Écrire des identifiants sur le disque pendant l'étape initialize, les gravant ainsi dans les instantanés persistants.
Périmètre réseauLimiter les connexions sortantes aux seuls points d'accès de test via Devin Outposts ou le filtrage de la sandbox.Autoriser un accès Internet sortant illimité dans des environnements connectés à des réseaux d'entreprise sensibles.
Intégrité du systèmeAppliquer --sandbox avec confinement des écritures au workspace et verrouillage strict en cas d'erreur.Exécuter des scripts de build avec les privilèges root sans sandbox ou autoriser des écritures arbitraires sur l'hôte.

Références