Aller au contenu

AWS Emulator testé : l'AWS local et gratuit ne vérifie pas l'IAM

AWS Emulator a démarré en 0,6 seconde sur le port 9297 lors d'un test Tech AI Wire. Un utilisateur sans droits IAM a pu créer et supprimer des ressources.

Par

4 min de lecture

XLinkedIn

Traduit automatiquement de l'original anglais, vérifié et édité par Claire Whitmore. La version anglaise fait foi. Notre méthode

Screenshot of the aws/aws-emulator GitHub repository page, showing the CC0-1.0 license, the v1.0.322 latest release and the repository's file list.

En chiffres

services AWS couverts, selon le blog de Werner Vogels
200+
modèles d'API AWS sur lesquels les agents ont travaillé, selon Amazon
438
par licence et par mois pour l'offre payante la moins chère de LocalStack, facturée à l'année
39 $

AWS a publié AWS Emulator le 11 novembre 2026, un programme gratuit qui copie des services AWS sur l'ordinateur du développeur. Selon AWS, des agents d'IA ont écrit tout son code. Les développeurs et leurs agents de code peuvent ainsi tester du code cloud sans facture AWS ni vrai compte AWS. Lors d'un test Tech AI Wire, il n'a pourtant pas appliqué les droits IAM. Ce sont les règles qui décident qui peut faire quoi dans un compte AWS. Il ne peut donc pas vous dire si ces règles fonctionnent.

Un émulateur est un substitut local qui répond aux mêmes requêtes que le vrai service. Un billet sur le blog de Werner Vogels, All Things Distributed, indique qu'il couvre plus de 200 services AWS à travers plus de 400 modèles d'API. Le code est sur GitHub sous CC0, une dédicace au domaine public, selon le récit d'Amazon lui-même.

Comment AWS l'a construit avec des agents

« L'émulateur a été entièrement écrit par des agents autonomes. Notre équipe n'a écrit ni relu aucune ligne de code », a déclaré à Help Net Security Matthew Goldberg, ingénieur principal senior chez AWS. Goldberg écrit que le projet a commencé comme un essai de week-end. Un agent y a construit en 15 minutes une première version d'Amazon SQS, la file de messages d'AWS.

Trois équipes d'agents font désormais le travail, rapporte Help Net Security. La première écrit des tests à partir des spécifications publiques des API d'AWS et les vérifie sur le vrai AWS. La deuxième exécute ces tests sur l'émulateur. La troisième corrige ce qui échoue. Chaque changement doit franchir une barrière de fusion qui vérifie le build, les normes de code, la sécurité et la fidélité, c'est-à-dire la proximité de l'émulateur avec AWS. Goldberg compte 438 modèles d'API, « des dizaines de milliers » de tests et des centaines d'agents qui corrigent des milliers de problèmes par jour.

Le billet du blog de Vogels soutient que le travail de l'ingénieur se déplace vers la construction de ces contrôles. « La qualité logicielle à l'ère de l'IA dépend des garde-fous que les ingénieurs conçoivent autour des agents », peut-on y lire.

Test Tech AI Wire : installation, vitesse et droits

Le test a tourné sous macOS 26 avec Docker 28.4.0, sur un Mac Apple Silicon. AWS ne publie aucune image prête à l'emploi. Son guide Docker fournit à la place un court Dockerfile, avec un paquet Arm pour Apple Silicon. Le build a pris 65 secondes et produit une image de 1,16 Go. À l'intérieur, aws-emulator -v a indiqué la version 1.0.322, avec la date de publication 2026.11.10.

Lancé avec --telemetry off, l'émulateur était prêt en 0,6 seconde. Son journal donnait comme point d'accès https://127.0.0.1:9297, avec un certificat auto-signé. Il a aussi écrit ses propres fichiers de configuration et d'identifiants AWS, si bien que l'AWS CLI a pu lui parler sans vraies clés. Le journal avertissait que le conteneur écoute sur toutes les interfaces réseau. C'est pourquoi le guide d'AWS publie le port sur 127.0.0.1 uniquement.

