Blog

  • Instâncias Amazon EC2 P6-B300 chegam à Região US East (N. Virginia)

    Mais uma região recebe as instâncias P6-B300

    A AWS anunciou, em 6 de maio de 2026, que as instâncias Amazon EC2 P6-B300 passaram a estar disponíveis na região US East (N. Virginia). Com isso, essa família de instâncias de alta performance para cargas de trabalho de Inteligência Artificial (IA) amplia ainda mais sua cobertura geográfica dentro da infraestrutura da AWS.

    O que são as instâncias P6-B300?

    As instâncias P6-B300 são equipadas com 8 GPUs NVIDIA Blackwell Ultra e foram projetadas para atender às demandas mais intensas de treinamento e inferência de modelos de IA de grande escala. Confira as especificações técnicas principais:

    • 2,1 TB de memória de GPU de alta largura de banda
    • 6,4 Tbps de rede EFA (Elastic Fabric Adapter)
    • 300 Gbps de throughput dedicado ENA (Elastic Network Adapter)
    • 4 TB de memória de sistema

    Como a P6-B300 se compara à P6-B200?

    Em relação à geração anterior, a P6-B200, a nova P6-B300 entrega ganhos expressivos em todas as frentes críticas para workloads de IA:

    • 2x mais largura de banda de rede
    • 1,5x mais memória de GPU
    • 1,5x mais TFLOPS de GPU (medido em FP4, sem esparsidade)

    Esses avanços se traduzem diretamente em tempos de treinamento mais rápidos e maior throughput de tokens para aplicações de IA — dois fatores decisivos para equipes que trabalham com modelos de fundação (FMs) e Modelos de Linguagem de Grande Escala (LLMs) com trilhões de parâmetros.

    Para quais casos de uso as P6-B300 são indicadas?

    Segundo a AWS, as instâncias P6-B300 são especialmente adequadas para:

    • Treinamento de modelos de fundação (FMs) de grande porte
    • Implantação de LLMs com técnicas sofisticadas de inferência
    • Workloads de IA que exigem alta capacidade de memória e largura de banda de rede elevada

    Disponibilidade e tamanho de instância

    As instâncias P6-B300 estão disponíveis exclusivamente no tamanho p6-b300.48xlarge e podem ser provisionadas nas seguintes regiões da AWS:

    • US West (Oregon)
    • AWS GovCloud (US-East)
    • US East (N. Virginia) — novidade desta semana

    Para conhecer todos os detalhes técnicos e começar a usar as instâncias P6-B300, a AWS disponibiliza a documentação completa em Amazon EC2 P6 — página oficial das instâncias.

    Fonte

    Amazon EC2 P6-B300 instances are now available in the US East (N. Virginia) Region (https://aws.amazon.com/about-aws/whats-new/2026/05/amazon-ec2-p6-b300-us-east)

  • Novo guia de conformidade disponível: ISO/IEC 42001:2023 na AWS

    A AWS disponibiliza guia prático para conformidade com a ISO/IEC 42001:2023

    A AWS acaba de lançar um novo guia de conformidade dedicado à norma ISO/IEC 42001:2023 — um padrão internacional que define requisitos para a criação e operação de um Sistema de Gestão de Inteligência Artificial, conhecido pela sigla em inglês AIMS (Artificial Intelligence Management System). O material foi desenvolvido para ajudar organizações que utilizam a nuvem AWS a estruturar sua governança de IA de forma alinhada a um dos frameworks mais reconhecidos globalmente nessa área.

    Com o crescimento acelerado do uso de cargas de trabalho de IA e IA generativa na nuvem, adotar padrões como a ISO/IEC 42001:2023 tornou-se um passo relevante para fortalecer a governança, o gerenciamento de riscos e as práticas de IA responsável dentro das organizações. O novo guia da AWS chega justamente para preencher essa lacuna prática: traduzir os requisitos da norma em ações concretas dentro do ambiente AWS.

    Para quem é este guia?

    O documento foi pensado para um público técnico e estratégico ao mesmo tempo. Entre os perfis contemplados estão:

    • Arquitetos de nuvem
    • Engenheiros de IA/ML (Machine Learning)
    • Equipes de segurança
    • Líderes de conformidade
    • Profissionais de DevOps

    Em outras palavras, qualquer pessoa envolvida na implementação, operação ou auditoria de sistemas de IA na AWS pode se beneficiar do conteúdo.

    O que o guia cobre?

    O material da AWS oferece uma visão abrangente de como integrar os serviços da plataforma a um AIMS em conformidade com a ISO 42001:2023. A seguir, os principais blocos de conteúdo presentes no guia:

    Visão geral da norma ISO/IEC 42001:2023

    O guia explica o que é a ISO/IEC 42001:2023, como ela se relaciona com a família mais ampla de padrões ISO voltados para IA, e o que são seus Anexos. Essa introdução é especialmente útil para equipes que ainda estão se familiarizando com o framework.

    Integração com a arquitetura de segurança da AWS e o Modelo de Responsabilidade Compartilhada

    Um ponto central do guia é a aplicação do Modelo de Responsabilidade Compartilhada da AWS no contexto de cargas de trabalho de IA. Embora a AWS forneça uma infraestrutura de nuvem segura e em conformidade, com capacidades nativas de IA responsável, as organizações continuam responsáveis por definir o escopo do seu AIMS, implementar os controles necessários e demonstrar conformidade durante as auditorias de certificação.

    Contexto e escopo para estabelecer um AIMS na AWS

    O guia orienta sobre como definir os limites dos sistemas de IA dentro do ambiente AWS — uma etapa fundamental para qualquer organização que queira estabelecer formalmente seu AIMS.

    Mapeamento das cláusulas 4 a 10 da ISO 42001:2023 para serviços AWS

    Esta é uma das partes mais práticas do documento. O guia mapeia cada cláusula da norma — que abrange contexto organizacional, liderança, planejamento, suporte, operação, avaliação de desempenho e melhoria — para serviços e capacidades arquiteturais específicos da AWS. Isso facilita muito a vida de quem precisa implementar os controles no dia a dia.

    Orientações para os controles do Anexo A (A.2 a A.10)

    O guia também detalha como implementar os controles específicos do Anexo A da norma, que incluem temas como:

    • Políticas de IA
    • Organização interna
    • Recursos para sistemas de IA
    • Avaliações de impacto
    • Gestão do ciclo de vida de sistemas de IA
    • Governança de dados
    • Transparência para partes interessadas
    • Uso de sistemas de IA
    • Relacionamento com terceiros e clientes

    Coleta de evidências e preparação para auditorias

    O material traz recomendações práticas para coleta de evidências, documentação e preparação para auditorias de certificação utilizando ferramentas nativas da AWS. O objetivo é ajudar as equipes a manterem visibilidade sobre seus sistemas de IA, melhorarem a consistência operacional e chegarem prontas para uma auditoria.

    Automação e infraestrutura como código para conformidade com IA

    Por fim, o guia apresenta boas práticas para operacionalizar as atividades de conformidade de IA por meio de automação e infraestrutura como código (IaC — Infrastructure as Code), reduzindo o esforço manual e aumentando a rastreabilidade.

    Como usar o guia na prática

    A AWS recomenda que as organizações utilizem o guia para mapear as cláusulas da ISO 42001 e os controles do Anexo A para o seu ambiente AWS, automatizar a coleta de evidências e reduzir o esforço envolvido na preparação para uma auditoria de certificação.

    O Guia de Conformidade ISO/IEC 42001:2023 na AWS está disponível para download gratuitamente. Para organizações que precisam de suporte adicional, a AWS também disponibiliza o AWS Security Assurance Services como canal de contato para assistência especializada.

    Por que isso importa para o mercado brasileiro?

    Para as equipes brasileiras que trabalham com IA na nuvem, este guia representa um recurso valioso — especialmente em um momento em que a governança de IA começa a ganhar atenção regulatória e estratégica também no Brasil. Ter um material estruturado que conecta um padrão internacional reconhecido como a ISO/IEC 42001:2023 aos serviços concretos da AWS facilita enormemente a jornada de conformidade, seja para obter uma certificação formal ou simplesmente para amadurecer as práticas internas de IA responsável.

    Fonte

    New compliance guide available: ISO/IEC 42001:2023 on AWS (https://aws.amazon.com/blogs/security/new-compliance-guide-available-iso-iec-420012023-on-aws/)

  • Dashboards de Análise de Tráfego de IA para o AWS WAF: o que você precisa saber

    O crescimento do tráfego de IA e o desafio de entendê-lo

    Se você opera aplicações web na AWS, já deve ter percebido que o tráfego que chega aos seus endpoints não é mais majoritariamente humano. Agentes de IA, crawlers de pesquisa, bots de coleta de dados para treinamento de modelos — tudo isso passou a representar, segundo a própria AWS, entre 30% e 60% do tráfego total de muitas organizações. E esse número só tende a crescer.

    O problema é que as ferramentas tradicionais de gerenciamento de bots não foram projetadas para lidar com as nuances do tráfego gerado por IA. Saber que “existe tráfego automatizado” não é suficiente. As equipes precisam responder perguntas muito mais específicas: quais organizações de IA estão acessando meu conteúdo? Com qual intenção? Quais endpoints são os mais visados? O padrão mudou nas últimas semanas? E, principalmente: como transformar essa visibilidade em decisões de negócio concretas?

    Foi para endereçar exatamente esse gap que a AWS anunciou os dashboards de Análise de Tráfego de IA para o AWS WAF.

    O que são os dashboards de Análise de Tráfego de IA

    O novo recurso está disponível diretamente no console do AWS WAF, dentro dos pacotes de proteção — também conhecidos como Listas de Controle de Acesso Web (web ACLs). Ele oferece visibilidade especializada sobre a atividade de bots e agentes de IA que interagem com suas aplicações.

    Com esse lançamento, o AWS WAF Bot Control expande sua cobertura de detecção para rastrear mais de 650 bots e agentes únicos, tornando-se um dos catálogos de detecção de bots de IA mais abrangentes disponíveis no mercado — e com previsão de crescimento contínuo para acompanhar o ritmo das mudanças do setor.

    Os dashboards vão além das métricas tradicionais de segurança. O foco aqui é entregar insights específicos para tráfego de IA, ajudando equipes a entender e gerenciar esse segmento crítico de forma estratégica.

    Principais capacidades do dashboard

    Identificação e verificação de bots

    O dashboard exibe quais bots de IA estão acessando suas aplicações, incluindo o nome do bot, a organização responsável e o status de verificação. Isso permite distinguir rapidamente entre agentes legítimos de organizações conhecidas e atividades potencialmente suspeitas.

    Classificação por intenção

    Além de identificar o bot, o recurso categoriza o padrão de comportamento por intenção — se o agente está realizando crawling para indexação em mecanismos de busca, conduzindo pesquisas, coletando dados para treinamento de modelos ou executando outras atividades. Essa classificação é fundamental para alinhar as políticas de acesso com os objetivos de negócio.

    Análise de padrões de acesso

    É possível identificar quais URLs e endpoints são mais frequentemente acessados por agentes de IA. Essa visibilidade ajuda a entender quais conteúdos têm mais valor para as organizações de IA e a otimizar a infraestrutura de acordo com essa demanda.

    Tendências temporais e análise histórica

    O dashboard permite acompanhar padrões de atividade de bots por hora do dia e analisar tendências históricas dos últimos 14 dias. Com isso, é possível detectar anomalias, entender os períodos de pico e identificar padrões emergentes no tráfego de IA.

    Detalhamento por organização

    O volume de tráfego é segmentado por organização proprietária do bot, oferecendo visibilidade clara sobre quais empresas de IA estão acessando seu conteúdo e em qual escala.

    Como funciona na prática

    Os dashboards de Análise de Tráfego de IA se integram ao AWS WAF Bot Control para bots comuns, utilizando o mesmo mecanismo de avaliação de tráfego já existente. As visualizações são baseadas em resumos em tempo quase real, gerados a partir de métricas do Amazon CloudWatch coletadas enquanto o AWS WAF avalia o tráfego web.

    Para acessar o dashboard, o caminho é simples:

    • Acesse seu pacote de proteção (web ACL) no Console de Gerenciamento da AWS, na seção do AWS WAF.
    • Selecione a aba AI Traffic Analysis.
    • Aplique filtros por organização de bot, tipo de intenção ou status de verificação, conforme necessário.
    • Analise as visualizações completas sobre identidade dos bots, classificação de intenção, padrões de acesso e tendências temporais.

    O dashboard é populado automaticamente assim que o pacote de proteção começa a receber tráfego de bots de IA — sem necessidade de configuração adicional.

    Da visibilidade à ação

    Ter os dados é apenas o primeiro passo. O que torna esse recurso relevante é a capacidade de transformar a visibilidade em decisões concretas. Com os insights do dashboard, as equipes conseguem:

    • Tomar decisões de acesso embasadas: entender a intenção do bot antes de implementar regras de permissão ou bloqueio.
    • Otimizar investimento em infraestrutura: identificar endpoints de alto tráfego e planejar capacidade de forma mais eficiente — avaliando se os custos de infraestrutura estão gerando valor de negócio ou sendo consumidos sem contrapartida.
    • Implementar estratégias de acesso em camadas: servir conteúdo ou precificação diferenciados com base na verificação e intenção do agente de IA.
    • Detectar anomalias e padrões emergentes: identificar comportamentos incomuns que possam indicar ameaças ou oportunidades.
    • Apoiar estratégia entre times: fornecer dados concretos para equipes de segurança, produto e negócios tomarem decisões sobre políticas de acesso e monetização de tráfego de IA.
    • Personalizar observabilidade: as métricas de análise de tráfego de IA são emitidas como métricas do CloudWatch, permitindo que as organizações construam alertas proativos ou ações de negócio como ajustes de rate limit.

    Monetização de tráfego de IA na borda

    Para quem quer ir além da visibilidade e explorar modelos de monetização, a AWS disponibilizou uma arquitetura de referência que combina o Bot Control do WAF com controle de tráfego e monetização de conteúdo usando o protocolo de pagamento x402. O projeto sample-x402-content-monetization-with-cloudfront-and-waf no GitHub demonstra como classificar tráfego de bots de IA, aplicar políticas de precificação por caminho e processar pagamentos na borda usando o Amazon CloudFront e o Lambda@Edge — sem alterações nas origens existentes.

    Vale ressaltar que esse projeto do AWS Samples é um exemplo educativo, não um produto com suporte oficial. Qualquer aplicação que o utilize deve ser devidamente testada, protegida e otimizada conforme os padrões de segurança da organização antes de ir para produção. Além disso, o deploy provisiona recursos que geram cobranças adicionais na AWS.

    Acesso programático via API

    Além do dashboard no console, a AWS disponibilizou acesso programático aos dados de tráfego de bots de IA por meio da ação GetTopPathStatisticsByTraffic, disponível na API do AWS WAF, nos SDKs da AWS e na Interface de Linha de Comando (CLI) da AWS.

    Essa ação retorna os principais caminhos de URI por volume de tráfego de bots para uma web ACL e janela de tempo específicas. Cada caminho na resposta inclui contagens de requisições, percentuais de tráfego e os principais bots que o acessaram. É possível filtrar por categoria de bot (por exemplo, ai), organização ou nome específico do bot, além de usar um prefixo de caminho URI para detalhar áreas específicas da aplicação.

    O exemplo abaixo, usando a CLI da AWS, mostra como consultar os principais caminhos acessados por bots de IA para uma web ACL específica:

    aws wafv2 get-top-path-statistics-by-traffic \
      --web-acl-arn "arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \
      --scope "CLOUDFRONT" \
      --time-window StartTime=2026-02-25T00:00:00Z,EndTime=2026-02-26T00:00:00Z \
      --bot-category "ai" \
      --uri-path-prefix "/api/" \
      --limit 5 \
      --number-of-top-traffic-bots-per-path 3

    Um exemplo de resposta:

    {
      "TopPathStatistics": [
        {
          "Path": "/api/v1/products",
          "RequestCount": 145320,
          "TrafficPercentage": 32.4,
          "TopBots": [
            {
              "BotName": "ExampleBotA",
              "Organization": "ExampleOrgA",
              "RequestCount": 98210
            },
            {
              "BotName": "ExampleBotB",
              "Organization": "ExampleOrgB",
              "RequestCount": 47110
            },
            {
              "BotName": "ExampleBotC",
              "Organization": "ExampleOrgC",
              "RequestCount": 0
            }
          ]
        },
        {
          "Path": "/api/v2/search",
          "RequestCount": 87650,
          "TrafficPercentage": 19.5,
          "TopBots": [
            {
              "BotName": "ExampleBotA",
              "Organization": "ExampleOrgA",
              "RequestCount": 52300
            },
            {
              "BotName": "ExampleBotC",
              "Organization": "ExampleOrgC",
              "RequestCount": 35350
            },
            {
              "BotName": "ExampleBotB",
              "Organization": "ExampleOrgB",
              "RequestCount": 0
            }
          ]
        }
      ],
      "TimeWindow": {
        "StartTime": "2026-02-25T00:00:00Z",
        "EndTime": "2026-02-26T00:00:00Z"
      }
    }

    O acesso programático abre uma série de possibilidades:

    • Construir dashboards personalizados ou integrar os dados de tráfego de IA a plataformas de observabilidade existentes.
    • Automatizar alertas quando caminhos específicos apresentarem picos incomuns de tráfego de bots.
    • Alimentar pipelines de inteligência de negócios para decisões de monetização de conteúdo.
    • Investigar e depurar atividade de bots de IA em janelas de tempo específicas para identificar a causa raiz de anomalias ou incidentes.

    Para informações detalhadas de uso, consulte a referência da API GetTopPathStatisticsByTraffic e a referência do comando AWS CLI. Essa API complementa naturalmente a abordagem via métricas do CloudWatch, oferecendo tanto fluxos de métricas em tempo real quanto análises de caminhos sob demanda para um gerenciamento completo do tráfego de IA.

    Disponibilidade e preços

    Para clientes nos planos de preço fixo do CloudFront, o dashboard de Análise de Tráfego de IA está incluído em todos os planos pagos. Saiba mais sobre essa modalidade no post de lançamento do blog.

    Para clientes do AWS WAF que não estão inscritos nos planos de preço fixo, o dashboard de análise de tráfego de IA está disponível sem custo adicional. Consulte a página de preços do AWS WAF para mais detalhes.

    Como começar

    Para equipes que já utilizam o AWS WAF, o ponto de partida é simples: acesse o console do AWS WAF, navegue até sua web ACL e procure a aba de Análise de Tráfego de IA. O dashboard começa a exibir dados automaticamente assim que tráfego de bots de IA é detectado.

    Para aprofundar o conhecimento sobre o AWS WAF Bot Control e os dashboards de Análise de Tráfego de IA, a AWS disponibiliza o Guia do Desenvolvedor do AWS WAF como referência completa.

    À medida que os agentes de IA continuam crescendo como parcela do tráfego web total, ter as ferramentas certas de visibilidade deixa de ser um diferencial e passa a ser um requisito — tanto para a segurança quanto para o sucesso do negócio.

    Fonte

    Introducing AI traffic analysis dashboards for AWS WAF (https://aws.amazon.com/blogs/security/introducing-ai-traffic-analysis-dashboards-for-aws-waf/)

  • Amazon WorkSpaces agora permite que agentes de IA operem aplicações desktop (Preview)

    O que foi anunciado

    A AWS anunciou que o Amazon WorkSpaces — seu serviço gerenciado de desktop em nuvem — agora suporta agentes de Inteligência Artificial (IA) como operadores de aplicações desktop. O recurso está disponível em Preview e representa uma mudança relevante para empresas que ainda dependem de sistemas legados sem interfaces de programação modernas.

    O problema que essa novidade resolve

    Muitas organizações mantêm processos críticos de negócio rodando em aplicações desktop — sistemas ERP, mainframes e ferramentas proprietárias — que simplesmente não possuem APIs modernas. Isso criava o que a AWS chama de “desafio da última milha”: os agentes de IA conseguiam automatizar muita coisa, mas travavam justamente nessas aplicações mais antigas e estratégicas.

    Com essa atualização, o WorkSpaces passa a ser a ponte entre os agentes de IA e essas aplicações, permitindo que os agentes cliquem, naveguem e interajam com os sistemas exatamente como um usuário humano faria.

    Como funciona na prática

    Agentes de IA construídos em qualquer framework — e executados em qualquer ambiente, seja na nuvem, on-premises ou híbrido — podem se conectar às aplicações de negócio com pouco código, usando a integração com o Protocolo de Contexto de Modelo (MCP), um padrão aberto da indústria.

    Do ponto de vista dos times de desenvolvimento, o ganho é em agilidade: não é necessário montar nova infraestrutura para colocar os agentes em operação. Do ponto de vista dos times de TI, o controle permanece centralizado — as mesmas permissões, logs e auditorias que já existem para os ambientes humanos no WorkSpaces se aplicam igualmente aos agentes.

    Governança e observabilidade

    Um ponto importante destacado pela AWS é que os controles corporativos não são sacrificados em nome da automação. Os administradores de TI mantêm:

    • Gerenciamento centralizado de permissões
    • Registro (logging) completo das atividades
    • Controles de auditoria idênticos aos ambientes de usuários humanos
    • Capturas de tela e métricas para observabilidade total das ações dos agentes

    Isso é especialmente relevante para setores regulados, onde rastreabilidade e conformidade não são opcionais.

    Casos de uso destacados

    A AWS menciona exemplos concretos de onde essa capacidade pode ser aplicada imediatamente, sem necessidade de modernizar as aplicações existentes:

    • Serviços financeiros: processamento de sinistros e liquidação de operações
    • Recursos humanos: triagem de candidatos
    • Operações administrativas (back-office): automação de tarefas repetitivas
    • Saúde e outros setores regulados: fluxos de trabalho que exigem conformidade rigorosa

    Modelo de preços e infraestrutura

    O serviço opera com pagamento por uso e escala elástica, apoiado na infraestrutura global da AWS. Segundo a empresa, isso permite que as organizações reduzam a sobrecarga de TI enquanto ampliam as possibilidades de colaboração entre pessoas e agentes de IA.

    Para saber mais sobre o recurso, a AWS disponibilizou a documentação oficial do WorkSpaces.

    Fonte

    Amazon WorkSpaces now lets AI agents operate desktop applications (Preview) (https://aws.amazon.com/about-aws/whats-new/2026/05/workspaces-ai-agents/)

  • AWS SAM agora suporta WebSocket APIs para o Amazon API Gateway

    O que mudou

    O Modelo de Aplicação Serverless da AWS (AWS SAM) passou a suportar WebSocket APIs para o Amazon API Gateway. Com essa atualização, é possível definir WebSocket APIs completas com configuração mínima diretamente no template do SAM, sem precisar configurar manualmente cada recurso subjacente no AWS CloudFormation.

    Por que isso importa

    WebSocket APIs são fundamentais para aplicações que exigem comunicação em tempo real — como chats, dashboards ao vivo, streaming de IA/LLMs e aplicações de IoT. Até então, o SAM não oferecia suporte nativo a esse tipo de API, o que obrigava os times a configurar todos os recursos manualmente no CloudFormation. Isso tornava o processo mais trabalhoso e dificultava a depuração de problemas comuns, como permissões IAM ausentes para funções Lambda.

    Agora, o SAM cuida de tudo isso automaticamente: ele gera os recursos necessários e configura as permissões a partir do template, reduzindo a complexidade operacional significativamente.

    O que o novo recurso oferece

    O novo suporte garante paridade de funcionalidades com as WebSocket APIs do API Gateway, incluindo:

    • Autorização via IAM e Lambda
    • Domínios personalizados
    • RouteSettings
    • Models
    • StageVariables

    Além disso, o suporte a Globals permite compartilhar configurações comuns entre múltiplas WebSocket APIs no mesmo template, evitando repetição desnecessária.

    Como começar

    Para usar o novo recurso, basta adicionar o tipo AWS::Serverless::WebSocketApi ao template SAM. A partir daí, as rotas são definidas especificando funções Lambda como handlers para as rotas $connect, $disconnect e $default, além de quaisquer rotas customizadas que a aplicação precise. O SAM se encarrega automaticamente de configurar as integrações e permissões para cada rota. Autorização, configurações de stage e domínios personalizados também podem ser definidos diretamente dentro do recurso.

    Para saber mais, acesse o guia do desenvolvedor do SAM.

    Fonte

    AWS SAM now supports WebSocket APIs for Amazon API Gateway (https://aws.amazon.com/about-aws/whats-new/2026/05/aws-sam-websocket-apis-api-gateway/)

  • 5 formas de usar o Kiro e o Amazon Q para fortalecer sua segurança na AWS

    Segurança com IA: o que a AWS propõe com Kiro e Amazon Q Developer

    Imagine uma segunda-feira com alertas de acesso não autorizado, grupos de segurança mal configurados e violações de políticas de Gerenciamento de Identidade e Acesso (IAM) esperando resposta. A equipe precisa agir rápido — e é exatamente nesse cenário que a AWS posiciona o Kiro e o Amazon Q Developer como aliados práticos.

    A proposta publicada no blog de segurança da AWS descreve cinco técnicas para usar essas ferramentas de IA no reforço da postura de segurança, todas alinhadas ao Pilar de Segurança do AWS Well-Architected Framework. A ideia central: deixar que a IA cuide das tarefas repetitivas — varredura de recursos, rascunho de políticas, pesquisa de vulnerabilidades — enquanto os engenheiros focam nas decisões de risco que exigem julgamento humano.

    Entendendo as ferramentas

    Antes de entrar nas técnicas, vale entender o que cada ferramenta faz:

    • Kiro: um Ambiente de Desenvolvimento Integrado (IDE) agnóstico com capacidades de agente de IA, projetado pela AWS para desenvolvimento guiado por especificações. Combina prompts em linguagem natural com codificação estruturada para gerar, testar e implantar aplicações.
    • Amazon Q Developer: o assistente de IA generativa integrado ao ecossistema AWS, capaz de responder perguntas, gerar código, diagnosticar problemas e automatizar tarefas operacionais em serviços da AWS.

    As duas ferramentas são complementares. A escolha depende do fluxo de trabalho da equipe — e em muitos casos faz sentido usar ambas.

    Técnica 1: Contexto persistente de segurança

    Essa é a base de tudo. Sem contexto, o assistente de IA produz resultados genéricos. Com ele, cada interação já parte dos padrões de segurança da sua organização — sem precisar repetir os requisitos a cada prompt.

    O Amazon Q Developer usa arquivos de regras (rules) armazenados em .amazonq/rules/ no diretório do projeto. O Kiro usa steering files (arquivos de direcionamento), que ficam na raiz do projeto e fornecem ao agente consciência contínua da arquitetura e dos padrões de segurança em todas as sessões.

    Um exemplo de arquivo de padrões de segurança cobre áreas como:

    • IAM: princípio de menor privilégio, MFA obrigatório, rotação de chaves a cada 90 dias
    • Proteção de dados: criptografia em repouso e em trânsito, uso de chaves gerenciadas pelo cliente no AWS KMS (Serviço de Gerenciamento de Chaves)
    • Proteção de infraestrutura: grupos de segurança com menor privilégio, VPC Flow Logs, uso de AWS WAF para aplicações públicas
    • Controles detectivos: AWS CloudTrail em todas as regiões, Amazon GuardDuty ativo, AWS Config com regras de conformidade
    • Resposta a incidentes: tópicos Amazon SNS para alertas, runbooks documentados, automação com AWS Lambda

    O impacto é direto: sem esse contexto, um prompt como “Crie uma função Lambda para processar dados de clientes” pode gerar código sem criptografia, sem logs e sem configuração de IAM. Com o arquivo de padrões ativo, o mesmo prompt produz automaticamente variáveis de ambiente criptografadas com KMS, grupo de logs no CloudWatch com retenção de 90 dias, IAM com menor privilégio, posicionamento em sub-redes privadas e rastreamento com AWS X-Ray.

    Técnica 2: Triagem acelerada de alertas de segurança

    O AWS Security Hub consolida alertas do GuardDuty, Config, Amazon Inspector e ferramentas de terceiros em um único painel. O Kiro pode complementar esse fluxo usando Protocolos de Contexto de Modelo (MCPs) — uma forma padronizada de conectar assistentes de IA a ferramentas externas e APIs em tempo real.

    Com os servidores MCP configurados, o Kiro consegue:

    • Consultar alertas do Security Hub em linguagem natural, em múltiplas contas e regiões
    • Pesquisar o contexto de Vulnerabilidades e Exposições Comuns (CVEs) e seu impacto na infraestrutura
    • Gerar consultas de investigação para CloudTrail e VPC Flow Logs
    • Correlacionar eventos de segurança entre diferentes períodos e serviços

    Para habilitar isso, é preciso configurar servidores MCP de segurança no Kiro. Os servidores MCP de código aberto para AWS disponíveis incluem o AWS API MCP Server (para interagir com Security Hub, GuardDuty e IAM Access Analyzer), o CloudTrail MCP Server e o AWS IAM MCP Server. A lista completa está no repositório awslabs/mcp no GitHub. Para instruções detalhadas de configuração, a documentação de MCP do Kiro tem o passo a passo.

    O resultado prático: triagens que antes exigiam navegar por vários consoles e correlacionar logs manualmente podem ser feitas em minutos, reduzindo o tempo médio de triagem de horas para minutos.

    Técnica 3: Remediação de problemas em infraestrutura como código

    O Kiro e o Amazon Q Developer conseguem varrer arquivos de infraestrutura — escritos em AWS CloudFormation, Terraform ou AWS CDK (Kit de Desenvolvimento em Nuvem) — e identificar lacunas de segurança com recomendações específicas de correção.

    O fluxo recomendado é:

    • Solicitar ao assistente que escaneie os arquivos e identifique os problemas
    • Revisar as sugestões com a equipe de segurança
    • Testar as mudanças em ambientes não produtivos
    • Validar com serviços como IAM Access Analyzer, AWS Config e Security Hub
    • Implantar em produção com monitoramento e procedimentos de rollback

    Atenção importante: sugestões geradas por IA devem ser revisadas por um engenheiro de segurança qualificado antes de qualquer implementação. A IA é um ponto de partida, não um produto final.

    Com o contexto persistente ativo, os controles aplicados automaticamente incluem criptografia em repouso e em trânsito, políticas de IAM com menor privilégio, otimização de grupos de segurança, configurações de VPC e habilitação de logs.

    Técnica 4: Revisões de segurança aprofundadas

    Tanto o Amazon Q Developer quanto o Kiro conseguem analisar código de infraestrutura e identificar problemas de segurança em múltiplas categorias alinhadas ao Pilar de Segurança do Well-Architected Framework.

    No Amazon Q Developer, o fluxo é direto: selecione o código no IDE, acesse o menu de contexto, escolha Send to Amazon QOptimizeFocus on security best practices.

    No Kiro, basta um prompt em linguagem natural como “Realize uma revisão completa de segurança neste template CloudFormation e identifique todos os desvios dos nossos padrões”. O Kiro aplica automaticamente os steering files como contexto adicional.

    As categorias avaliadas incluem políticas de IAM excessivamente permissivas, configuração de logs no CloudTrail, status do GuardDuty, grupos de segurança mal configurados, status de criptografia de armazenamento, configuração de alertas com Amazon SNS e políticas de retenção de logs, entre outras. Para a lista completa e atualizada, a documentação do Pilar de Segurança do Well-Architected Framework é a referência.

    Equipes que integram essa revisão como etapa pré-commit relatam identificar uma parcela significativa dos problemas de segurança antes que o código chegue ao pipeline de Integração e Entrega Contínuas (CI/CD) — onde são mais rápidos e baratos de corrigir.

    Técnica 5: Desenvolvimento de Políticas de Controle de Serviço (SCPs)

    As Políticas de Controle de Serviço do AWS Organizations (SCPs) aplicam controles preventivos em todas as contas de uma organização. O Kiro pode gerar rascunhos iniciais de SCPs a partir de requisitos descritos em linguagem natural — acelerando bastante o processo de criação e iteração.

    O fluxo recomendado tem cinco etapas:

    1. Gerar o rascunho: descreva os requisitos em linguagem natural (ex: negar criação de buckets S3 sem criptografia, exigir MFA para acesso de usuários IAM, impedir snapshots RDS públicos) e o Kiro gera o JSON completo da política.
    2. Validar e fazer lint: use o Kiro ou Amazon Q Developer para revisar erros de sintaxe, declarações de negação excessivamente amplas e condition keys ausentes. O IAM Policy Autopilot, disponível como Kiro Power, complementa esse processo analisando o uso da aplicação e gerando as permissões necessárias. O IAM Policy Simulator adiciona outra camada de validação, permitindo testar o comportamento das políticas.
    3. Testar em sandbox: criar uma Unidade Organizacional (OU) de teste com contas não produtivas e aplicar a SCP. Usar o Kiro para pré-validar a infraestrutura existente contra a SCP proposta antes dos testes.
    4. Revisão por arquiteto de segurança: verificar conflitos com SCPs existentes, usar o IAM Policy Simulator para testar interações entre políticas e confirmar que os procedimentos de acesso de emergência (SEC03-BP03 e SEC10-BP05) continuam funcionando.
    5. Implantação gradual: começar pelas contas de desenvolvimento, monitorar violações e expandir progressivamente, mantendo procedimentos de rollback documentados.

    Atenção crítica: uma SCP mal configurada pode causar interrupções em toda a organização. Nunca implante SCPs geradas por IA diretamente em produção sem revisão especializada e testes em etapas.

    Framework de implementação responsável

    A AWS recomenda uma abordagem em duas fases para adotar esses fluxos de trabalho com segurança:

    • Fase 1 — Desenvolvimento e testes (semanas 1 a 4): testar controles gerados por IA em contas de desenvolvimento isoladas, validar com IAM Access Analyzer, AWS Config e Security Hub, e construir expertise interna nas equipes.
    • Fase 2 — Staging e produção (semana 5 em diante): aplicar os controles validados em ambiente de staging, realizar testes de penetração quando aplicável, e expandir gradualmente para produção com monitoramento contínuo e procedimentos de rollback.

    Além das cinco técnicas: outros recursos complementares

    O post original da AWS também menciona recursos adicionais que complementam as cinco técnicas:

    • Amazon Inspector: serviço de gerenciamento de vulnerabilidades que escaneia continuamente workloads AWS, com integração nativa a pipelines CI/CD e ao Security Hub.
    • Amazon Q Developer security scanning: detecção de problemas de segurança em tempo real no IDE, incluindo Análise Estática de Segurança de Aplicações (SAST), detecção de segredos e análise de infraestrutura como código.
    • AWS Security Agent: agente de IA de fronteira que valida automaticamente requisitos de segurança organizacionais durante o desenvolvimento, analisa pull requests e executa testes de penetração sob demanda.
    • AWS Security Hub automated response and remediation: playbooks pré-construídos para alertas comuns usando AWS Systems Manager Automation.

    Conclusão

    A abordagem apresentada pela AWS com o Kiro e o Amazon Q Developer não é sobre substituir os controles de segurança existentes — é sobre tornar a segurança uma parte natural do fluxo de desenvolvimento, acessível a toda a equipe, não apenas aos especialistas em segurança.

    As cinco técnicas — contexto persistente, triagem de alertas, remediação de infraestrutura como código, revisões de segurança e desenvolvimento de SCPs — formam uma base prática para escalar a expertise de segurança para as equipes de desenvolvimento, reduzir o tempo entre a introdução de vulnerabilidades e sua detecção, e liberar os engenheiros de segurança para as decisões complexas que realmente exigem julgamento humano.

    Para quem quer começar: as semanas 1 e 2 devem ser dedicadas à configuração dos arquivos de contexto persistente com os 10 principais padrões de segurança e à configuração dos servidores MCP no Kiro. Recursos adicionais estão disponíveis no AWS Security Blog, nas melhores práticas do AWS Security Hub e nas documentações do Kiro e do Amazon Q Developer.

    Fonte

    Five ways to use Kiro and Amazon Q to strengthen your security posture (https://aws.amazon.com/blogs/security/five-ways-to-use-kiro-and-amazon-q-to-strengthen-your-security-posture/)

  • MLflow v3.10 chega ao Amazon SageMaker AI com melhorias para IA generativa

    O que muda com o MLflow 3.10 no SageMaker

    A AWS anunciou que os Amazon SageMaker AI MLflow Apps passam a suportar o MLflow na versão 3.10. A atualização expande as capacidades de desenvolvimento de IA generativa e torna o rastreamento de experimentos mais completo e integrado ao ciclo de produção.

    A nova versão se apoia nas bases estabelecidas pelo MLflow 3.0 — especialmente nas funcionalidades de rastreamento e observabilidade — e avança com foco em fluxos de trabalho agênticos e aplicações de IA generativa.

    Novidades do MLflow 3.10

    IA generativa e rastreamento de fluxos complexos

    Um dos destaques desta versão é o rastreamento aprimorado para fluxos de trabalho com múltiplas interações (multi-turn workflows), algo comum em aplicações que utilizam agentes de linguagem. A integração com frameworks e bibliotecas populares de Modelos de Linguagem de Grande Escala (LLM) também foi aprimorada, assim como o registro de interações e invocações de modelos generativos.

    Nova API de avaliação para IA generativa

    A avaliação de modelos recebeu uma atualização significativa com a chegada da API mlflow.genai.evaluation(). Ela oferece uma interface programática para medir e acompanhar sistematicamente a qualidade de aplicações de IA generativa ao longo de todo o ciclo de desenvolvimento até a produção. A API inclui métricas integradas que cobrem relevância, fidelidade, correção e segurança — todas compatíveis com os fluxos de trabalho do SageMaker AI.

    Observabilidade e dashboards

    As melhorias de observabilidade incluem filtragem e busca de rastreamentos com maior granularidade, além de captura mais rica de metadados para depuração e análise de causa raiz. Os dashboards de desempenho pré-configurados exibem métricas de carga de trabalho — distribuições de latência, contagem de requisições, pontuações de qualidade e uso de tokens — sem necessidade de configuração manual de gráficos. Isso dá às equipes em produção uma visão clara dos custos operacionais.

    Além disso, os workspaces do MLflow oferecem uma forma estruturada de organizar artefatos entre times e projetos, facilitando a governança em escala.

    Como começar com o SageMaker AI MLflow App v3.10

    Para novos usuários, criar um SageMaker AI MLflow App é direto: basta acessar o console do SageMaker Studio, o Interface de Linha de Comando da AWS (AWS CLI) ou a API. A configuração padrão já provisiona automaticamente o MLflow 3.10, dando acesso imediato a todos os novos recursos.

    Pré-requisitos

    Para começar, são necessários:

    Com o domínio em mãos, basta acessar o console do Amazon SageMaker AI Studio, selecionar a aplicação MLflow e clicar em Create MLflow App, informando um nome para a aplicação. O papel do Gerenciamento de Identidade e Acesso da AWS (IAM) e o bucket do Amazon Simple Storage Service (Amazon S3) já vêm pré-configurados com os padrões do domínio do SageMaker AI Studio, sendo necessário ajustá-los apenas em configurações avançadas, se necessário.

    Após a criação, o sistema fornece um Nome de Recurso da Amazon (ARN) do MLflow App, que será usado para conectar o ambiente de desenvolvimento ao rastreador.

    Instalação dos pacotes

    Para começar a rastrear experimentos, é necessário instalar o MLflow e o plugin SageMaker MLflow no ambiente de trabalho. Os ambientes suportados incluem o SageMaker Studio managed Jupyter Lab, o SageMaker Studio Code Editor, um ambiente de desenvolvimento integrado (IDE) local ou qualquer outro ambiente compatível com os SageMaker AI MLflow Apps.

    A instalação via pip é feita com o seguinte comando:

    pip install mlflow==3.10.1 sagemaker-mlflow==0.3.0

    Conectando ao SageMaker AI MLflow App

    Para conectar o código ao app recém-criado e começar a registrar experimentos, parâmetros e modelos, basta substituir o Nome de Recurso da Amazon (ARN) pelo ARN do seu MLflow App no trecho abaixo:

    import mlflow
    
    # Connect to your SageMaker MLflow App
    mlflow_app_arn = "<your-mlflow-app-arn>"
    mlflow.set_tracking_uri(mlflow_app_arn)
    
    # Set your experiment
    mlflow.set_experiment("your_genai_experiment")
    
    # Your existing code continues to work with enhanced capabilities
    # New features are automatically available

    Migração de ambientes existentes

    Quem já possui um MLflow Tracking Server ou App hospedado no SageMaker ou em outro ambiente pode migrar para um novo app na versão 3.10 seguindo as instruções do post Migrate MLflow tracking servers to Amazon SageMaker AI with serverless MLflow.

    Disponibilidade e próximos passos

    O MLflow v3.10 também está disponível no Amazon SageMaker AI serverless model customization e no SageMaker Unified Studio, ampliando as opções de uso em diferentes fluxos de trabalho.

    Para começar, basta acessar o Amazon SageMaker AI Studio e criar o primeiro MLflow App. Feedbacks podem ser enviados pelo AWS re:Post para SageMaker ou pelos canais habituais de suporte AWS.

    Fonte

    Streamlining generative AI development with MLflow v3.10 on Amazon SageMaker AI (https://aws.amazon.com/blogs/machine-learning/streamlining-generative-ai-development-with-mlflow-v3-10-on-amazon-sagemaker-ai/)

  • Como proteger agentes de IA com Amazon Bedrock AgentCore Identity no Amazon ECS

    Agentes de IA em produção precisam de identidade segura

    Colocar agentes de IA em produção vai muito além de fazer o modelo responder corretamente. Um dos desafios mais críticos é garantir que o agente acesse serviços externos de forma segura e com o escopo certo. A AWS endereça exatamente esse problema com o Amazon Bedrock AgentCore Identity, um serviço disponível de forma independente que gerencia como agentes de IA acessam recursos externos — seja rodando no Amazon ECS, no Amazon EKS, no AWS Lambda ou até em ambientes on-premises.

    Um post anterior cobriu o gerenciamento de credenciais com o AgentCore Identity. Agora, a AWS foi além e publicou uma implementação completa de como usar o serviço em ambientes como o ECS, respondendo duas perguntas práticas: como construir um endpoint de Session Binding gerenciado pela própria aplicação, e como controlar o ciclo de vida dos tokens de acesso do workload.

    OAuth 2.0 e OIDC: a base da solução

    A solução utiliza dois protocolos complementares: OAuth 2.0 (RFC 6749) e Protocolo de Conexão OpenID (OIDC). O OIDC cuida da autenticação — ou seja, confirma quem é o usuário. O OAuth 2.0 cuida da autorização — ou seja, o que esse usuário pode fazer. O foco aqui é no fluxo Authorization Code Grant, indicado para workloads que precisam agir em nome de usuários reais.

    Nesse fluxo, o usuário se autentica com um provedor de identidade e concede permissão para o agente acessar recursos específicos em seu nome. A aplicação troca o código de autorização resultante por um token de acesso com escopo definido, que o AgentCore Identity armazena no seu cofre de tokens. Como cada token está vinculado a uma identidade de usuário específica com consentimento explícito, a solução mantém uma cadeia auditável desde a autenticação até a ação do agente.

    O Authorization Code Grant é especialmente adequado para workloads agênticos porque oferece três garantias importantes:

    • Consentimento do usuário antes que o agente possa agir
    • Session binding que verifica se o usuário que iniciou a requisição é o mesmo que concedeu o consentimento
    • Delegação com escopo que limita o agente apenas às permissões aprovadas pelo usuário

    Callback URL vs. Session Binding URL

    Um ponto que costuma gerar confusão são as duas URLs envolvidas no fluxo:

    • Callback URL: gerada automaticamente ao criar um cliente OAuth no AgentCore Identity. Aponta para o próprio AgentCore Identity e precisa ser registrada no servidor de autorização como destino do redirecionamento após a autenticação do usuário.
    • Session Binding URL: aponta para um serviço gerenciado pelo cliente que completa o session binding entre o usuário autenticado e o fluxo OAuth. Esse endpoint é implementado e hospedado pelo próprio cliente.

    Arquitetura da solução no Amazon ECS

    A solução implanta dois serviços no Amazon ECS atrás de um Application Load Balancer (ALB). O primeiro é o Agentic Workload, que executa o agente de IA e processa as requisições dos usuários. O segundo é o Session Binding Service, responsável por processar os callbacks OAuth e vincular as sessões de usuário aos tokens de acesso de terceiros. O código-fonte completo e os pré-requisitos estão disponíveis no repositório GitHub que acompanha o post.

    O walkthrough usa o Microsoft Entra ID como provedor de identidade, mas qualquer provedor compatível com OIDC funciona. A arquitetura inclui os seguintes componentes de suporte:

    • Tráfego criptografado com HTTPS via AWS Certificate Manager
    • Roteamento DNS com Amazon Route 53
    • Logs capturados pelo Amazon CloudWatch e armazenados em bucket S3
    • Imagens de container no Amazon ECR
    • Regras básicas do AWS WAF no load balancer para proteção contra exploits comuns
    • Chave gerenciada pelo cliente no AWS KMS para criptografia de dados

    O fluxo completo do Authorization Code Grant

    O diagrama de sequência da solução mostra como a identidade de workload do AgentCore Identity, os tokens de acesso de workload e o provedor de credenciais OAuth 2.0 trabalham juntos para entregar tokens OAuth ao agente em nome do usuário. O fluxo parte do pressuposto de que o usuário ainda não autorizou o agente, ou seja, não há token válido no Token Vault do AgentCore Identity.

    O fluxo funciona assim:

    • O usuário autenticado envia uma requisição ao workload agêntico.
    • O workload extrai o ID do usuário do campo sub no JWT assinado pelo ALB (header x-amzn-oidc-data).
    • O workload chama a API GetWorkloadAccessTokenForUserId, passando o userId e o workloadName, para obter um token de acesso de workload com escopo para aquele usuário.
    • Em seguida, chama a API GetResourceOauth2Token, passando o token de workload, o nome do provedor OAuth 2.0, a Session Binding URL (parâmetro callbackUrl) e os escopos necessários.
    • Como não há token válido, o AgentCore Identity cria um sessionURI que rastreia o estado do fluxo de autorização e retorna uma URL de autorização para o workload.
    • O workload apresenta essa URL ao usuário, que clica e concede permissão na tela de consentimento do provedor.
    • O servidor de autorização envia o código de autorização ao AgentCore Identity, que redireciona o usuário para o Session Binding Service via Session Binding URL com o sessionURI anexado.
    • O Session Binding Service chama a API CompleteResourceTokenAuth com o sessionURI e o ID do usuário extraído do JWT, vinculando a autorização à sessão correta.
    • O AgentCore Identity troca o código de autorização com o servidor de autorização, recebe o token OAuth2, armazena no Token Vault e retorna sucesso ao Session Binding Service.

    Em requisições subsequentes, o comportamento depende das credenciais emitidas pelo servidor de autorização. Quando há um refresh token disponível — como no GitHub com expiração de token habilitada — o AgentCore Identity o usa automaticamente para renovar o access token sem precisar envolver o usuário novamente. Se não houver refresh token e o access token expirar, o usuário será solicitado a autorizar novamente. Tokens revogados pelo provedor podem ser tratados com o parâmetro forceAuthentication: true, que força um novo fluxo de autenticação.

    Por que o session binding é crítico para segurança

    O session binding protege contra dois tipos de ataque:

    • Falsificação de Requisição entre Sites (CSRF): um atacante tenta vincular seu próprio token OAuth à identidade da vítima, fazendo o agente da vítima acessar recursos do atacante sem que ela perceba — o que possibilita exfiltração de dados e injeção de conteúdo.
    • Browser Swapping Attack (ataque de troca de navegador): um atacante engana a vítima para que ela dê consentimento em nome do atacante, vinculando o token OAuth da vítima à identidade do atacante e concedendo acesso direto aos recursos da vítima.

    O session binding previne ambos ao garantir que o ID do usuário no workload agêntico seja o mesmo no Session Binding Service, com ambas as identidades verificadas criptograficamente pela cadeia de autenticação. O AgentCore Identity também suporta o parâmetro opcional customState na API GetResourceOauth2Token para passar um nonce aleatório criptograficamente seguro, protegendo o endpoint de callback contra ataques CSRF conforme recomendado pela especificação OAuth 2.0.

    Por que usar GetWorkloadAccessTokenForUserId com ALB e Microsoft Entra ID

    A API recomendada para obter um token de acesso de workload é a GetWorkloadAccessTokenForJWT, mas essa solução usa a GetWorkloadAccessTokenForUserId. O motivo é uma incompatibilidade técnica entre o fluxo OIDC do ALB e o Microsoft Entra ID.

    A GetWorkloadAccessTokenForJWT exige um JWT dinamicamente validável, com assinatura verificável em runtime e claim aud correspondente à aplicação. Para obter esse token do Entra ID, é necessário incluir o Application ID no escopo da requisição OIDC — veja a documentação do AgentCore para Microsoft Inbound. O problema é que isso é incompatível com o fluxo OIDC do ALB.

    Como parte do handshake OIDC (descrito na documentação de OIDC do ALB), o ALB envia o access token para o endpoint UserInfo do Entra para recuperar os claims do usuário autenticado. Esse endpoint UserInfo fica no Microsoft Graph (https://graph.microsoft.com/oidc/userinfo) e só aceita tokens com escopo para o Microsoft Graph. Quando o Application ID é incluído no escopo, o access token resultante tem a aplicação como audiência — o endpoint UserInfo rejeita com 401 e o ALB retorna 561. Se o Application ID for removido do escopo, o Entra define a audiência do access token como Microsoft Graph, o handshake do ALB funciona, mas o JWT resultante não pode ser validado dinamicamente pelo AgentCore e é inutilizável com a GetWorkloadAccessTokenForJWT.

    A solução adotada: o ALB completa o handshake usando o token com escopo para o Graph e injeta um JWT assinado pelo próprio ALB no header x-amzn-oidc-data com os claims do usuário, incluindo o sub. Esse JWT é validado usando as chaves de assinatura publicadas pela AWS, o sub é extraído e passado para a GetWorkloadAccessTokenForUserId.

    Implementação: os principais trechos de código

    O código completo está disponível no repositório GitHub. Abaixo estão os trechos mais relevantes.

    Obtendo o token de acesso de workload

    O servidor extrai o ID do usuário do claim sub do JWT e solicita um token de acesso de workload ao AgentCore Identity. Em seguida, usa esse token, o ID da sessão e a mensagem para invocar o agente em nome do usuário:

    @router.post("/invocations")
    async def invoke_agent(
        request: InvocationRequest,
        user_id: str = Depends(get_current_user),
        settings: Settings = Depends(get_settings),
        agent_service: AgentService = Depends(get_agent_service),
    ) -> StreamingResponse:
        """Invoke agent with streaming response."""
        try:
            agentcore = boto3.client("bedrock-agentcore", region_name=settings.identity_aws_region)
            response = agentcore.get_workload_access_token_for_user_id(
                workloadName=settings.workload_identity_name,
                userId=user_id
            )
            workload_access_token = response["workloadAccessToken"]
            return StreamingResponse(
                content=agent_service.stream_response(
                    user_message=request.user_message,
                    session_id=request.session_id,
                    user_id=user_id,
                    workload_access_token=workload_access_token,
                ),
                media_type="text/event-stream",
            )

    Solicitando o token de acesso OAuth

    O servidor usa o decorator require_access_token do AgentCore SDK para recuperar o token OAuth 2.0 (veja como obter um token de acesso OAuth 2.0). A implementação modifica o decorator para aceitar o token de workload como parâmetro explícito, dando controle direto sobre o ciclo de vida do token enquanto preserva a lógica de recuperação e tratamento de erros do SDK:

    def requires_access_token(
        *,
        provider_name: str,
        scopes: list[str],
        auth_flow: Literal["M2M", "USER_FEDERATION"],
        workload_access_token: str | None = None,
        session_binding_url: str | None = None,
        on_auth_url: Callable[[str], Any] | None = None,
        force_authentication: bool = False,
        token_poller: TokenPoller | None = None,
        custom_state: str | None = None,
        custom_parameters: dict[str, str] | None = None,
        into: str = "access_token",
        region: str | None = None,
    ) -> Callable[[Callable[..., Any]], Callable[..., Any]]:
        def decorator(func: Callable[..., Any]) -> Callable[..., Any]:
            client = IdentityClient(region)
            @wraps(func)
            async def wrapper(*args: Any, **kwargs: Any) -> Any:
                try:
                    if not workload_access_token:
                        raise ValueError("workload_access_token is required")
                    token = await client.get_token(
                        provider_name=provider_name,
                        agent_identity_token=workload_access_token,
                        scopes=scopes,
                        auth_flow=auth_flow,
                        callback_url=session_binding_url,
                        on_auth_url=on_auth_url,
                        force_authentication=force_authentication,
                        token_poller=token_poller,
                        custom_state=custom_state,
                        custom_parameters=custom_parameters,
                    )
                    kwargs[into] = token
                    return await func(*args, **kwargs)
                except Exception:
                    logger.exception("Error in requires_access_token decorator")
                    raise
            return wrapper
        return decorator

    Três decisões de design importantes

    A implementação das ferramentas do agente destaca três escolhas de design relevantes:

    • Pydantic BaseModel como tipos de retorno: as classes GitHubUser e GitHubProject são subclasses de BaseModel. O Strands deriva automaticamente descrições de ferramentas a partir do schema e das docstrings, dando ao modelo de linguagem contexto estruturado sobre cada ferramenta.
    • Tratamento de erros consistente com o tipo: quando não há token e o AgentCore Identity retorna uma URL de autorização, o callback on_auth_url lança um AuthorizationRequiredError em vez de retornar uma string — uma ferramenta que declara GitHubUser como tipo de retorno não pode retornar uma URL. A camada de streaming do agente captura a exceção e apresenta a URL ao usuário.
    • Escopos por ferramenta: cada ferramenta declara apenas os escopos OAuth que precisa, mantendo o consentimento alinhado ao princípio do menor privilégio.

    Completando o session binding

    No Session Binding Service, quando o usuário autoriza o acesso no GitHub, o GitHub redireciona para {session_binding_url}?session_id={session_id}, onde session_id corresponde ao sessionURI que o AgentCore Identity incluiu na URL de autorização original:

    @router.get("/session-binding", response_class=HTMLResponse)
    async def oauth_session_binding(
        session_id: str = Query(..., description="Session URI from AgentCore Identity"),
        user_id: str = Depends(get_current_user),
        settings: Settings = Depends(get_settings),
    ) -> HTMLResponse:
        """Handle OAuth2 session binding from external providers."""
        client = boto3.client("bedrock-agentcore", region_name=settings.identity_region)
        try:
            client.complete_resource_token_auth(
                sessionUri=session_id,
                userIdentifier={"userId": user_id},
            )

    O serviço extrai o ID do usuário do claim sub no header x-amzn-oidc-data, garantindo identidade consistente ao longo de todo o fluxo. Em seguida, chama complete_resource_token_auth com o sessionURI e o ID do usuário, vinculando o token de acesso resultante à sessão correta.

    Limpeza dos recursos

    Para evitar cobranças desnecessárias, é recomendável excluir os recursos criados pela solução quando não forem mais necessários. As instruções estão disponíveis no guia de limpeza dos recursos.

    Próximos passos

    O padrão apresentado funciona em diferentes plataformas de computação — ECS, EKS, Lambda ou fora da AWS — e se estende além do GitHub para outros serviços compatíveis com OAuth 2.0, como Jira, Salesforce ou Google Calendar. Para aprofundar:

    Fonte

    Secure AI agents with Amazon Bedrock AgentCore Identity on Amazon ECS (https://aws.amazon.com/blogs/machine-learning/secure-ai-agents-with-amazon-bedrock-agentcore-identity-on-amazon-ecs/)

  • Ações em Nível de SO no Amazon Bedrock AgentCore Browser

    O problema: a fronteira invisível da automação web

    Agentes de IA que automatizam fluxos de trabalho em navegadores operam dentro da camada web — o Modelo de Objeto de Documento (DOM) exposto pelo Playwright e pelo Protocolo Chrome DevTools (CDP). O AgentCore Browser já fornecia um ambiente de navegador seguro e isolado para isso, funcionando bem na grande maioria dos cenários: navegar páginas, preencher formulários, clicar em elementos e extrair conteúdo.

    Mas essa camada web tem um limite rígido. Qualquer coisa que o sistema operacional renderiza — caixas de diálogo nativas, prompts de segurança, seletores de certificado, menus de contexto, até as configurações do próprio Chrome — fica completamente fora do DOM. O CDP não consegue enxergar esses elementos, e o Playwright não consegue interagir com eles.

    Os exemplos práticos deixam o problema bem claro:

    • Quando uma aplicação web chama window.print() e um diálogo de impressão do sistema aparece, o Playwright não tem DOM para interagir.
    • Quando um fluxo de trabalho exige um atalho de teclado ou um menu de contexto acionado com o botão direito, o CDP não tem mecanismo para emitir esses comandos no nível do SO.
    • Quando uma sessão encontra um diálogo de privacidade do macOS, um prompt do Windows Security ou um seletor de certificado, esses elementos são invisíveis para a camada de automação web.

    Esses cenários costumam aparecer em produção — acionados por estados específicos da aplicação, configurações do SO ou permissões de usuário — e não em ambientes de teste, onde o conteúdo web é previsível o suficiente para ser validado. O problema se agrava ainda mais para agentes com visão computacional: a arquitetura captura um screenshot, envia para um modelo, recebe coordenadas ou instruções de volta e executa. Esse ciclo funciona bem para conteúdo web, mas quebra no momento em que uma interface nativa aparece. O agente consegue ver o que precisa fazer, mas não tem como agir.

    A solução: OS Level Actions para o AgentCore Browser

    A AWS anunciou as OS Level Actions para o AgentCore Browser. Essa nova capacidade desbloqueia esses cenários ao expor controle direto do SO por meio da API InvokeBrowser, permitindo que agentes interajam com qualquer conteúdo visível na tela — não apenas o que está acessível pela camada web do navegador.

    Ao combinar screenshots do desktop completo com controle de mouse e teclado no nível do SO, os agentes passam a conseguir observar interfaces nativas, raciocinar sobre elas e agir dentro da mesma sessão.

    Como as OS Level Actions funcionam

    As OS Level Actions estão disponíveis para configurações de navegador novas e existentes, sem necessidade de configuração adicional. Após uma sessão estar ativa, as ações são disparadas pela API InvokeBrowser. Cada chamada carrega exatamente uma ação, identificada pelo seu tipo e argumentos, e retorna um status SUCCESS ou FAILED. A sessão ativa é identificada pelo cabeçalho x-amzn-browser-session-id, que vincula cada ação em nível de SO à sessão de navegador correta.

    O padrão de interação esperado é um ciclo de ação → screenshot → reação:

    • O agente envia uma ação — clique de mouse, tecla pressionada ou atalho — usando o InvokeBrowser.
    • O AgentCore executa a ação no desktop completo do SO e retorna SUCCESS ou FAILED.
    • O agente solicita um screenshot para observar o estado atual da tela.
    • O AgentCore captura o desktop completo — incluindo caixas de diálogo nativas, modais do SO e elementos fora da janela do navegador — e retorna uma imagem PNG codificada em base64.
    • O agente raciocina sobre o screenshot, enviando-o a um modelo de visão para determinar o que aconteceu e o que fazer a seguir.
    • O agente envia a próxima ação com base no que observou, continuando o ciclo.

    Ações suportadas

    As OS Level Actions são organizadas em três categorias: controle de mouse, entrada de teclado e captura visual. Ao todo, são oito ações com seus respectivos campos e restrições.

    Ações de mouse

    As ações de mouse cobrem toda a gama de interações com o ponteiro: clicar, mover, arrastar e rolar.

    • mouseClick: os campos de coordenadas são opcionais. Se omitidos, o clique ocorre na posição atual do cursor, com botão esquerdo e clique único. O parâmetro clickCount aceita valores de 1 a 10.
    • mouseMove: move o cursor para as coordenadas especificadas.
    • mouseDrag: exige as quatro coordenadas (início e fim). O botão padrão é o esquerdo.
    • mouseScroll: aceita posição e valores delta para ambos os eixos. deltaY negativo rola para baixo; o intervalo aceito vai de -1000 a 1000.

    Um menu de contexto acionado com o botão direito, por exemplo, é um único mouseClick com o botão definido como RIGHT nas coordenadas alvo. Vale observar que alguns itens de menu de contexto podem não funcionar como esperado por conta do ambiente virtualizado em que a sessão de navegador roda.

    Ações de teclado

    As três ações de teclado cobrem diferentes níveis de entrada:

    • keyType: para digitar texto. Envia caracteres diretamente e aceita strings de até 10.000 caracteres.
    • keyPress: para teclas individuais que precisam ser pressionadas repetidamente — como tab para avançar por campos de formulário ou escape para fechar um modal. O parâmetro presses aceita de 1 a 100, com padrão 1.
    • keyShortcut: para combinações de teclas — passe um array com os nomes das teclas e o AgentCore as pressiona simultaneamente. Aceita até cinco teclas. Os nomes das teclas devem ser em minúsculas.

    As teclas suportadas incluem caracteres únicos (a–z, 0–9) e teclas nomeadas como enter, tab, space, backspace, delete, escape, ctrl, alt e shift. Para selecionar todo o texto, por exemplo, usa-se keyShortcut com ["ctrl", "a"]:

    {
      "action": {
        "keyShortcut": {
          "keys": ["ctrl", "a"]
        }
      }
    }

    Screenshot

    A ação de screenshot captura o desktop completo do SO e retorna uma imagem PNG codificada em base64 na resposta. É a única ação que retorna dados — as demais retornam apenas um status (SUCCESS ou FAILED) e um campo de erro em caso de falha.

    {
      "action": {
        "screenshot": {
          "format": "PNG"
        }
      }
    }

    Como começar: passo a passo prático

    Os exemplos a seguir percorrem o ciclo ação → screenshot → reação, acompanhando o notebook de referência. Para o notebook completo com as oito ações demonstradas de ponta a ponta, vale começar por lá.

    Configurar clientes e criar um navegador

    São necessários dois clientes: um de plano de controle (bedrock-agentcore-control) para gerenciar recursos de navegador, e um de plano de dados (bedrock-agentcore) para disparar ações durante uma sessão.

    import boto3
    import time
    
    browser_boto3 = boto3.client('bedrock-agentcore-control', region_name='us-west-2')
    BROWSER_NAME = "browser_with_os_actions"

    Antes de iniciar uma sessão, é necessário um perfil de execução do Gerenciamento de Identidade e Acesso da AWS (IAM) e um recurso de navegador. O perfil de execução requer as permissões bedrock-agentcore:InvokeBrowser, bedrock-agentcore:StartBrowserSession e bedrock-agentcore:StopBrowserSession. O notebook de referência inclui um helper que cria esse perfil automaticamente:

    from helpers.utils import create_agentcore_execution_role, SAMPLE_ROLE_NAME
    
    execution_role_arn = create_agentcore_execution_role(SAMPLE_ROLE_NAME)

    Com o perfil criado, cria-se um navegador personalizado:

    created_browser = browser_boto3.create_browser(
        name=BROWSER_NAME,
        executionRoleArn=execution_role_arn,
        networkConfiguration={
            'networkMode': 'PUBLIC'
        }
    )
    browser_id = created_browser['browserId']
    print(f"Browser ID: {browser_id}")

    Iniciar uma sessão de navegador

    Com o recurso de navegador criado, inicia-se uma sessão. O viewPort define a resolução da tela — isso determina o espaço de coordenadas para ações de mouse e as dimensões dos screenshots capturados. O sessionTimeoutSeconds controla por quanto tempo a sessão permanece ativa antes de ser encerrada automaticamente.

    from helpers.browser import get_credentials, invoke, start_session, stop_session
    
    creds, default_region = get_credentials()
    BEDROCK_AGENTCORE_DP_ENDPOINT = f"https://bedrock-agentcore.{default_region}.amazonaws.com/"
    
    sid = start_session(BEDROCK_AGENTCORE_DP_ENDPOINT, browser_id, region=default_region, credentials=creds)
    
    # Aguarda a inicialização da sessão — ajuste conforme necessário para seu ambiente
    time.sleep(3)

    Invocar uma ação em nível de SO

    Com a sessão em execução, as ações em nível de SO são disparadas pelo helper invoke. Cada chamada recebe uma única ação — neste caso, um clique esquerdo nas coordenadas (600, 370) da tela:

    r = invoke(
        BEDROCK_AGENTCORE_DP_ENDPOINT,
        sid,
        {"mouseClick": {"x": 600, "y": 370, "button": "LEFT"}},
        region=default_region,
        credentials=creds,
        browser_id=browser_id
    )
    print(f"Mouse click status: {r.status_code}, action: {r.json()['result']}")

    A resposta indica se a ação foi bem-sucedida ou falhou. As coordenadas mapeiam para pixels da tela — se o viewport da sessão for 1920×1080, os valores válidos de x vão de 0 a 1919 e de y de 0 a 1079. Coordenadas fora das dimensões da tela retornam uma ValidationException.

    Capturar um screenshot

    Após cada ação, o agente precisa observar o que aconteceu. A ação de screenshot captura o desktop completo e retorna a imagem como PNG codificado em base64:

    import base64
    from IPython.display import Image, display
    
    r = invoke(
        BEDROCK_AGENTCORE_DP_ENDPOINT,
        sid,
        {"screenshot": {"format": "PNG"}},
        region=default_region,
        credentials=creds,
        browser_id=browser_id
    )
    img_bytes = base64.b64decode(r.json()['result']['screenshot']['data'])
    display(Image(img_bytes))

    Essa é a etapa de observação no ciclo. O agente envia o screenshot para um modelo de visão, que raciocina sobre o que está na tela e retorna a próxima ação a ser tomada. O ciclo se repete até o fluxo de trabalho ser concluído.

    Juntando tudo: descartando um diálogo de impressão

    Aqui está o ciclo ação → screenshot → reação na prática. Suponha que o agente navegue até uma página que aciona window.print() e um diálogo de impressão nativo apareça. O agente não consegue interagir com ele via CDP, mas consegue com as OS Level Actions.

    Primeiro, o agente captura um screenshot para ver o estado atual da tela:

    r = invoke(
        BEDROCK_AGENTCORE_DP_ENDPOINT,
        sid,
        {"screenshot": {"format": "PNG"}},
        region=default_region,
        credentials=creds,
        browser_id=browser_id
    )
    # Envia o screenshot para um modelo de visão para identificar o diálogo e localizar o botão Cancelar.
    # A integração com o modelo de visão depende da arquitetura do seu agente — veja a API
    # InvokeModel do Bedrock para enviar imagens ao Claude ou outros modelos.
    # O modelo retorna coordenadas, ex.: {"x": 410, "y": 535}

    O modelo de visão identifica o diálogo de impressão e retorna as coordenadas do botão Cancelar. O agente o seleciona:

    r = invoke(
        BEDROCK_AGENTCORE_DP_ENDPOINT,
        sid,
        {"mouseClick": {"x": 410, "y": 535, "button": "LEFT"}},
        region=default_region,
        credentials=creds,
        browser_id=browser_id
    )
    print(f"Click status: {r.status_code}, action: {r.json()['result']}")

    O agente captura outro screenshot para confirmar que o diálogo foi fechado, e o fluxo de trabalho continua.

    Encerrar a sessão e limpar recursos

    Quando o fluxo de trabalho termina, encerra-se a sessão e limpam-se os recursos:

    stop_session(BEDROCK_AGENTCORE_DP_ENDPOINT, sid, browser_id, region=default_region, credentials=creds)

    Para deletar o recurso de navegador e o perfil IAM:

    browser_boto3.delete_browser(browserId=browser_id)
    print(f"Browser {browser_id} deleted")
    
    from helpers.utils import delete_agentcore_execution_role, SAMPLE_ROLE_NAME
    delete_agentcore_execution_role(SAMPLE_ROLE_NAME)

    O notebook de referência percorre as oito ações suportadas com uma sessão de navegador ao vivo, incluindo arrastar com o mouse, rolar, entrada de teclado e combinações de atalhos.

    Conclusão

    Quando a AWS lançou o Amazon Bedrock AgentCore Browser, ele ofereceu aos agentes de IA um ambiente de navegador totalmente gerenciado e baseado em nuvem para interagir com sites — navegando páginas, extraindo conteúdo e automatizando fluxos de trabalho em escala por meio do Playwright e do CDP.

    As OS Level Actions estendem essa capacidade além da camada web para elementos de interface visíveis na tela. Caixas de diálogo nativas, prompts de segurança, atalhos de teclado e elementos do próprio navegador deixam de ser bloqueadores. Os agentes agora conseguem observar, raciocinar e agir sobre o desktop completo do SO dentro da mesma sessão.

    Combinadas com as capacidades existentes do AgentCore Browser — como entendimento visual e integração com frameworks como Playwright e Amazon Nova Act — as OS Level Actions fecham a última lacuna na cobertura de automação de navegadores.

    Para começar a construir:

    Fonte

    Introducing OS Level Actions in Amazon Bedrock AgentCore Browser (https://aws.amazon.com/blogs/machine-learning/introducing-os-level-actions-in-amazon-bedrock-agentcore-browser/)

  • Defesa inteligente de mensagens com Amazon Bedrock: como a IA detecta informações de contato disfarçadas

    O problema: comunicação direta fora dos canais aprovados

    Em plataformas de corretagem — marketplaces que conectam compradores e vendedores — existe um risco constante: as partes trocam informações de contato dentro do sistema de mensagens e passam a negociar diretamente, fora da plataforma. Isso representa perda de receita imediata, erosão do valor do serviço e danos duradouros às relações com parceiros.

    O desafio é que mensagens legítimas precisam continuar existindo. Detalhes de entrega como “deixe ao lado da porta dos fundos” ou “entregue somente após as 16h” são informações válidas. O problema está quando telefones, nomes de empresas, endereços de e-mail ou endereços físicos são compartilhados — mesmo que de forma disfarçada.

    A AWS publicou um artigo técnico detalhando como usar os Modelos Fundacionais Amazon Nova no Amazon Bedrock para identificar essas tentativas, tanto as óbvias quanto as sofisticadas, além de extrair análise de sentimento e pontos de melhoria do serviço.

    Por que expressões regulares (regex) não são suficientes

    A primeira solução que vem à mente para detectar padrões de texto é o uso de Expressões Regulares (regex). E de fato, regex funciona bem para padrões estruturados: números de telefone no formato XXX-XXX-XXXX, endereços de e-mail no formato nome@empresa.com. Para esses casos, um padrão como \d{3}-\d{3}-\d{4} resolve o problema.

    O problema começa quando as pessoas passam a disfarçar as informações intencionalmente. Um exemplo simples: a mensagem “555inches 555inches 5555inches” claramente tenta mascarar um número de telefone usando “inches” (polegadas) como separador. Um regex específico consegue capturar esse padrão — mas e quando o método de disfarce muda? E se alguém usar emojis, palavras por extenso, leetspeak (substituição de letras por números e símbolos), ou combinar vários métodos ao mesmo tempo?

    Além disso, regex é completamente incapaz de realizar análise de sentimento, entender contexto ou identificar intenções. Para esses cenários mais complexos e dinâmicos, a recomendação da AWS é usar IA generativa com o Amazon Bedrock.

    Amazon Bedrock: IA generativa como solução

    O Amazon Bedrock é um serviço totalmente gerenciado e sem servidor que oferece acesso a uma variedade de modelos fundacionais de alto desempenho. Ele permite experimentar, personalizar e integrar capacidades de IA generativa em aplicações usando os serviços familiares da AWS.

    Para começar a usar os modelos e testar prompts, é necessário ter:

    • Uma conta AWS ativa
    • Permissões IAM adequadas
    • Familiaridade com o Console de Gerenciamento da AWS
    • Noções básicas de engenharia de prompts

    O ambiente de testes é o playground do Amazon Bedrock, disponível diretamente no console da AWS. Usando o modelo Amazon Nova 2 Lite no modo Single Prompt, é possível ajustar parâmetros de inferência como o comprimento da resposta (até 1.000 tokens) e a temperatura (para saídas mais consistentes).

    Detecção na prática: do simples ao complexo

    Caso 1: número de telefone disfarçado com emojis

    Considere a mensagem: “I can get that done for you directly :five: :five: :five:-:five: :five: :five:-:zero: :one: :one: :one:”. Um prompt simples já é suficiente para que o modelo identifique o número:

    “Analise o feedback de clientes sobre pedidos de entrega para uma corretagem e identifique se o fornecedor forneceu números de telefone. O texto pode conter emojis para disfarçar o conteúdo original.”

    O modelo Nova 2 Lite decodifica os emojis corretamente e conclui que se trata de um número de telefone disfarçado.

    Caso 2: múltiplos métodos de disfarce simultâneos

    O cenário mais desafiador envolve uma mensagem com vários tipos de ofuscação ao mesmo tempo — emojis, leetspeak, medidas falsas e informações espalhadas pelo texto. O exemplo usado no artigo original contém:

    • Nome de empresa disfarçado: Am@z0n, Inc.
    • Telefone com unidades de medida falsas: 321inches 555inches 0177inches
    • E-mail explícito: tylerh@anycompany.com
    • E-mail sem arroba: jesseatanycompany.com
    • Telefone com reticências: 123...555....0123
    • Telefone com emojis de números
    • Endereço físico completo
    • Nome completo e características físicas pessoais

    Para esse caso, o prompt precisa instruir o modelo a agir como um detetive, identificando informações de contato em todas as categorias — telefone, nome de empresa, e-mail, endereço, nome pessoal e características físicas — enquanto ignora medidas de frete legítimas. O prompt também solicita que as descobertas sejam agrupadas por categoria em formato JSON, com nível de confiança (escala de 1 a 5) e justificativa para cada item.

    O resultado retornado pelo modelo identificou corretamente: 3 números de telefone, 2 nomes de empresas, 2 endereços de e-mail, 1 endereço físico, 1 nome pessoal e características físicas — tudo estruturado em JSON pronto para ser consumido por sistemas downstream.

    Otimizando o prompt com a ferramenta nativa do Bedrock

    O Amazon Bedrock oferece uma ferramenta de otimização de prompts que reescreve automaticamente os prompts para obter resultados mais adequados ao modelo e ao caso de uso. O prompt otimizado é estruturado em seções distintas — Tarefa, Instruções e Formato de Saída — o que produz respostas mais consistentes e organizadas.

    Após desenvolver e validar os prompts, é importante testá-los em escala usando o Amazon Bedrock Evaluations, além de considerar fatores como custo, throughput e os endpoints e cotas disponíveis.

    Além da detecção: análise de sentimento e itens de ação

    Detectar violações de política é apenas o primeiro passo. O artigo também demonstra como usar o Amazon Bedrock para extrair inteligência adicional das mensagens, seguindo as boas práticas de prompting para os modelos Amazon Nova.

    Análise de sentimento

    Um prompt estruturado analisa o sentimento expresso pelo fornecedor em relação ao serviço ou aplicativo da corretagem, classificando-o como Positivo, Neutro ou Negativo, com nível de confiança e justificativa em no máximo 20 palavras. O retorno é em JSON:

    {
      "Sentiment": "Negative",
      "Confidence": 90,
      "Reason": "Words 'sucks' and 'cannot save' indicate clear dissatisfaction with the app."
    }

    Identificação de itens de ação

    Um terceiro prompt analisa se há itens pendentes que exigem investigação da corretagem — como problemas técnicos reportados pelos usuários. O resultado é usado para criar tickets de suporte automaticamente:

    {
      "Action": "Investigate brokerage app issue",
      "Confidence": 95,
      "Reason": "User reports inability to save stage updates, indicating a functional problem."
    }

    Gerenciamento de prompts em produção

    Os três prompts finais — violações de política, análise de sentimento e itens de ação — são armazenados no Amazon Bedrock Prompt Management com controle de versão. Essa abordagem permite que equipes de desenvolvimento atualizem os prompts sem interromper a orquestração de mensagens já em produção, além de facilitar o reuso dos prompts em múltiplos processos.

    Resultados e conclusão

    Em testes com uma amostra de 10 mensagens reais de corretagem, a abordagem com IA generativa atingiu 100% de precisão na identificação de informações de contato ofuscadas — um resultado que métodos baseados em regex não conseguiriam alcançar com a mesma flexibilidade.

    A comparação entre as duas abordagens deixa claro o diferencial da IA generativa:

    • Compreensão contextual: detecta informações disfarçadas levando em conta o contexto da mensagem
    • Adaptabilidade: identifica novas técnicas de evasão sem necessidade de atualizações manuais constantes
    • Análise multidimensional: avalia sentimento, itens de ação e violações de política em uma única solução
    • Pontuação de confiança: permite tomadas de decisão mais precisas e graduadas
    • Processamento de linguagem natural: interpreta variações como leetspeak e referências dependentes de contexto

    Próximos passos sugeridos pela AWS

    Após desenvolver os prompts, a AWS recomenda integrá-los aos fluxos de trabalho existentes via Amazon Bedrock API — o que permite chamadas de inferência em tempo real para múltiplos casos de uso. Para detalhes de implementação, a documentação indica o padrão fazendo requisições ao Amazon Bedrock via Amazon API Gateway.

    Para implementações mais complexas, que envolvem múltiplas inferências de modelo, o AWS Step Functions pode orquestrar essas interações com coordenação de processos paralelos, tratamento de erros e retentativas automáticas. Veja mais em construindo aplicações de IA generativa com AWS Step Functions e Amazon Bedrock.

    O Amazon EventBridge atua como roteador de eventos para orquestrar fluxos complexos entre serviços AWS, respondendo a eventos de negócio, mudanças de sistema e gatilhos baseados em tempo. Mais detalhes em construindo uma aplicação orientada a eventos com Amazon EventBridge.

    Por fim, o Amazon Bedrock AgentCore permite criar sistemas de IA autônomos com processamento de dados em tempo real e protocolos de segurança integrados. Para começar, acesse como lançar e escalar agentes com segurança no Amazon Bedrock AgentCore.

    Fonte

    Intelligence-driven message defense and insights using Amazon Bedrock (https://aws.amazon.com/blogs/machine-learning/intelligence-driven-message-defense-and-insights-using-amazon-bedrock/)