Blog

  • Expansão Regional das Instâncias P6-B200 no SageMaker Notebook Instances

    O que foi anunciado

    A AWS anunciou a disponibilidade geral das instâncias Amazon EC2 P6-B200 na região US East (N. Virginia) para uso com o SageMaker Notebook Instances. Essa expansão regional representa um passo importante para equipes que trabalham com treinamento e ajuste fino de modelos de inteligência artificial de grande porte diretamente no ambiente gerenciado da AWS.

    Hardware por trás das instâncias P6-B200

    As instâncias P6-B200 são equipadas com 8 GPUs NVIDIA Blackwell e 1.440 GB de memória de GPU de alta largura de banda, além de processadores Intel Xeon de 5ª geração (codinome Emerald Rapids). Esse conjunto de hardware entrega até 2x mais desempenho em treinamento de IA quando comparado às instâncias P5en — o que representa um salto considerável para cargas de trabalho intensivas.

    Para que servem essas instâncias

    O foco principal das P6-B200 é o desenvolvimento interativo e o ajuste fino de grandes modelos de fundação, incluindo:

    • LLMs — Modelos de Linguagem de Grande Escala (Large Language Models)
    • Modelos de mistura de especialistas (mixture of experts)
    • Modelos de raciocínio multimodal

    Com esse poder computacional disponível diretamente nos notebooks gerenciados, equipes de ciência de dados e engenharia de ML conseguem experimentar com modelos maiores sem precisar provisionar infraestrutura separada.

    Ambientes de desenvolvimento suportados

    As instâncias P6-B200 funcionam nos ambientes JupyterLab e CodeEditor dentro do SageMaker, permitindo experimentação ágil com modelos generativos voltados para aplicações como:

    • Copilotos corporativos (enterprise copilots)
    • Geração de conteúdo em texto, imagens e vídeo

    Como começar

    Para quem quiser configurar e explorar esses recursos, a AWS disponibiliza guias para desenvolvedores cobrindo tanto o JupyterLab quanto o CodeEditor no contexto do SageMaker Studio e das instâncias de notebook do SageMaker. A documentação oficial é o ponto de partida recomendado para entender as etapas de configuração e os requisitos de cada ambiente.

    Fonte

    Announcing Region Expansion of P6-B200 instances on SageMaker Notebook Instances (https://aws.amazon.com/about-aws/whats-new/2026/06/p6-b200-region-expansion-sagemaker-notebook-instances/)

  • Amazon EMR passa a suportar Apache Spark 4.0.2 em disponibilidade geral

    O que mudou

    A AWS anunciou que o Amazon EMR agora oferece suporte ao Apache Spark 4.0.2 em disponibilidade geral, contemplando os três modelos de implantação do serviço. A novidade traz um conjunto relevante de melhorias para quem trabalha com pipelines de dados, controle de acesso e aplicações em tempo real.

    Principais capacidades do Spark 4.0.2 no EMR

    Pipelines de dados com ANSI SQL

    Uma das mudanças mais práticas é o suporte nativo ao ANSI SQL padrão, o que torna a engenharia de dados acessível a um público mais amplo. Com isso, não é mais necessário aprender a sintaxe específica do Spark para construir e manter pipelines — quem já conhece SQL consegue trabalhar de forma produtiva desde o início.

    Suporte a dados semiestruturados com VARIANT

    O Spark 4.0.2 introduz suporte nativo a JSON e outros dados semiestruturados por meio dos tipos de dados VARIANT. Isso oferece mais flexibilidade para lidar com formatos de dados variados, sem a necessidade de transformações complexas antes do processamento.

    Controle de acesso granular (FGAC)

    O Controle de Acesso Refinado (FGAC — Fine-Grained Access Control) agora pode ser aplicado tanto em operações de leitura quanto de escrita nas tabelas registradas no AWS Lake Formation, dentro dos jobs do Apache Spark. Isso permite definir permissões no nível de linha ou coluna, aumentando a precisão no controle de quem acessa o quê.

    Apache Iceberg v3 para governança e conformidade

    O suporte ao formato de tabela Apache Iceberg v3 complementa as capacidades de segurança ao oferecer garantias de transação mais robustas e rastreamento de linhagem de dados. O resultado são trilhas de auditoria adequadas para atender a exigências regulatórias e fortalecer os frameworks de conformidade e governança.

    Streaming aprimorado para aplicações em tempo real

    Os controles de streaming foram aprimorados para simplificar o gerenciamento de operações stateful complexas e melhorar o monitoramento. Isso permite colocar em produção aplicações em tempo real com mais agilidade — casos de uso como detecção de fraudes, personalização e outros cenários sensíveis ao tempo são diretamente beneficiados.

    Disponibilidade e como começar

    O Apache Spark 4.0.2 está disponível em todas as regiões onde o Amazon EMR já opera. Para quem está migrando a partir de uma versão anterior, a AWS disponibiliza o agente de atualização do Apache Spark, uma ferramenta que acelera o processo de upgrade de aplicações EMR existentes.

    Para criar uma nova aplicação EMR com Spark 4.0.2, basta acessar o Console de Gerenciamento da AWS e seguir o fluxo padrão de criação.

    Fonte

    Amazon EMR now supports Apache Spark 4.0.2 in general availability (https://aws.amazon.com/about-aws/whats-new/2026/05/amazon-emr-apache-spark/)

  • Amazon Bedrock amplia suporte a Cotas de Serviço para o endpoint bedrock-mantle

    O que mudou no Amazon Bedrock

    A AWS anunciou uma expansão no suporte do Amazon Bedrock ao AWS Service Quotas, o serviço centralizado de gerenciamento de cotas da plataforma. A partir de agora, os clientes conseguem visualizar as cotas de inferência do endpoint bedrock-mantle diretamente pelo console de Service Quotas — da mesma forma que já faziam com o endpoint bedrock-runtime e outros serviços da AWS.

    Na prática, isso significa que equipes de engenharia e arquitetura ganham uma visão clara e padronizada dos limites que se aplicam às suas cargas de trabalho no Bedrock, sem precisar consultar documentação separada ou abrir chamados para descobrir qual é o teto de requisições disponível.

    O que é o endpoint bedrock-mantle

    O bedrock-mantle é o endpoint do Amazon Bedrock que oferece compatibilidade com três APIs amplamente utilizadas no mercado de Inteligência Artificial (IA) generativa:

    • OpenAI Responses API
    • OpenAI Chat Completions API
    • Anthropic Messages API

    Essa compatibilidade permite que times que já possuem aplicações construídas sobre OpenAI ou Anthropic migrem para o Amazon Bedrock com mudanças mínimas no código. É uma porta de entrada direta para quem quer aproveitar a infraestrutura gerenciada da AWS sem reescrever integrações do zero.

    O que ficou visível com esta atualização

    Com a expansão do suporte a Service Quotas, o endpoint bedrock-mantle passa a expor, por modelo, as seguintes cotas:

    • Tokens de entrada por minuto (input-tokens-per-minute)
    • Tokens de saída por minuto (output-tokens-per-minute)

    Essa granularidade por modelo é especialmente útil para equipes que trabalham com múltiplos modelos de fundação simultaneamente e precisam planejar a capacidade de cada um de forma independente.

    Como acessar as cotas no console

    O acesso é simples e segue o fluxo padrão do AWS Service Quotas:

    • Abra o console do AWS Service Quotas
    • Selecione Amazon Bedrock
    • Pesquise por “Bedrock Mantle” para visualizar as cotas disponíveis

    Para solicitar aumento de qualquer uma dessas cotas, basta seguir o processo padrão de aumento de limites do Amazon Bedrock.

    Disponibilidade por região

    O suporte a Service Quotas para o endpoint bedrock-mantle está disponível em todas as regiões da AWS onde o endpoint é oferecido:

    • EUA Leste: Norte da Virgínia, Ohio
    • EUA Oeste: Oregon
    • Ásia-Pacífico: Mumbai, Tóquio, Sydney, Jacarta
    • Europa: Frankfurt, Irlanda, Londres, Milão, Estocolmo
    • América do Sul: São Paulo

    Para o público brasileiro, vale destacar a presença da região de São Paulo, o que garante baixa latência para aplicações hospedadas localmente.

    Por que isso importa

    Ter visibilidade de cotas de forma proativa é fundamental para quem opera em escala de produção. Sem esse tipo de informação, equipes costumam descobrir os limites apenas quando os erros começam a aparecer — o que pode significar interrupções inesperadas em aplicações críticas. Com essa atualização, o Amazon Bedrock se alinha ao padrão já consolidado de outros serviços da AWS, tornando o planejamento de capacidade mais previsível e menos reativo.

    Para mais detalhes técnicos sobre os limites disponíveis, consulte a documentação de cotas do Amazon Bedrock.

    Fonte

    Amazon Bedrock expands support for Service Quotas (https://aws.amazon.com/about-aws/whats-new/2026/5/amazon-bedrock-service-quotas/)

  • SageMaker Notebook Instances passa a suportar instâncias do tipo P5.4xl

    Suporte a instâncias P5.4xl no SageMaker Notebook Instances

    A AWS anunciou a disponibilidade geral das instâncias Amazon EC2 P5.4xl no SageMaker Notebook Instances. Essa novidade coloca poder computacional de alto nível diretamente nas mãos de quem trabalha com aprendizado profundo (DL — Deep Learning) e computação de alta performance (HPC — High Performance Computing) dentro do ambiente de notebooks gerenciados da AWS.

    O que são as instâncias P5.4xl?

    As instâncias Amazon EC2 P5.4xl são equipadas com GPUs NVIDIA H100 Tensor Core, consideradas referência de mercado para cargas de trabalho intensivas em IA. De acordo com a AWS, elas entregam até 4x mais velocidade na resolução de problemas em comparação com instâncias EC2 baseadas em GPU da geração anterior, além de uma redução de até 40% no custo de treinamento de modelos de aprendizado de máquina (ML — Machine Learning).

    Para quais aplicações são indicadas?

    As instâncias P5 são indicadas para treinar e implantar modelos complexos, como Grandes Modelos de Linguagem (LLMs — Large Language Models) e modelos de difusão que alimentam aplicações de IA generativa. Entre os casos de uso destacados pela AWS estão:

    • Resposta a perguntas (question answering)
    • Geração de código
    • Geração de vídeo e imagem
    • Reconhecimento de fala (speech recognition)

    Disponibilidade por região

    As instâncias Amazon EC2 P5.4xl já estão disponíveis no SageMaker Notebook Instances nas seguintes regiões da AWS:

    • US East (N. Virginia e Ohio)
    • US West (Oregon)
    • Asia Pacific (Mumbai, Tokyo e Jakarta)
    • South America (São Paulo)

    A inclusão da região de São Paulo é especialmente relevante para equipes e empresas brasileiras que precisam manter dados e processamento dentro do território nacional ou em conformidade com requisitos de latência e residência de dados.

    Como começar a usar

    Para quem já utiliza o SageMaker, a AWS disponibiliza guias de desenvolvedor com instruções detalhadas para configurar e utilizar as aplicações JupyterLab e CodeEditor tanto no SageMaker Studio quanto nas instâncias de notebook do SageMaker.

    Fonte

    SageMaker Notebook Instances now support P5.4xl instance types (https://aws.amazon.com/about-aws/whats-new/2026/03/p5-4xl-new-instance-launch-sagemaker-notebook-instances/)

  • AgentCore Payments: como a AWS está resolvendo pagamentos autônomos para agentes de IA

    O problema que o AgentCore Payments veio resolver

    O mundo dos agentes de Inteligência Artificial (IA) está evoluindo rapidamente. A expectativa é que bilhões de agentes de IA generativa operem de forma autônoma, tomando decisões e executando tarefas sem intervenção humana. Para suportar esse cenário, a AWS desenvolveu o Amazon Bedrock AgentCore, uma plataforma modular e totalmente gerenciada para construir, implantar e operar agentes de IA em escala.

    Nesse novo contexto, um obstáculo concreto surge quando esses agentes precisam acessar serviços pagos: APIs com cobrança por uso, conteúdo premium e ferramentas que exigem assinatura. O problema se desdobra em várias camadas:

    • Integrar carteiras de pagamento de terceiros exige gerenciar autenticação, controle de acesso e segurança das credenciais.
    • A maioria das transações vale centavos, mas métodos tradicionais como cartão de crédito cobram taxas fixas por transação (por exemplo, USD $0,30), tornando micropagamentos economicamente inviáveis.
    • Protocolos de pagamento para agentes, como o x402 — um dos protocolos populares de pagamento máquina a máquina — têm variações de versão e complexidades que demandam meses de trabalho para integrar corretamente.
    • Sem guardrails de orçamento, um agente autônomo pode gastar além do limite previsto, especialmente quando múltiplos pagamentos ocorrem em paralelo.

    É exatamente para resolver esse conjunto de desafios que a AWS lançou o Amazon Bedrock AgentCore Payments, disponível em preview. O serviço promete reduzir o esforço de integração de meses para dias.

    O que é o AgentCore Payments

    O AgentCore Payments é o primeiro serviço gerenciado dentro do Amazon Bedrock AgentCore focado em pagamentos. Ele permite que agentes de IA executem micropagamentos de forma autônoma para APIs pagas, servidores MCP (Protocolo de Contexto de Modelo) e conteúdo, com poucas linhas de código.

    Os principais recursos oferecidos são:

    • Pagamentos instantâneos para serviços externos pagos, sem necessidade de configuração manual de cobrança por provedor.
    • Suporte a stablecoins para micropagamentos economicamente viáveis, incluindo transações abaixo de um centavo.
    • Guardrails de gastos configuráveis para controle granular de orçamento e limites de transação por agente ou sessão.
    Imagem original — fonte: Aws

    Como o serviço resolve cada desafio técnico

    Autenticação segura de carteiras de pagamento

    Para autenticar carteiras de pagamento com segurança, o AgentCore Payments utiliza o AgentCore Identity. O desenvolvedor cria um payment connector — um recurso de integração específico por provedor de pagamento. Esse conector provisiona automaticamente um provedor de credenciais no AgentCore Identity, que armazena as credenciais em um cofre seguro de tokens e emite tokens de acesso tokenizados sem expor as credenciais brutas.

    O serviço suporta assinaturas criptográficas EdDSA, ECDSA e ES256 para operações com carteiras. O material criptográfico fica armazenado no AWS Secrets Manager e nunca é retornado pelas APIs. Na camada de entrada, o serviço impõe autenticação dupla — OAuth e AWS SigV4 — no mesmo pipeline de requisição.

    Orquestração de protocolos de pagamento

    O cenário de protocolos de pagamento agênticos é fragmentado, com múltiplos padrões competindo entre si. Para resolver isso, o AgentCore Payments oferece um motor de orquestração de pagamentos que fica entre o agente e os provedores de pagamento, expondo uma única interface processPayment.

    Essa interface recebe uma requisição de pagamento e retorna uma prova de pagamento que o agente pode apresentar para acessar o serviço pago. O orquestrador gerencia automaticamente fluxos de pagamento em múltiplas etapas, tentativas e casos extremos para protocolos como o x402 (incluindo as versões 1 e 2, que diferem na estrutura dos campos exigidos). O modelo é plugável: adicionar suporte a um novo protocolo não exige mudanças na lógica central nem na API exposta ao desenvolvedor.

    Controle de orçamento em tempo real

    Agentes são autônomos por natureza, o que torna o controle de gastos um requisito crítico de infraestrutura. O AgentCore Payments implementa limites de gasto na camada de infraestrutura por meio de um fluxo transacional de três fases:

    1. Fase 1 — Reserva: o valor solicitado é deduzido atomicamente do saldo disponível antes de qualquer processamento.
    2. Fase 2 — Processamento: o pagamento é processado pelo provedor.
    3. Fase 3 — Confirmação ou rollback: em caso de sucesso, a transação é confirmada; em caso de falha, o valor reservado é restaurado ao saldo disponível.
    Imagem original — fonte: Aws

    Esse protocolo garante que, mesmo com múltiplos agentes transacionando simultaneamente contra o mesmo orçamento, não haja leituras desatualizadas, sobrescritas ou gastos além do limite.

    Observabilidade completa dos pagamentos

    Para agentes que transacionam de forma autônoma, visibilidade total é indispensável. O AgentCore Payments entrega um sistema de observabilidade em três pilares, publicado diretamente na conta AWS do desenvolvedor, sem necessidade de instrumentação de código:

    • Métricas no Amazon CloudWatch: contagens de sucesso, falha e latência por operação. A operação processPayment também emite o valor gasto por tipo de token.
    • Logs estruturados entregues via pipeline assíncrono e em lote, com contexto do recurso de pagamento e ID de requisição para correlação.
    • Rastreamento distribuído baseado em propagação de contexto W3C com spans compatíveis com OpenTelemetry, enriquecidos com atributos de pagamento como valor gasto, orçamento restante e telemetria da cadeia de assinatura.

    Como começar a usar o AgentCore Payments

    Para começar, a AWS recomenda verificar os pré-requisitos na documentação. O serviço pode ser configurado por múltiplas interfaces: AWS SDK para Python (Boto3), Console de Gerenciamento AWS, Amazon Bedrock AgentCore SDK e Strands Agents com plugin nativo para integração com hooks x402.

    Configuração inicial (uma única vez)

    Antes de registrar no AgentCore Payments, é necessário obter credenciais de API do provedor de pagamento escolhido. Para Stripe, utiliza-se a chave secreta de API do Stripe Dashboard. Para Coinbase, cria-se uma chave de API na Coinbase Developer Platform, que emite um par de nome de chave e chave privada.

    O código abaixo, usando o AgentCore SDK, realiza toda a configuração inicial em uma única chamada:

    from bedrock_agentcore.payments import PaymentClient
    
    # Create PaymentClient
    payment_client = PaymentClient(region_name="us-west-2")
    
    # Create payment manager with connector and credential provider
    response = payment_client.create_payment_manager_with_connector(
        payment_manager_name="myPaymentManager",
        payment_manager_description="myPaymentManager description",
        authorizer_type="AWS_IAM",
        role_arn=ROLE_ARN,
        payment_connector_config={
            "name": "myPaymentConnector",
            "description": "myPaymentConnector description",
            "payment_credential_provider_config": {
                "name": "myCoinbasePaymentCredential",
                "credential_provider_vendor": "<PROVIDER>",
                "credentials": {
                    "api_key_id": API_KEY,
                    "api_key_secret": API_KEY_SECRET,
                    "wallet_secret": WALLET_SECRET,
                },
            },
        }
    )
    
    # Extract details from response
    payment_manager_arn = response["paymentManager"]["paymentManagerArn"]
    payment_connector_id = response["paymentManager"]["paymentConnectorId"]

    Criando o instrumento de pagamento

    Com o payment manager configurado, o próximo passo é criar um instrumento de pagamento referenciando o manager e o conector. O instrumento é essencialmente uma carteira embarcada — um endereço de carteira autocustodial gerenciado pelo usuário final. Após a criação, o instrumento precisa ser financiado e a autorização de assinatura deve ser concedida antes que o agente possa transacionar.

    from bedrock_agentcore.payments import PaymentManager
    
    # Initialize manager
    manager = PaymentManager(
        payment_manager_arn=payment_manager_arn,
        region_name="us-west-2"
    )
    
    instrument = manager.create_payment_instrument(
        user_id="test-user-123",
        payment_connector_id="codeverifymycoinbaseconnector-sfp0lynfjc",
        payment_instrument_type="EMBEDDED_CRYPTO_WALLET",
        payment_instrument_details={
            "embeddedCryptoWallet": {
                "network": "ETHEREUM",
                "linkedAccounts": [{
                    "email": {
                        "emailAddress": "test@example.com"
                    }
                }]
            }
        },
    )

    Criando uma sessão de pagamento

    A sessão de pagamento define o limite financeiro do agente: quanto pode ser gasto e por quanto tempo. O ID da sessão e o ID do instrumento são passados ao agente quando sua tarefa começa. O agente não pode estender sua sessão nem gastar além dos limites configurados.

    # Create a payment session
    session_response = manager.create_payment_session(
        user_id="test-user-123",
        limits={
            "maxSpendAmount": {
                "value": "100.00",
                "currency": "USD"
            }
        },
        expiry_time_in_minutes=60
    )

    Processando pagamentos de forma autônoma

    Quando o agente chama um endpoint pago e recebe uma resposta HTTP 402 Payment Required, o AgentCore Payments entende o protocolo x402 e sabe exatamente como gerar a prova de pagamento necessária para desbloquear o serviço:

    payment_response = manager.process_payment(
        user_id="user-123",
        payment_session_id=PAYMENT_SESSION_ID,
        payment_instrument_id=PAYMENT_INSTRUMENT_ID,
        payment_input={
            "cryptoX402": {
                "version": "1",
                "payload": {
                    "scheme": "exact",
                    "network": "base-sepolia",
                    "maxAmountRequired": "5000",
                    "resource": "https://premiousEndpoint",
                    "description": "Premium AI joke generation",
                    "mimeType": "application/json",
                    "payTo": PAY_TO_ADDRESS,
                    "maxTimeoutSeconds": 300,
                    "asset": "0xxxxxxxxxxxxxxxxxxxxxxxx",
                    "extra": {"name": "USDC", "version": "2"},
                },
            }
        }
    )

    Caso de uso: agente de pesquisa financeira

    Para ilustrar o funcionamento na prática, imagine um analista financeiro que pede ao seu agente de IA: “Analise as ações da Amazon e compare com benchmarks do setor.” O agente precisa de três fontes pagas: uma API de dados financeiros (USD $0,50 por consulta), um fornecedor de análise de cadeia de suprimentos (USD $1,20 por relatório) e uma base de dados de benchmarks (USD $0,80 por dataset).

    O backend da aplicação cria uma sessão com orçamento de USD $10,00 e passa o ID da sessão e o ID do instrumento ao agente. O agente chama cada serviço, recebe HTTP 402 de cada um, e o AgentCore Payments verifica o orçamento atomicamente, assina a transação pelo provedor de carteira configurado e retorna a prova criptográfica. O agente faz a tentativa novamente com a prova e recebe o conteúdo pago.

    Três fornecedores, três pagamentos, uma chamada de API cada. Gasto total: USD $2,50 de um orçamento de USD $10,00. O analista recebe a análise completa sem intervenção manual.

    O mesmo fluxo funciona independentemente do framework de agente utilizado (Strands Agents, LangChain, etc.) e do modelo de linguagem escolhido — seja Claude da Anthropic, GPT da OpenAI, Gemini do Google ou Llama da Meta.

    Integração com outros serviços do AgentCore

    Como os pagamentos operam na camada de chamada de ferramentas, eles funcionam naturalmente com outros serviços do AgentCore:

    • AgentCore Gateway — descobre ferramentas MCP pagas no Coinbase x402 Bazaar sem registro por provedor. Uma única stack de pagamento dá acesso a mais de 10.000 endpoints.
    • AgentCore Memory — armazena resultados de pesquisas entre sessões. Se o agente já comprou um relatório anteriormente, a memória recupera o resultado sem novo pagamento.
    • AgentCore Tools — ferramentas gerenciadas como Browser e Code Interpreter funcionam no mesmo fluxo. O Browser navega em sites com paywall e paga pelo conteúdo inline.
    • AgentCore Runtime — ao implantar o agente com agentcore deploy, o papel ProcessPaymentRole é aplicado no nível de infraestrutura.

    Recursos para começar

    O AgentCore Payments está disponível em preview. Após os testes, lembre-se de limpar os recursos criados para evitar cobranças desnecessárias.

    Fonte

    Technical deep dive: AgentCore payments and innovation in agentic commerce (https://aws.amazon.com/blogs/machine-learning/technical-deep-dive-agentcore-payments-and-innovation-in-agentic-commerce/)

  • Boas práticas Well-Architected para segurança da cadeia de suprimentos de software

    Ataques recentes à cadeia de suprimentos e por que isso importa

    Desde setembro, diversos ataques notáveis à cadeia de suprimentos de software foram registrados no npm Registry: Shai-Hulud, Chalk/Debug, um abuso de tokens do tea.xyz e, mais recentemente, o axios. Graças a esforços da comunidade envolvendo a equipe do Amazon Inspector, a Open Source Security Foundation e outros colaboradores, os pacotes afetados foram rapidamente identificados, reduzindo o impacto desses incidentes.

    Ataques como o Shai-Hulud exploram vulnerabilidades em duas frentes: contas de mantenedores comprometidas que publicam pacotes maliciosos e ambientes de consumidores que baixam e executam esses pacotes. O ataque Shai-Hulud teve sucesso porque credenciais de mantenedores foram comprometidas via phishing, permitindo que agentes de ameaça publicassem versões maliciosas de pacotes populares.

    Incidentes como esses reforçam a necessidade de práticas de segurança robustas na cadeia de suprimentos de software. A defesa eficaz exige abordar ambos os lados: mantenedores de pacotes precisam de proteções que previnam comprometimento de contas e limitem a propagação quando credenciais são roubadas; consumidores de pacotes precisam de defesas em camadas que detectem pacotes maliciosos, impeçam sua implantação e limitem danos quando um comprometimento ocorre.

    A AWS publicou um guia detalhado com boas práticas focadas em consumidores de pacotes, alinhadas ao AWS Well-Architected Framework – Pilar de Segurança. Vamos explorar essas práticas nesta releitura.

    Diagrama do fluxo de ataque Shai-Hulud — fonte: Aws

    Usar credenciais temporárias e conceder privilégio mínimo

    Quando o Shai-Hulud foi executado em ambientes de desenvolvimento e pipelines de Integração e Entrega Contínua (CI/CD), ele escaneou segredos como tokens npm, tokens GitHub e chaves de acesso do AWS Identity and Access Management (IAM). Credenciais de longa duração expostas dessa forma permitiram que agentes de ameaça propagassem o malware e acessassem recursos em nuvem.

    Incidentes recentes mostraram organizações descobrindo múltiplos pares de credenciais IAM vazados, com preocupações sobre credenciais adicionais expostas e potencial comprometimento de pipelines CI/CD.

    A remoção de credenciais de longa duração dos ambientes de desenvolvimento e pipelines CI/CD reduz o escopo de exposição caso um sistema seja comprometido. Para desenvolvedores trabalhando localmente, o novo comando de login da AWS CLI (aws login) simplifica a aquisição de credenciais CLI de curta duração e elimina a necessidade de armazenar credenciais de longa duração em arquivos de configuração. O AWS IAM Identity Center também oferece uma forma direta de adquirir credenciais temporárias que expiram automaticamente.

    Para pipelines CI/CD, a federação via OpenID Connect (OIDC) com GitHub Actions, GitLab CI ou outras plataformas fornece credenciais temporárias para cada job sem armazenar tokens de longa duração. O IAM também pode federar identidades AWS para serviços externos, permitindo que workloads na AWS acessem serviços externos de forma segura sem credenciais de longo prazo.

    Credenciais temporárias expiram automaticamente, limitando a janela de exposição caso um pipeline seja comprometido. Para serviços de terceiros que não suportam credenciais temporárias, a recomendação é armazenar as credenciais em um serviço centralizado como o AWS Secrets Manager ou o AWS Systems Manager Parameter Store, limitando o acesso a esses segredos, exigindo credenciais temporárias e aplicando rotação automática com registro de auditoria.

    Resumo das recomendações para reduzir risco de exposição de credenciais

    Em caso de incidente de segurança onde credenciais possam ter sido expostas, a orientação é rotacionar imediatamente todas as credenciais de longa duração. Utilizar o Amazon GuardDuty e o AWS CloudTrail para detectar atividade IAM anômala e identificar quais credenciais podem ter sido comprometidas.

    Implementar defesa em profundidade

    Mesmo com credenciais temporárias e privilégio mínimo, uma única conta comprometida pode permitir que agentes de ameaça publiquem pacotes maliciosos ou acessem recursos sensíveis. A defesa em profundidade cria múltiplas camadas de proteção que trabalham juntas para prevenir a propagação após o comprometimento inicial.

    O princípio-chave é garantir que, se uma credencial ou conta for comprometida, controles adicionais impeçam que esse comprometimento se espalhe pela organização. Isso inclui Autenticação Multifator (MFA) para acesso combinada com diferentes IAM roles para workloads sensíveis.

    Para projetos open source de desenvolvedor único, o MFA se torna ainda mais crítico porque não há separação de funções através de múltiplos mantenedores. Em ambientes de equipe, exigir múltiplos aprovadores para liberar pacotes para produção cria separação de funções. A aprovação multi-parte deve ser implementada dentro do próprio pipeline para implantações sensíveis — garantindo que mesmo se credenciais de um desenvolvedor forem comprometidas e ele disparar um deploy, o pipeline exija aprovação adicional antes de liberar para produção.

    Para consumidores de pacotes, fluxos de aprovação múltipla em pipelines de implantação ajudam a garantir que, se um pacote malicioso passar pela varredura inicial, a revisão humana possa identificar mudanças suspeitas antes da implantação em produção.

    Assinatura de artefatos como parte da defesa em profundidade

    A assinatura de artefatos fornece uma camada criptográfica complementar que funciona junto com os controles de processo. O ataque Shai-Hulud teve sucesso porque credenciais comprometidas de mantenedores permitiram publicar pacotes maliciosos diretamente no registro npm público. Para consumidores de pacotes, a defesa é garantir que pacotes obtidos de registros públicos não alcancem produção sem verificação.

    Ao vincular criptograficamente um pacote ou imagem de contêiner à identidade que o produziu, a assinatura cria uma camada de verificação independente da credencial usada para disparar o build — significando que uma credencial de desenvolvedor comprometida sozinha não é suficiente para introduzir um artefato não verificado no pipeline de implantação.

    O AWS Signer fornece assinatura criptográfica para pacotes, criando uma camada adicional de verificação. O modelo de autorização de assinatura separa responsabilidades: credenciais de desenvolvedor não devem ter permissões de assinatura. Apenas roles de pipeline CI/CD devem ter permissões de assinatura através da API signer:StartSigningJob. O Signer usa Módulos de Segurança de Hardware (HSMs) validados FIPS 140-3 Nível 3 para armazenar chaves de assinatura.

    O fluxo de assinatura de imagens de contêiner funciona da seguinte forma:

    • O desenvolvedor ou pipeline CI/CD constrói uma imagem de contêiner e envia para o Amazon Elastic Container Registry (Amazon ECR)
    • Com a assinatura gerenciada do Amazon ECR (nova funcionalidade), o ECR dispara automaticamente a assinatura quando a imagem é enviada
    • O Amazon ECR chama o Signer com o digest da imagem e o perfil de assinatura
    • O Signer verifica as permissões do perfil e assina o digest usando chaves armazenadas em HSMs validados FIPS 140-3 Nível 3
    • A assinatura é armazenada junto à imagem no Amazon ECR usando formato de artefato OCI (Open Container Initiative)
    • No momento da implantação, controladores de admissão (Kyverno para Amazon EKS, lifecycle hooks para Amazon ECS) verificam assinaturas antes de permitir a implantação
    Diagrama do fluxo de assinatura com AWS Signer — fonte: Aws

    Os benefícios do Signer em comparação com a construção de infraestrutura de assinatura personalizada incluem:

    • Totalmente gerenciado: Sem necessidade de construir infraestrutura customizada ou gerenciar ciclo de vida de certificados
    • Automatizado: A assinatura gerenciada do ECR acontece automaticamente no push da imagem sem etapas manuais
    • Governança centralizada: Um único perfil de assinatura pode ser usado em múltiplas contas e pipelines
    • Integração nativa: Integração com Notation e Kyverno para verificação de assinatura no Amazon EKS
    • Conformidade FIPS 140-3 Nível 3: Atende requisitos regulatórios rigorosos para operações criptográficas

    O registro de auditoria para todas as operações de assinatura permite detectar padrões incomuns, como assinatura a partir de novos endereços IP, horários incomuns ou sucessão rápida de jobs de assinatura.

    Centralizar o gerenciamento de dependências

    Ao centralizar o gerenciamento de pacotes e dependências, é possível validar e aprovar dependências antes de serem usadas em aplicações e auditar rapidamente dependências em caso de incidente de segurança na cadeia de suprimentos.

    Na AWS, o AWS CodeArtifact permite hospedar e gerenciar os pacotes de software da organização. A configuração de grupos de pacotes permite definir uma lista aprovada de fontes upstream e bloquear acesso a todas as outras — um controle direto contra ataques de typosquatting, onde pacotes maliciosos são publicados com nomes que se assemelham a pacotes legítimos. Em vez de depender dos desenvolvedores para identificar nomes suspeitos na hora da instalação, a configuração de grupo de pacotes impõe a barreira no nível do repositório.

    A centralização também permite fixar versões de dependências para evitar que atualizações automáticas puxem versões maliciosas, e remover rapidamente dependências comprometidas em todo o portfólio de software quando um incidente ocorre.

    Para imagens de contêiner, o Amazon ECR fornece armazenamento centralizado de imagens com criptografia via AWS Key Management Service (AWS KMS) e políticas de ciclo de vida. Combinado com a varredura do Amazon Inspector, é possível validar continuamente a integridade das imagens. Para orientações adicionais: SEC11-BP05: Centralizar serviços para pacotes e dependências.

    Atestação de proveniência do npm

    Para pacotes npm especificamente, as atestações de proveniência fornecem um controle complementar no lado do consumidor. Disponíveis desde o npm 9.5, as atestações vinculam um pacote publicado ao repositório de código-fonte específico e ao fluxo CI/CD que o produziu, usando Sigstore como infraestrutura de assinatura subjacente. Quando um pacote é instalado, a CLI do npm pode verificar que o artefato publicado corresponde à proveniência de build atestada.

    Mantenedores de pacotes publicando no npm podem habilitar a proveniência executando npm publish com a flag --provenance a partir de um ambiente CI/CD suportado como GitHub Actions. Para orientações adicionais: SEC11-BP06: Implantar software programaticamente e DL.CS.2: Assinar artefatos de código após cada build.

    Escanear dependências ao longo do ciclo de vida de desenvolvimento

    A AWS disponibiliza serviços para escanear dependências continuamente, do desenvolvimento à implantação:

    • No desenvolvimento: O Kiro pode realizar análise de composição de software durante revisões de código para identificar código de terceiros vulnerável.
    • Em repositórios de código e pipelines: O Amazon Inspector escaneia código próprio, dependências de terceiros e Infraestrutura como Código (IaC) em busca de vulnerabilidades.
    • Para imagens de contêiner: O Amazon Inspector fornece varredura contínua de vulnerabilidades em imagens no Amazon ECR. Também pode ser integrado diretamente em pipelines CI/CD para escanear imagens antes de serem enviadas ao ECR ou implantadas.

    Scanners de vulnerabilidade tradicionais focam em CVEs conhecidos — vulnerabilidades divulgadas publicamente com identificadores atribuídos. Ataques à cadeia de suprimentos como o Shai-Hulud envolvem pacotes maliciosos que funcionam como zero-days: são intencionalmente criados por agentes de ameaça e explorados ativamente antes de um CVE ser atribuído. Scanners tradicionais baseados em bancos de dados de CVE não detectarão esses pacotes até que sejam formalmente identificados e catalogados, o que pode levar dias ou semanas.

    Detectar essas ameaças requer análise comportamental em escala e colaboração da comunidade, não apenas correspondência estática de assinaturas. A escala operacional da AWS — com inteligência de ameaças de fontes como MadPot e dados de resposta a incidentes de milhões de clientes — permite a detecção de comportamento suspeito de pacotes em múltiplos ambientes simultaneamente.

    Quando um pacote recém-publicado exibe comportamento de coleta de credenciais em múltiplas contas de clientes em poucas horas após a publicação, esse sinal entre contas permite identificação rápida. Essas descobertas são contribuídas para bancos de dados mantidos pela comunidade como o OpenSSF Malicious Packages Repository, que atribui um identificador formal (MAL-ID) e o compartilha com a comunidade de segurança. Para a campanha de token farming do tea.xyz, o tempo médio entre submissão e identificação formal foi de aproximadamente 30 minutos.

    Um modelo de ameaça relacionado importante é o pacote “dorminhoco” (sleeper package): um pacote que aparenta ser benigno na publicação e ativa comportamento malicioso apenas após um atraso ou condição de gatilho. A análise estática sozinha é insuficiente para capturar esses pacotes porque o payload malicioso não está presente ou ativo no momento da instalação. A análise comportamental do Amazon Inspector é projetada especificamente para detectar essa classe de ameaça.

    Listas de Materiais de Software (SBOMs) nos formatos SPDX ou CycloneDX permitem avaliar rapidamente a exposição durante incidentes. No incidente Shai-Hulud, os pacotes comprometidos (MAL-2025-46974 e CVE-2025-59144) foram identificados precocemente, fornecendo achados acionáveis para remediação rápida. Para orientações adicionais: SEC11-BP02: Automatizar testes ao longo do ciclo de vida de desenvolvimento e lançamento.

    Configurar logging e monitoramento

    A visibilidade sobre atividades é essencial para detectar comportamento anômalo precocemente. As recomendações incluem:

    • Habilitar logging de aplicações e serviços
    • Centralizar e monitorar logs entre contas
    • Usar o GuardDuty para monitorar continuamente atividade maliciosa e chamadas de API anômalas
    • Agregar achados com o AWS Security Hub e impor boas práticas de configuração com o AWS Config

    O logging do CloudTrail fornece trilhas de auditoria para acesso a credenciais e atividade de API. Ao responder a incidentes de cadeia de suprimentos, deve-se revisar logs do CloudTrail para eventos específicos que indicam comprometimento de credenciais ou atividade maliciosa:

    • Chamadas sts:AssumeRole de endereços IP ou regiões inesperadas
    • Chamadas secretsmanager:GetSecretValue ou ssm:GetParameter de fontes desconhecidas
    • Chamadas ecr:PutImage de estações de trabalho de desenvolvedores, contornando pipelines CI/CD
    • Chamadas lambda:UpdateFunctionCode fora de janelas normais de implantação
    • Chamadas iam:CreateAccessKey seguidas de atividade imediata de API
    • Chamadas codecommit:GitPush ou codebuild:StartBuild de endereços IP incomuns

    Quando combinado com regras do Amazon EventBridge, é possível disparar respostas automatizadas quando o Amazon Inspector detecta pacotes maliciosos ou quando esses padrões incomuns de acesso a credenciais ocorrem. Para orientações adicionais: SEC04: Detecção.

    Arquitetura de defesa completa com as camadas de prevenção, controle, verificação, detecção e resposta — fonte: Aws

    Boas práticas adicionais

    O Pilar de Segurança do Well-Architected Framework também fornece boas práticas organizacionais aplicáveis à melhoria de processos de segurança em todas as dimensões da organização. Práticas relevantes incluem: SEC11-BP01: Treinar para segurança de aplicações; SEC11-BP08: Construir um programa que incorpore ownership de segurança em equipes de workload; e SEC10: Resposta a Incidentes.

    Conclusão

    Incidentes recentes como Shai-Hulud, Chalk/Debug e tea.xyz refletem esforços contínuos de agentes de ameaça para atacar registros de pacotes, pipelines CI/CD e credenciais de desenvolvedores visando maior superfície de ataque e propagação. Uma única conta de mantenedor comprometida ou pacote malicioso pode se propagar simultaneamente em milhares de ambientes de consumidores.

    Os controles descritos neste artigo foram projetados com esse modelo de ameaça em mente: credenciais temporárias limitam o valor de tokens roubados; gerenciamento centralizado de dependências e bloqueio de upstream reduzem a superfície de ataque no nível do registro; assinatura de artefatos garante que mesmo se um pipeline de build for comprometido, artefatos não assinados não alcancem produção; e varredura de dependências ao longo do ciclo de vida do software ajuda a identificar pacotes comprometidos precocemente. Cada camada estreita a janela de oportunidade para um agente de ameaça.

    Para aprofundar

    Fonte

    Well-architected best practices for software supply chain security (https://aws.amazon.com/blogs/security/well-architected-best-practices-for-software-supply-chain-security/)

  • Conheça o AWS CIRT: o time de resposta a incidentes de segurança da AWS

    O que é o AWS CIRT?

    A Amazon Web Services (AWS) mantém um time global especializado em resposta a incidentes de segurança chamado AWS CIRT — sigla para Customer Incident Response Team (Equipe de Resposta a Incidentes de Clientes). Esse time opera 24 horas por dia, 7 dias por semana, e é composto por engenheiros de segurança que atuam diretamente em eventos ativos nos ambientes dos clientes.

    É importante entender o escopo de atuação do AWS CIRT dentro do Modelo de Responsabilidade Compartilhada da AWS: o time foca no lado do cliente — ou seja, na segurança dentro da nuvem, não na infraestrutura física gerenciada pela própria AWS. Quando um cliente enfrenta acesso não autorizado, exfiltração de dados ou ransomware em seu ambiente AWS, é exatamente aí que o CIRT entra em ação.

    Como acionar o suporte em caso de incidente ativo

    Se você está passando por um evento de segurança ativo agora, o caminho mais direto é abrir um chamado de suporte. Veja como fazer isso corretamente:

    Abrir o chamado a partir da conta comprometida permite que a AWS confirme a titularidade da conta e gere um número de acompanhamento. Se você tiver um time de conta (TAM, Account Manager ou Solutions Architect), pode acionar essa equipe para iniciar uma escalada. E caso tenha perdido o acesso à sua conta, ainda é possível enviar uma solicitação de assistência por outro canal.

    O que o AWS CIRT faz durante um engajamento

    Durante um atendimento, o AWS CIRT concentra sua análise nos logs de serviços AWS e no plano de controle da nuvem. As principais fontes utilizadas são AWS CloudTrail, Amazon VPC Flow Logs e findings do Amazon GuardDuty. A partir dessas fontes, o time realiza triagem, análise e contenção do incidente, além de oferecer recomendações para evitar recorrências.

    Vale destacar um ponto importante: para investigações que vão além do plano de controle AWS — como análise de sistema operacional, memória ou revisão de código de aplicação — a recomendação é complementar o suporte do CIRT com um parceiro especializado da AWS em forense digital e resposta a incidentes (DFIR).

    Catálogo de Técnicas de Ameaças para AWS (TTC)

    Um dos recursos mais valiosos desenvolvidos pelo AWS CIRT é o Threat Technique Catalog for AWS (TTC) — Catálogo de Técnicas de Ameaças para AWS. O TTC nasceu como uma referência interna: o time precisava registrar e compartilhar os padrões que se repetiam entre os engajamentos, evitando que a mesma análise fosse refeita do zero a cada novo caso. Com o tempo, ficou evidente que esse conhecimento seria valioso para todos os clientes, e o catálogo foi tornado público.

    O TTC é baseado na MITRE ATT&CK Cloud Matrix e documenta táticas, técnicas e procedimentos (TTPs) de agentes de ameaça específicos para ambientes AWS, com orientações de detecção e mitigação para cada entrada. É possível filtrar por serviços AWS presentes no seu ambiente para focar no que é mais relevante para a sua realidade. As descobertas do TTC também alimentam a lógica de detecção de serviços como o Amazon GuardDuty, fortalecendo as proteções automatizadas dos clientes.

    Ferramentas open source disponibilizadas pelo CIRT

    Além do catálogo de ameaças, o AWS CIRT abriu o código de diversas ferramentas desenvolvidas internamente para resolver problemas recorrentes nos engajamentos. Essas ferramentas complementam — e não substituem — o conjunto de segurança já existente no seu ambiente. Para uma visão abrangente de como estruturar um programa de resposta a incidentes, o ponto de partida recomendado é o Guia de Resposta a Incidentes de Segurança da AWS.

    Workshops práticos abertos ao público

    O AWS CIRT também mantém cinco workshops públicos, atualizados regularmente para simular eventos de segurança atuais. Os temas cobertos são: uso não autorizado de credenciais IAM, ransomware no Amazon S3, cryptomining, SSRF no IMDSv1 e ferramentas de preparação para resposta a incidentes.

    Para participar, basta ter uma conta AWS e conexão com a internet. Os workshops são construídos com base nos mesmos cenários que o time usa internamente para treinamento — a ideia é tornar esse aprendizado acessível para qualquer profissional que queira se preparar melhor para resposta a incidentes na nuvem.

    Como entrar em contato com o AWS CIRT

    Qualquer cliente AWS pode acionar o CIRT por meio de um chamado de suporte, independentemente do plano contratado. Clientes que possuem um time de conta dedicado também podem iniciar uma escalada diretamente por esse canal. Para clientes com Enterprise Support ou Unified Operations, há ainda a opção de contratar o AWS Security Incident Response, um serviço gerenciado voltado para triagem e resposta a eventos de segurança.

    Para feedbacks ou dúvidas, o CIRT pode ser contactado pelo e-mail aws-cirt@amazon.com. Por fim, recomenda-se também assinar os AWS Security Bulletins via feed RSS para receber notificações sobre eventos de segurança nos serviços AWS.

    Fonte

    Welcoming the AWS Customer Incident Response Team (https://aws.amazon.com/blogs/security/welcoming-the-aws-customer-incident-response-team/)

  • Amazon GuardDuty Malware Protection para AWS Backup agora suporta backups contínuos do S3

    O que foi anunciado

    A AWS anunciou a expansão do Amazon GuardDuty Malware Protection for AWS Backup com suporte a backups contínuos do Amazon S3. Com essa novidade, equipes de segurança e operações podem escanear backups contínuos do S3 em busca de malware e identificar, ao longo de toda a linha do tempo de backup, quais pontos estão limpos e seguros para uma eventual recuperação.

    O que muda na prática

    Antes dessa atualização, a proteção contra malware do GuardDuty para o AWS Backup não alcançava os backups contínuos do S3 — um tipo de backup que captura alterações de forma incremental e permite restaurar dados para qualquer ponto no tempo. Agora, essa lacuna foi preenchida.

    Com o novo suporte, é possível:

    • Habilitar varreduras completas ou incrementais de malware para backups contínuos do S3 diretamente dentro do plano de backup;
    • Executar varreduras sob demanda até qualquer ponto de restauração disponível;
    • Consultar o status da varredura em qualquer ponto da linha do tempo do backup contínuo por meio da nova API GetPITRMalwareScanResults — o que permite verificar se um determinado momento de recuperação está livre de ameaças antes de iniciar a restauração.

    Por que isso importa

    Backups contínuos são amplamente usados por equipes que precisam de baixa tolerância à perda de dados. O problema é que, sem verificação de integridade contra malware, um backup contínuo pode estar preservando arquivos comprometidos — e uma restauração a partir desse ponto poderia reintroduzir a ameaça no ambiente. Com essa integração, é possível garantir que o ponto de restauração escolhido é realmente seguro antes de acionar qualquer processo de recuperação.

    Disponibilidade

    O suporte a backups contínuos do S3 está disponível em todas as regiões da AWS onde o Amazon GuardDuty Malware Protection for AWS Backup já era suportado. Para começar a usar, basta acessar o console do AWS Backup, ou utilizar a API ou a Interface de Linha de Comando (CLI). Para mais detalhes técnicos, a AWS disponibiliza a documentação do AWS Backup e a documentação do Amazon GuardDuty Malware Protection.

    Fonte

    Amazon GuardDuty Malware Protection for AWS Backup supports Amazon S3 continuous backups (https://aws.amazon.com/about-aws/whats-new/2026/05/amazon-guardduty-aws-backup-s3-continuous/)

  • AgentWatch: monitoramento proativo da AWS com agentes ambientes

    O problema do monitoramento reativo

    Quem trabalha com operações em nuvem conhece bem o ciclo: alarmes do Amazon CloudWatch disparando, erros acumulando no AWS Lambda sem que ninguém perceba, e degradação de performance no Amazon Elastic Compute Cloud (Amazon EC2) que só vira problema quando o cliente liga reclamando. O time passa o dia alternando entre dashboards, triando alertas e investigando incidentes que já impactaram usuários — e o resultado é engenheiro de plantão esgotado, débito técnico crescendo e metas de Acordo de Nível de Serviço (SLA) sendo perdidas.

    A raiz do problema é estrutural: as ferramentas de monitoramento atuais exigem que alguém esteja constantemente consultando, analisando e decidindo o que merece atenção. É um modelo que não escala. É nesse contexto que a AWS apresentou o AgentWatch.

    O que são agentes ambientes?

    Agentes ambientes representam uma mudança de paradigma em relação aos sistemas de IA tradicionais. Em vez de aguardar uma consulta direta, esses agentes escutam fluxos de eventos continuamente, respondem de forma dinâmica e processam múltiplas tarefas em paralelo — tudo isso reduzindo a carga operacional sobre as pessoas. Eles monitoram sem interrupção, mas envolvem humanos apenas nos momentos em que o julgamento humano é realmente necessário.

    Para infraestrutura AWS, isso significa que um agente ambiente pode acompanhar recursos continuamente, identificar tendências e entregar inteligência acionável sem que a equipe precise abrir um dashboard manualmente ou vasculhar logs.

    Apresentando o AgentWatch

    O AgentWatch é um agente de monitoramento ambiente construído sobre o Modelo de Linguagem de Grande Escala (LLM) do Amazon Bedrock e implantado usando o Amazon Bedrock AgentCore Runtime — um ambiente de hospedagem serverless e seguro, criado especificamente para executar agentes de IA em escala. Com o AgentCore Runtime, agentes são disponibilizados como endpoints HTTP que podem ser chamados programaticamente, enquanto autenticação, escalabilidade e gerenciamento de infraestrutura são tratados automaticamente.

    A solução implementa um modelo híbrido: algumas tarefas são totalmente autônomas (como monitorar utilização de recursos e fornecer informações de baixo risco), enquanto outras exigem aprovação humana, como analisar causas de alarmes e implementar correções. O Slack funciona como interface principal, onde o agente posta relatórios e onde a equipe pode interagir com ele sob demanda.

    Três padrões de supervisão humana

    Supervisão humana no ciclo de decisão (HITL — Human-in-the-Loop) é fundamental para construir agentes ambientes confiáveis. O AgentWatch implementa três padrões que equilibram autonomia com controle adequado:

    Padrão de Notificação (Notify)

    A cada 15 minutos (intervalo parametrizável via MonitoringSchedule rate, com opções de 5, 10, 30 ou 60 minutos), o AgentWatch gera um relatório de monitoramento cobrindo alarmes do CloudWatch, problemas críticos e saúde dos recursos em múltiplas contas AWS. O agente posta esses relatórios em um canal do Slack, mantendo a equipe informada sem exigir ação imediata. O intervalo de 15 minutos foi escolhido para equilibrar detecção ágil de problemas com uso razoável de API — rápido o suficiente para capturar issues, mas sem gerar fadiga de alertas.

    Padrão de Questionamento (Question)

    Quando o AgentWatch detecta um alarme crítico mas não tem clareza suficiente para decidir entre remediação automatizada ou escalada para um engenheiro de plantão, ele posta uma pergunta no Slack pedindo orientação. Esse comportamento imita o que um Engenheiro de Confiabilidade de Site (SRE) faria ao consultar um administrador sênior antes de fazer mudanças significativas em sistemas de produção.

    Padrão de Revisão (Review)

    Para ações potencialmente impactantes — como modificar recursos AWS, ajustar políticas de escalabilidade ou alterar thresholds de alarmes — o agente apresenta a ação proposta no Slack junto com contexto e justificativa. A equipe pode aprovar a ação, rejeitá-la ou editar os parâmetros antes da execução.

    Arquitetura e implementação

    O ciclo de monitoramento do AgentWatch começa com o Amazon EventBridge disparando uma função AWS Lambda a cada 15 minutos via regra cron. Essa função Lambda autentica com o Amazon Cognito usando credenciais de cliente Autorização Aberta 2.0 (OAuth 2.0) para obter um token de acesso, e então chama o AgentCore Runtime com o prompt de monitoramento.

    O AgentCore instancia um agente LangChain — framework para construir aplicações baseadas em modelos de linguagem — equipado com sete ferramentas especializadas de monitoramento para infraestrutura AWS. Essas ferramentas coletam sistematicamente dados de dashboards, grupos de logs, logs de serviços, padrões de erro, status de alarmes e métricas entre contas, proporcionando visibilidade abrangente do ambiente.

    Imagem original — fonte: Aws

    Após a coleta, o agente LangChain envia os dados agregados do CloudWatch para o modelo Claude Sonnet do Amazon Bedrock, que transforma as informações brutas de monitoramento em insights contextuais e legíveis por humanos. O resumo inteligente retorna pelo agente até o AgentCore Runtime, volta para a função Lambda, que formata a análise em blocos estruturados do Slack com seções organizadas para análise de logs e status de alarmes.

    A infraestrutura de implantação tem três componentes principais:

    • Função Lambda: camada de orquestração que autentica com o Cognito, chama o endpoint do AgentCore Runtime e formata respostas para o Slack.
    • EventBridge: fornece invocação agendada via regra configurada para disparar a cada 15 minutos.
    • Amazon API Gateway: o Amazon API Gateway expõe a função Lambda como endpoint HTTP integrado ao app Slack via slash commands. Perguntas digitadas no Slack são roteadas para o API Gateway, que aciona o Lambda com a pergunta como prompt.

    Essa arquitetura de duplo acionamento permite dois modos de operação: modo agendado, em que o agente roda autonomamente a cada 15 minutos postando relatórios proativos; e modo sob demanda, em que a equipe faz perguntas específicas via Slack e recebe respostas imediatas para troubleshooting interativo.

    O trecho central do agente tem a seguinte estrutura:

    @app.entrypoint
    def agent_handler(payload: Dict[str, Any]) -> str:
        # Extract prompt and session context
        user_prompt = payload.get("prompt")
        thread_id = payload.get("session_id", "default-session")
    
        # Invoke agent with conversation memory
        result = monitoring_agent.invoke(
            {"messages": [{"role": "user", "content": user_prompt}]},
            {"configurable": {"thread_id": thread_id}}
        )
        return result['messages'][-1].content

    Como funciona na prática

    No modo de monitoramento agendado, o AgentWatch gera e posta relatórios automaticamente a cada 15 minutos, entregando visibilidade contínua da saúde da infraestrutura AWS diretamente no canal do Slack da equipe — sem intervenção manual.

    No modo sob demanda, a equipe usa slash commands do Slack para investigar situações específicas. Exemplos de consultas:

    • /ask What is the status of my CloudWatch alarms?
    • /ask Show me recent errors in my Lambda functions
    • /ask Analyze log patterns for the last hour

    Casos de uso e benefícios

    O AgentWatch entrega valor em múltiplos cenários operacionais. A solução identifica problemas potenciais antes que impactem usuários ao analisar continuamente métricas, logs e alarmes do CloudWatch em toda a infraestrutura AWS. Isso reduz a sobrecarga operacional — a equipe gasta menos tempo em tarefas rotineiras de monitoramento enquanto mantém visibilidade sobre a saúde dos sistemas.

    A integração com Slack melhora a colaboração entre times de desenvolvimento e operações, suportando consultas em linguagem natural e discussões sobre problemas de infraestrutura. Para ambientes corporativos, o suporte multi-conta permite que grandes organizações monitorem infraestruturas AWS distribuídas a partir de um único agente centralizado.

    Como começar

    Para implantar o AgentWatch, é necessário ter uma conta AWS com permissões para CloudWatch, Lambda e EventBridge, um User Pool do Cognito configurado para autenticação OAuth 2.0 e um workspace do Slack com permissões para criar apps. Para desenvolvimento local e customizações, é necessário Python 3.11 ou superior.

    Os comandos de configuração rápida são:

    # Configurar o Provedor de Identidade
    python idp_setup/setup_cognito.py
    
    # Instalar a CLI mais recente do AgentCore
    npm install -g @aws/agentcore
    
    # Criar projeto AgentCore e trazer o código do agente existente
    agentcore create --name AgentWatch --no-agent
    agentcore add agent \
      --name AgentWatch \
      --type byo \
      --code-location . \
      --entrypoint ambient_agent.py \
      --language Python
    
    # Implantar no AgentCore Runtime
    agentcore deploy
    # Implantar infraestrutura
    cd deployment
    ./deploy.sh

    Após a execução do script de implantação, ele fornece a URL do webhook do Slack necessária para a configuração do app. O script automatiza todo o processo: configura o provedor de identidade (Cognito), implanta o agente no AgentCore Runtime e configura a função Lambda, a regra do EventBridge e o API Gateway. As instruções completas estão disponíveis no repositório GitHub.

    Segurança e boas práticas

    O AgentWatch implementa múltiplas camadas de segurança: OAuth 2.0 com Cognito para acesso seguro à API, assunção de papéis do Gerenciamento de Identidade e Acesso (IAM) para permissões granulares entre contas, e o AgentCore Runtime que adiciona capacidades de segurança e conformidade de nível corporativo. Os padrões HITL ajudam a prevenir ações autônomas inadequadas, e o registro de logs fornece trilhas de auditoria e capacidades de troubleshooting.

    Extensões possíveis

    A arquitetura de agente ambiente construída para monitoramento pode ser estendida para outros domínios operacionais:

    • Otimização de custos: adicionar ferramentas para analisar padrões de gastos e recomendar oportunidades de otimização.
    • Monitoramento de segurança: integrar com AWS Security Hub e Amazon GuardDuty para detecção de ameaças.
    • Relatórios de conformidade: automatizar verificações de conformidade via AWS Config e AWS CloudTrail.
    • Análise de performance: aprimorar com monitoramento de performance de aplicações e recomendações de otimização.

    Conclusão

    O AgentWatch representa uma abordagem concreta para sair do ciclo reativo de monitoramento. Ao combinar operações autônomas com supervisão humana adequada, a solução realiza verificações de infraestrutura a cada 15 minutos, entrega relatórios acionáveis no Slack e responde a consultas em linguagem natural sobre o ambiente AWS — tudo isso mantendo a equipe informada e no controle.

    A arquitetura usa os AWS Managed Services (AMS) e o Amazon Bedrock AgentCore Runtime para fornecer uma base escalável e segura para implantação de agentes ambientes. À medida que os agentes de IA se tornam mais sofisticados, arquiteturas como a do AgentWatch tendem a se tornar padrão para equipes que precisam operar com eficiência sem abrir mão do julgamento humano em decisões críticas de infraestrutura.

    Para começar, acesse o AgentWatch no GitHub para instruções completas de implantação e detalhes de implementação.

    Fonte

    AgentWatch: Proactive AWS monitoring with ambient agents (https://aws.amazon.com/blogs/machine-learning/agentwatch-proactive-aws-monitoring-with-ambient-agents/)

  • Do conceito ao app de IA: criando assistentes de pesquisa inteligentes com Strands

    O problema com o desenvolvimento de IA hoje

    Construir um aplicativo de inteligência artificial não deveria exigir um doutorado em aprendizado de máquina nem meses lidando com arquiteturas complexas. Mas é exatamente isso que acontece na prática quando você tenta orquestrar múltiplas chamadas de API, gerenciar o estado de uma conversa e criar agentes capazes de raciocinar de forma autônoma.

    Ideias simples de IA acabam se transformando em projetos enormes, que demandam conhecimento especializado em processamento de linguagem natural e sistemas distribuídos. É nesse contexto que a AWS publicou um tutorial mostrando como o Strands Agents muda esse cenário — permitindo construir um assistente de pesquisa completamente funcional com apenas 30 linhas de código.

    O que é o Strands Agents?

    O Strands Agents é um framework open source que resolve diretamente os desafios do desenvolvimento de IA. Ele oferece uma forma direta de criar agentes inteligentes capazes de realizar tarefas como pesquisa, análise e geração de conteúdo, combinando o poder dos Modelos de Linguagem de Grande Escala (LLMs) com lógica personalizada e APIs via código Python.

    A abordagem do framework é orientada pelo modelo: em vez de hardcoding complexo, ele usa LLMs para raciocínio e planejamento autônomos. Isso significa que você pode criar agentes com apenas um prompt e uma lista de ferramentas, enquanto o LLM cuida da lógica e do uso das ferramentas.

    Entre os principais diferenciais do Strands Agents estão:

    • Arquitetura flexível: suporta desde agentes únicos até redes multi-agente e sistemas hierárquicos.
    • Integração via decorator @tool: permite conectar funções externas e APIs de forma simples.
    • Design agnóstico de modelo: funciona com diferentes provedores de LLM, incluindo Amazon Bedrock, Anthropic e OpenAI.
    • Integração nativa com AWS: conecta-se naturalmente com Amazon Bedrock e AWS Lambda.
    • Pronto para produção: equipes da AWS já utilizam o framework em serviços como Amazon Q e AWS Glue.
    • Licença Apache 2.0: open source com contribuições ativas da comunidade.
    • Respostas em streaming em tempo real: ideal para aplicações interativas que precisam de feedback imediato.

    Para um aprofundamento técnico, a AWS disponibilizou o artigo Strands Agents SDK: um mergulho técnico em arquiteturas de agentes e observabilidade.

    O papel do Kiro nessa equação

    Além do Strands Agents, a AWS apresenta o Kiro, um Ambiente de Desenvolvimento Integrado (IDE) com IA que escreve código para que os desenvolvedores possam focar nas decisões. O Kiro possui um sistema de extensões chamado Kiro Powers, que empacota servidores MCP, arquivos de direcionamento e hooks em unidades reutilizáveis.

    O Strands power, por exemplo, reúne busca na documentação do SDK, guias de introdução e padrões corretos de API para que o Kiro possa estruturar agentes com precisão. Com mais de 50 extensões curadas da AWS, parceiros e da comunidade — cobrindo design, implantação, segurança e observabilidade — a instalação é feita com um clique.

    Pré-requisitos para começar

    Antes de partir para o código, a AWS lista o que você precisa ter configurado:

    Para configurar e fazer login, os comandos são:

    aws configure sso
    aws sso login --profile research-assistant

    Em seguida, é necessário anexar uma política inline de Gerenciamento de Identidade e Acesso (IAM) com escopo reduzido à função ou conjunto de permissões utilizado. Essa política concede apenas as permissões necessárias para o tutorial — invocar o modelo Claude Sonnet via Amazon Bedrock:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "bedrock:InvokeModel",
            "bedrock:Converse"
          ],
          "Resource": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20241022-v2:0"
        }
      ]
    }

    Por fim, adicione o power Build an agent with Strands ao Kiro.

    Construindo o assistente de pesquisa

    O primeiro agente em minutos

    O ponto de partida é instalar o SDK do Strands Agents e o Streamlit no terminal do Kiro:

    pip install strands-agents
    pip install streamlit

    Com isso, já é possível criar o primeiro agente em um arquivo Python chamado research.py:

    from strands import Agent
    
    # Create an agent with default settings
    agent = Agent()
    
    # Ask the agent a question
    agent("Tell me about agentic AI")

    Para executá-lo:

    python -u research.py

    Simples assim. Com essa base estabelecida, o próximo passo é evoluir para uma aplicação web com interface interativa.

    Gerando o assistente completo com o Kiro

    Aqui entra a vantagem do Kiro: usando linguagem natural, é possível descrever os requisitos e deixar o IDE gerar a implementação. O processo consiste em abrir o Kiro, criar um novo arquivo Python (por exemplo, research_assistant.py) e fornecer o seguinte prompt:

    Create a Streamlit research assistant app using strands Agent library with these exact requirements:
    1. App title: "Research Assistant" with subtitle "Enter a topic to get research analysis and recommendations"
    2. Text input field with placeholder "e.g., renewable energy, artificial intelligence"
    3. "Generate Research Report" button that when clicked:
       - Shows spinner with "Researching and analyzing..." message
       - Redirects stdout to prevent terminal output interference (import sys, os and use devnull)
       - Creates Agent() instance
       - Uses this exact prompt template:
         "You are a research assistant. For the topic '{topic}':
         1. Overview of the topic in about 50 words
         2. Find recent 2 articles about {topic} in 20 words each
         3. Things to know relevant to the topic and description as prerequisites in 20 words each
            like if topic is agentic ai then prereq is machine learning and generative ai
         4. 2 key contributors and well known people in this field of research topic including their bio in 25 words each
         5. give relevant 2 urls to read more and any research papers from https://arxiv.org/"
       - Displays response using st.subheader(f"Research Report: {topic}") and st.write(response.message['content'][0]['text'])
       - Restores stdout in finally block
       - Shows warning if no topic entered
    Use try/finally pattern for stdout redirection. Keep code minimal and functional.

    O código gerado pelo Kiro é o seguinte:

    import sys
    import os
    import streamlit as st
    from strands import Agent
    
    st.title("Research Assistant")
    st.write("Enter a topic to get research analysis and recommendations")
    
    topic = st.text_input("Research Topic", placeholder="e.g., renewable energy, artificial intelligence")
    
    if st.button("Generate Research Report"):
        if topic:
            with st.spinner("Researching and analyzing..."):
                old_stdout = sys.stdout
                try:
                    sys.stdout = open(os.devnull, "w")
                    agent = Agent()
                    response = agent(
                        f"You are a research assistant. For the topic '{topic}': "
                        f"1. Overview of the topic in about 50 words "
                        f"2. Find recent 2 articles about {topic} in 20 words each "
                        f"3. Things to know relevant to the topic and description as prerequisites in 20 words each "
                        f"like if topic is agentic ai then prereq is machine learning and generative ai "
                        f"4. 2 key contributors and well known people in this field of research topic including their bio in 25 words each "
                        f"5. give relevant 2 urls to read more and any research papers from https://arxiv.org/"
                    )
                finally:
                    sys.stdout = old_stdout
            st.subheader(f"Research Report: {topic}")
            st.write(response.message["content"][0]["text"])
        else:
            st.warning("Please enter a topic to research.")

    Observação importante: sem uma ferramenta de navegação web, o agente gera URLs a partir do seu conhecimento de treinamento. Esses links podem não refletir os artigos mais recentes. Para recuperação em tempo real, é necessário adicionar um servidor MCP apropriado como ferramenta.

    Executando a aplicação

    No terminal, navegue até o diretório onde o arquivo research_assistant.py foi salvo e execute:

    streamlit run research_assistant.py

    O Streamlit abrirá a interface no navegador. Basta inserir um tópico de interesse e clicar em “Generate Research Report” para receber o relatório de pesquisa.

    Uso responsável de servidores MCP

    O tutorial da AWS traz recomendações importantes sobre o uso de servidores MCP:

    • Fixe o servidor MCP em uma versão ou hash de commit específico (por exemplo, pip install "arxiv-mcp==X.Y.Z").
    • Revise o código-fonte antes de instalar.
    • Para casos de uso em produção, a recomendação é usar a recuperação nativa do Amazon Bedrock (Knowledge Bases/RAG).
    • Para implantações voltadas ao cliente ou entre organizações, passe servidores MCP de terceiros pelo processo de revisão jurídica e de segurança da sua organização.
    • Servidores MCP compartilham os privilégios do processo do agente, incluindo quaisquer credenciais AWS disponíveis. Trate-os como parte do seu perímetro de confiança.
    • Para cargas de trabalho em produção, considere os servidores MCP remotos gerenciados pela AWS via Amazon Bedrock AgentCore, que oferecem isolamento de processo, autenticação centralizada e eliminam a exposição local de credenciais.

    Considerações de segurança para produção

    A AWS reforça que o tutorial é um ponto de partida, e que antes de levar qualquer aplicação baseada nesse padrão para produção, é essencial considerar os seguintes pontos:

    • Valide a entrada do usuário: limite o tamanho do tópico e remova caracteres não imprimíveis antes de passar a string para o agente.
    • Habilite o Amazon Bedrock Guardrails: anexe um guardrail à chamada do modelo para filtragem de injeção de prompt e saídas inadequadas. Saiba mais em Detectar e filtrar conteúdo prejudicial usando o Amazon Bedrock Guardrails.
    • Ative o logging: habilite o registro de invocação de modelos no Amazon Bedrock e os eventos de dados do AWS CloudTrail para bedrock:InvokeModel e bedrock:Converse.
    • Controle de custos: configure um alarme de cota sob demanda no Amazon Bedrock e um limite de consultas por sessão para evitar esgotamento de custos.
    • Classifique dados persistidos: se armazenar histórico de conversas, classifique os dados e remova valores sensíveis antes de gravar.
    • Revise o modelo de responsabilidade compartilhada: consulte o Modelo de Responsabilidade Compartilhada da AWS para entender a divisão entre o que a AWS gerencia e o que é responsabilidade do cliente.

    Além disso, o tutorial alerta que o streamlit run vincula ao endereço 127.0.0.1 por padrão, tornando a interface acessível apenas localmente. Não exponha a aplicação à rede local ou à internet sem adicionar autenticação, proteção contra CSRF e um limite de custo no Amazon Bedrock.

    Conclusão

    O tutorial da AWS demonstra como o Strands Agents, combinado com as capacidades de geração de código do Kiro, permite construir funcionalidades sofisticadas de IA com uma quantidade mínima de código. O framework reduz a complexidade do desenvolvimento de IA por meio de uma criação de agentes intuitiva, enquanto o Kiro aumenta a produtividade do desenvolvedor por meio de codificação assistida por IA.

    As aplicações resultantes são ao mesmo tempo poderosas e fáceis de manter, com modificações personalizadas feitas rapidamente via engenharia de prompt. Para quem quer explorar mais sobre o Strands Agents, a AWS disponibilizou o artigo introdutório Apresentando o Strands Agents, um SDK de Agentes de IA Open Source.

    Fonte

    From idea to AI app: Creating intelligent research assistants with Strands (https://aws.amazon.com/blogs/machine-learning/from-idea-to-ai-app-creating-intelligent-research-assistants-with-strands/)