Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer un bac à sable
Sandbox est une fonctionnalité de prévisualisation qui fournit à AWS DevOps l'Agent un environnement Linux sécurisé et isolé dans lequel il peut écrire et exécuter du code pendant les investigations. Certains problèmes sont plus rapides et plus fiables à résoudre par le code que par le seul raisonnement. Avec Sandbox, l'agent complète son raisonnement par le calcul, par exemple pour analyser un fichier journal volumineux, calculer des statistiques sur un ensemble de mesures ou analyser et corréler des données provenant de plusieurs sources au cours d'une enquête.
Chaque sandbox est éphémère et se limite à une seule enquête, de sorte que le code exécuté par l'agent reste isolé de vos autres ressources. Vous contrôlez l'accès réseau sortant de l'environnement et les packages préinstallés. Par défaut, le sandbox restreint l'accès réseau sortant : jusqu'à ce que vous ajoutiez une entrée à la liste d'autorisation réseau, celle-ci ne peut atteindre que les points de terminaison du service. AWS
Note
Sandbox est disponible en version préliminaire et est susceptible d'être modifiée.
Pendant la version préliminaire, Sandbox n'est disponible que dans les AWS régions suivantes :
USA Est (Virginie du Nord)
us-east-1Ouest des États-Unis (Oregon)
us-west-2Asie-Pacifique (Tokyo)
ap-northeast-1Europe (Irlande)
eu-west-1
Pour plus d'informations, consultez Disponibilité des fonctionnalités par région.
Comment fonctionne Sandbox
Lorsque Sandbox est configuré pour un espace d'agent, l' AWS DevOps agent provisionne automatiquement un nouvel environnement Linux pendant qu'il travaille sur une enquête. Dans cet environnement, l'agent peut exécuter des commandes shell et lire et écrire des fichiers, puis relire les résultats dans son analyse. L'environnement ne dure que pendant la durée de cette enquête, et il n'y a pas deux enquêtes qui se partagent une seule.
L'environnement comprend des AWS profils préconfigurés pour les AWS comptes connectés à votre espace d'agent. L'agent peut utiliser ces profils pour effectuer des appels AWS CLI et boto3 (AWS SDK pour Python) vers ces comptes, avec les mêmes autorisations que celles dont dispose déjà l'agent. Cela permet à l'agent d'interroger et de corréler les AWS ressources par programmation avec le code lors d'une investigation.
L'agent peut également envoyer des requêtes HTTP depuis le bac à sable, à l'aide d'outils de ligne de commande ou de Python et de Node.js bibliothèques, vers n'importe quel hôte et chemin autorisés par votre politique réseau.
Deux paramètres contrôlent ce que l'environnement peut faire :
Politique réseau : liste d'autorisation explicite des hôtes, des méthodes HTTP et des chemins que l'environnement peut atteindre. Une liste d'autorisation vide refuse toutes les demandes sortantes, à l'exception des points de terminaison du AWS service.
Packages :
npmpackagespipet préinstallés dans l'environnement. Le code de l'agent peut les importer sans les récupérer au moment de l'exécution.
Note
Lors de la prévisualisation, l'agent utilise Sandbox uniquement pendant les investigations. La prise en charge du chat, des agents personnalisés et d'autres fonctionnalités des DevOps agents sera bientôt disponible.
Isolation de l'environnement Sandbox
AWS DevOps L'agent exécute chaque sandbox dans une microVM Lambda isolée. Chaque microVM est limitée à une seule enquête et est supprimée à la fin de l'enquête. Lorsque l'agent effectue des appels AWS CLI ou SDK depuis le sandbox, il achemine ces appels via un proxy. Ce proxy limite les appels aux opérations en lecture seule, de sorte que le code sandbox ne peut pas modifier ou supprimer vos ressources. AWS
Des compétences dans le bac à sable
Lorsque Sandbox est activé, l'agent vous lit DevOps Compétences des agents depuis le système de fichiers du sandbox plutôt que depuis un système de fichiers virtuel. Cela change la façon dont l'agent utilise les compétences de deux manières :
Recherche et lecture à l'aide d'outils de ligne de commande — L'agent peut utiliser des outils de ligne de commande standard pour effectuer des recherches dans vos compétences et lire leurs fichiers, au lieu de les charger via un système de fichiers virtuel. Cela l'aide à trouver et à appliquer la compétence appropriée pour la tâche.
Exécuter du code groupé — L'agent peut exécuter et adapter du code groupé grâce à une compétence. Sans Sandbox, une compétence ne peut inclure que des fichiers non exécutables tels que des instructions Markdown, des références et des fichiers de données. Avec Sandbox, une compétence peut inclure du code exécutable que l'agent peut exécuter dans l'environnement.
Avant de commencer
Sandbox n'étant pas configuré par défaut, l'agent ne peut pas exécuter de code tant que vous ne l'avez pas activé. L'image suivante montre la section Sandbox avant de la configurer.
Avant de configurer Sandbox, déterminez les points suivants :
Les hôtes, les méthodes HTTP et les chemins que le code de l'agent doit atteindre, le cas échéant. Jusqu'à ce que vous ajoutiez une entrée dans la liste d'autorisations, le sandbox ne peut atteindre que les points de terminaison du AWS service.
Les
npmpackagespipet que vous souhaitez préinstaller dans l'environnement.
Configurer Sandbox pour un espace d'agent
Connectez-vous à la console de AWS gestion et ouvrez la console de l' AWS DevOps agent.
Sélectionnez votre espace agent et choisissez l'onglet Capacités.
Dans la section Sandbox, choisissez Configurer.
Configurez une politique réseau et des packages préinstallés comme décrit dans les sections suivantes.
Enregistrez votre configuration.
Une fois que vous avez configuré Sandbox, la section Sandbox affiche vos npm packages pip et packages préinstallés ainsi que le nombre d'entrées de la liste d'autorisation. Pour supprimer la configuration ultérieurement, voir Supprimer le bac à sable.
Configuration de la politique réseau
Le sandbox limite les demandes sortantes à une liste d'autorisation explicite. Une liste d'autorisation vide refuse toutes les demandes sortantes, à l'exception des points de terminaison du AWS service. Pour permettre à l'environnement d'atteindre n'importe quel autre hôte, ajoutez-lui une entrée dans la liste d'autorisation.
Choisissez Ajouter une entrée, puis configurez les paramètres suivants pour l'entrée dans la liste d'autorisations :
Modèle d'hôte : hôte auquel l'entrée s'applique. La correspondance partielle des étiquettes n'est pas prise en charge. Utilisez l'un des formulaires suivants :
**— Tous les hôtes.*.example.com— Un niveau de sous-domaine.**.example.com— N'importe quelle profondeur de sous-domaine.example.com— Un hôte exact.
Méthodes HTTP : méthodes HTTP autorisées pour cet hôte. Choisissez une ou plusieurs méthodes, telles que
GETetOPTIONS, dans la liste déroulante.Modèles de chemin : chemins autorisés pour cet hôte. Choisissez Ajouter un chemin pour ajouter un ou plusieurs motifs :
*correspond à un segment, par exemple/repos/*/pulls.Une correspondance partielle est autorisée, par exemple
/users/aws-*/./**autorise tous les sous-chemins.Les paramètres de requête sont ignorés.
L'image suivante montre une entrée complète dans la liste d'autorisations.
Choisissez Ajouter une entrée pour chaque hôte supplémentaire que le code de l'agent doit atteindre. Pour supprimer une entrée, choisissez Supprimer.
Configuration des packages préinstallés
Dans la section Packages, spécifiez les npm packages pip et à préinstaller dans l'environnement sandbox. Le code de l'agent peut ensuite importer ces packages directement, et l'environnement n'a pas besoin d'un accès sortant à un registre de packages pour les utiliser. L'image suivante montre la section Packages avec des exemples de packages configurés.
pip packages — Choisissez Ajouter un package et entrez un nom de package, tel que
requestsoupandas, pour chaque package Python à préinstaller.packages npm — Choisissez Ajouter un package et entrez un nom de package, par exemple
axios, pour chaque Node.js package à préinstaller.
Pour supprimer un package, choisissez Supprimer à côté de celui-ci.
Supprimer le bac à sable
Pour vous désinscrire, supprimez la configuration Sandbox : sélectionnez votre espace agent, accédez à l'onglet Fonctionnalités, puis dans la section Sandbox, choisissez Supprimer. Une fois la configuration supprimée, l'agent ne provisionne plus d'environnements sandbox pour les nouvelles enquêtes.
Limites de configuration du bac à sable
Les limites suivantes s'appliquent à chaque configuration Sandbox lors de la prévisualisation.
| Limite | Value |
|---|---|
| paquets pip | 50 |
| paquets npm | 50 |
| Entrées de la liste d'autorisation réseau | 100 |
| Modèles de chemin par entrée de liste d'autorisations | 50 |
| Méthodes HTTP par entrée de liste d'autorisations | Au moins 1 |
Considérations sur la sécurité
AWS DevOps L'agent isole chaque enquête dans son propre environnement sandbox, de sorte que le code et les données d'une enquête ne sont jamais partagés avec une autre. AWS DevOps L'agent inspecte et filtre tout le trafic sortant du bac à sable afin que seules les demandes autorisées et sécurisées atteignent leur destination. Il autorise les demandes destinées aux terminaux de AWS service et aux hôtes qui correspondent à votre liste d'autorisation réseau, et refuse toutes les autres demandes.
L'agent génère et exécute du code dans le sandbox. Gardez les points suivants à l'esprit lorsque vous le configurez :
Limitez la liste d'autorisations au minimum. Lorsque la liste d'autorisation est vide, le sandbox n'atteint que les points de terminaison du AWS service. Ajoutez des entrées dans la liste d'autorisation uniquement pour les hôtes, les méthodes et les chemins spécifiques dont l'agent a besoin.
Étendez les entrées de la liste d'autorisation de manière étroite. Utilisez des modèles d'hôte exacts et des modèles de chemin spécifiques plutôt que des caractères génériques généraux tels que
**et/**, et accordez uniquement les méthodes HTTP requises.Pre-install packages au lieu de registres de liste d'autorisations. Lorsque vous préinstallez les packages dont l'agent a besoin, vous évitez d'accorder un accès sortant à un registre de packages lors de l'exécution.
Pour plus d'informations sur le modèle de sécurité de l' AWS DevOps agent, consultezAWS DevOps Sécurité des agents.