Pular para o conteúdo

AWS Emulator testado: o AWS local e gratuito não verifica o IAM

O AWS Emulator iniciou em 0,6 segundo na porta 9297 num teste da Tech AI Wire. Um usuário sem permissões de IAM ainda conseguiu criar e apagar recursos.

Por

4 min de leitura

XLinkedIn

Traduzido automaticamente do original em inglês, que Claire Whitmore verificou e editou. Prevalece a versão em inglês. Como trabalhamos

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.

Em números

serviços da AWS cobertos, segundo o blog de Werner Vogels
200+
modelos de API da AWS usados pelos agentes, segundo a Amazon
438
por licença ao mês no plano pago mais barato da LocalStack, com cobrança anual
39 $

A AWS lançou o AWS Emulator em 11 de novembro de 2026, um programa gratuito que copia serviços da AWS para o próprio computador do desenvolvedor. Segundo a AWS, agentes de IA escreveram todo o código. Ele permite que desenvolvedores e seus agentes de programação testem código de nuvem sem fatura da AWS nem uma conta real da AWS. Num teste da Tech AI Wire, porém, ele não aplicou as permissões de IAM. Essas são as regras que decidem quem pode fazer o quê numa conta da AWS. Por isso, ele não consegue dizer se essas regras funcionam.

Um emulador é um substituto local que responde às mesmas requisições que o serviço real. Um post no blog de Werner Vogels, All Things Distributed, diz que ele cobre mais de 200 serviços da AWS por meio de mais de 400 modelos de API. O código está no GitHub sob CC0, uma dedicação ao domínio público, segundo o relato da própria Amazon.

Como a AWS o construiu com agentes

"O emulador foi escrito inteiramente por agentes autônomos. Nossa equipe não escreveu nem revisou nada do código", disse à Help Net Security Matthew Goldberg, engenheiro principal sênior da AWS. Goldberg escreve que o projeto começou como um teste de fim de semana. Nele, um agente construiu em 15 minutos uma primeira versão do Amazon SQS, a fila de mensagens da AWS.

Agora três equipes de agentes fazem o trabalho, informa a Help Net Security. Uma escreve testes a partir das especificações públicas das APIs da AWS e os confere contra a AWS real. A segunda roda esses testes contra o emulador. A terceira corrige o que falha. Cada mudança precisa passar por um portão de merge que verifica o build, os padrões de código, a segurança e a fidelidade, ou seja, quanto o emulador se parece com a AWS. Goldberg cita 438 modelos de API, "dezenas de milhares" de testes e centenas de agentes que corrigem milhares de problemas por dia.

O post no blog de Vogels defende que o trabalho do engenheiro passa a ser construir essas verificações. "A qualidade do software na era da IA depende das proteções que os engenheiros desenham em torno dos agentes", diz o texto.

Teste da Tech AI Wire: instalação, velocidade e permissões

O teste rodou no macOS 26 com Docker 28.4.0, num Mac com Apple silicon. A AWS não publica uma imagem pronta. Seu guia de Docker traz no lugar um Dockerfile curto, com um pacote Arm para Apple silicon. O build levou 65 segundos e gerou uma imagem de 1,16 GB. Dentro dela, aws-emulator -v informou a versão 1.0.322, com data de lançamento 2026.11.10.

Iniciado com --telemetry off, o emulador ficou pronto em 0,6 segundo. Seu log informou o endpoint https://127.0.0.1:9297, com um certificado autoassinado. Ele também gravou seus próprios arquivos de configuração e credenciais da AWS, então a AWS CLI conseguiu falar com ele sem chaves reais. O log avisou que o contêiner escuta em todas as interfaces de rede. É por isso que o guia da AWS publica a porta só em 127.0.0.1.

O básico funcionou com a AWS CLI 2.24.16. No S3, o armazenamento de arquivos da AWS, a criação de um bucket, um upload e uma listagem deram certo. Uma fila do SQS recebeu uma mensagem e a devolveu. No DynamoDB, o banco de dados chave-valor da AWS, gravar logo numa tabela nova falhou com ResourceNotFoundException, porque a tabela ainda estava em CREATING. Depois de aws dynamodb wait table-exists, a gravação e a leitura funcionaram. O teste inteiro levou 7 segundos, e o contêiner usou 174 MiB de memória.

As permissões foram o ponto fraco. Uma política de bucket que negava tudo de fato bloqueou um download, com um erro 403. Mas depois o teste criou um usuário de IAM sem nenhuma política. Com as chaves desse usuário, as três chamadas deram certo:

$ 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

Essa é a lacuna sobre a qual a AWS alerta. O emulador não avalia políticas de IAM nem políticas baseadas em recursos como a AWS faz, informa a Help Net Security. Por isso a AWS diz para não usá-lo em testes de segurança. Um reinício também apagou tudo, como diz a documentação: depois de docker restart, a lista de buckets estava vazia.

AWS Emulator contra o plano gratuito da LocalStack

A LocalStack é outra ferramenta que roda serviços da AWS localmente. Seu plano gratuito tem condições que o AWS Emulator não tem. A tabela usa a página de preços da LocalStack e as páginas da própria AWS.

AWS EmulatorLocalStack Hobby (gratuito)
PreçoGratuito, sem taxa de serviçoGratuito
CadastroNão foi preciso no testeConta obrigatória
Uso comercialNenhum limite informado; o código é CC0Não permitido: "para hobbistas e outros usos não comerciais"
Plano pago mais baratoNenhum informadoBase, 39 $ por licença ao mês com pagamento anual, ou 45 $ mensais

O que isso significa para desenvolvedores

O AWS Emulator é um lugar rápido e gratuito para rodar testes de aplicação e deixar agentes de programação experimentarem chamadas à AWS. Não é o lugar certo para verificar quem pode fazer o quê.

  • Mantenha os testes de permissão na AWS real. Aqui, um usuário sem permissões apagou uma tabela. Teste papéis e políticas de IAM numa conta de testes da AWS.
  • Limite-o ao localhost. No Docker, use -p 127.0.0.1:9297:9297, como diz o guia da AWS. Caso contrário, qualquer pessoa na sua rede pode chamá-lo.
  • Desligue a telemetria se precisar. Adicione --telemetry off ou defina EMULATOR_TELEMETRY=off. Ela vem ligada por padrão, e a Help Net Security informa que não envia requisições, respostas nem dados de recursos.
  • Carregue os dados a cada execução. Tudo fica na memória e some depois de um reinício.
  • Espere pelos recursos, como o código real deveria fazer. Testes que gravam numa tabela do DynamoDB antes de ela estar pronta vão falhar aqui.
  • Confira a fidelidade antes de depender de um serviço. A AWS publica no GitHub notas de fidelidade por serviço a cada versão.

Equipes que pagam a LocalStack só para rodar testes da AWS no trabalho agora têm uma opção gratuita para comparar. O porém é o mesmo que a própria AWS aponta: testes aprovados aqui não dizem nada sobre suas permissões.

Fontes

  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

Artigos relacionados