Les bases ont fonctionné avec l'AWS CLI 2.24.16. Dans S3, le stockage de fichiers d'AWS, la création d'un bucket, un envoi et un listage ont réussi. Une file SQS a accepté un message et l'a rendu. Dans DynamoDB, la base clé-valeur d'AWS, écrire tout de suite dans une nouvelle table a échoué avec ResourceNotFoundException, car la table était encore CREATING. Après aws dynamodb wait table-exists, l'écriture et la lecture ont fonctionné. L'ensemble a pris 7 secondes, et le conteneur a utilisé 174 Mio de mémoire.

Les droits étaient le point faible. Une politique de bucket qui interdisait tout a bien bloqué un téléchargement, avec une erreur 403. Mais le test a ensuite créé un utilisateur IAM sans aucune politique attachée. Avec les clés de cet utilisateur, les trois appels ont réussi :

$ aws sqs list-queues
https://sqs.us-east-1.amazonaws.com/000000000000/taw
$ aws s3 mb s3://nobody-bucket
make_bucket: nobody-bucket
$ aws dynamodb delete-table --table-name taw
DELETING

C'est la faille contre laquelle AWS met en garde. L'émulateur n'évalue pas les politiques IAM ni les politiques basées sur les ressources comme le fait AWS, rapporte Help Net Security. AWS déconseille donc de l'utiliser pour des tests de sécurité. Un redémarrage a aussi tout effacé, comme le dit la documentation : après docker restart, la liste des buckets était vide.

AWS Emulator face à l'offre gratuite de LocalStack

LocalStack est un autre outil qui exécute des services AWS en local. Son offre gratuite comporte des conditions qu'AWS Emulator n'a pas. Le tableau s'appuie sur la page de tarifs de LocalStack et sur les pages d'AWS.

AWS EmulatorLocalStack Hobby (gratuit)
PrixGratuit, sans frais de serviceGratuit
InscriptionInutile dans le testCompte obligatoire
Usage commercialAucune limite indiquée ; le code est en CC0Interdit : « pour les amateurs et les autres usages non commerciaux »
Offre payante la moins chèreAucune indiquéeBase, 39 $ par licence et par mois en paiement annuel, ou 45 $ au mois

Ce que cela signifie pour les développeurs

AWS Emulator est un endroit rapide et gratuit pour lancer des tests d'application et laisser des agents de code essayer des appels AWS. Ce n'est pas le bon endroit pour vérifier qui peut faire quoi.

  • Gardez les tests de droits sur le vrai AWS. Ici, un utilisateur sans droits a supprimé une table. Testez les rôles et politiques IAM dans un compte AWS de test.
  • Limitez-le à localhost. Dans Docker, utilisez -p 127.0.0.1:9297:9297, comme le dit le guide d'AWS. Sinon, n'importe qui sur votre réseau peut l'appeler.
  • Coupez la télémétrie si besoin. Ajoutez --telemetry off, ou définissez EMULATOR_TELEMETRY=off. Elle est active par défaut, et Help Net Security indique qu'elle n'envoie ni requêtes, ni réponses, ni données de ressources.
  • Recréez les données à chaque test. Tout vit en mémoire et disparaît au redémarrage.
  • Attendez les ressources, comme le ferait du vrai code. Les tests qui écrivent dans une table DynamoDB avant qu'elle soit prête échoueront ici.
  • Vérifiez la fidélité avant de compter sur un service. AWS publie sur GitHub des scores de fidélité par service à chaque version.

Les équipes qui paient LocalStack uniquement pour lancer des tests AWS au travail ont désormais une option gratuite à comparer. Le piège reste celui qu'AWS lui-même signale : des tests réussis ici ne disent rien de vos droits.

Sources

  1. How autonomous AI agents built AWS Emulator - About Amazon
  2. AWS Emulator and the engineer's job when agents write the code - All Things Distributed
  3. AWS Emulator: Open-source tool for testing AWS apps locally, built by autonomous AI agents - Help Net Security
  4. Getting started with AWS Emulator in Docker - AWS Documentation
  5. LocalStack pricing - LocalStack

Articles liés