Category: Uncategorized

  • Amazon Cognito lança limites provisionados: ajuste de capacidade em minutos, não semanas

    O problema que todo time de identidade já enfrentou

    Imagine que sua empresa está se preparando para o maior evento de vendas do ano — uma Black Friday, uma virada de exercício fiscal, ou o pico de declarações de imposto de renda. Você precisa garantir que o serviço de autenticação vai aguentar o tranco. Aí você descobre que aumentar os limites de taxa do Amazon Cognito exige abrir um ticket de suporte e esperar entre 10 e 14 dias para a aprovação.

    Esse cenário foi realidade por muito tempo para equipes de segurança, arquitetos de identidade e times de engenharia que dependem do Cognito em produção. A necessidade de planejar com semanas de antecedência — ou correr para escalar uma solicitação urgente — criava um gargalo operacional considerável, especialmente para negócios com tráfego sazonal intenso.

    A AWS identificou esse problema e respondeu com uma mudança significativa: a partir de 6 de julho de 2026, o Amazon Cognito passou a oferecer os chamados limites provisionados (provisioned limits), um mecanismo de autoatendimento que permite ajustar a capacidade de autenticação em minutos, diretamente pelo console.

    O que são os limites provisionados

    Os limites provisionados são uma nova camada de controle de capacidade disponível na aba Provisioned limits dentro do console do Amazon Cognito, no nível de conta (por Região AWS, por conta). Com esse recurso, é possível aumentar ou reduzir a capacidade provisionada sob demanda, com efeito imediato.

    O modelo funciona com dois mecanismos complementares:

    • Limite provisionado (console do Amazon Cognito): controla a capacidade que você reserva ativamente. Alterações entram em vigor imediatamente. A cobrança ocorre sobre a capacidade provisionada acima do limite padrão, independentemente do quanto é efetivamente consumido.
    • Limite máximo de conta (console do AWS Service Quotas): define o teto máximo de Requisições por Segundo (RPS) que sua conta pode provisionar. Elevar esse teto não gera cobrança adicional — ele apenas desbloqueia a possibilidade de provisionar mais capacidade.

    Juntos, esses dois controles oferecem precisão tanto na gestão de custos quanto na gestão de capacidade. Você pode subir o teto com antecedência, sem custo, e só ativar a capacidade extra quando realmente precisar.

    Imagem original — fonte: Aws

    Como os três valores funcionam juntos

    Para entender a lógica do modelo, vale usar o exemplo da API UserCreation, que tem limite padrão de 50 RPS. No estado inicial, você tem três valores:

    • Limite padrão: 50 RPS (incluso sem custo adicional)
    • Limite provisionado: 50 RPS (igual ao padrão — capacidade faturada é 0)
    • Limite máximo de conta: 50 RPS (teto atual da conta)

    Se você tentar provisionar 55 RPS diretamente, o console bloqueará a ação, pois o valor excede o teto máximo de 50 RPS. Para avançar, é necessário primeiro solicitar um aumento do limite máximo de conta via Service Quotas. Aproximadamente 90% dessas solicitações são aprovadas automaticamente em minutos. Para aumentos maiores, dependendo da categoria de API e da Região, pode ser necessária revisão manual pelo suporte da AWS.

    Após a aprovação do novo teto (digamos, 55 RPS), você retorna ao console do Cognito e ajusta o limite provisionado para 55 RPS. A partir daí, a capacidade faturada passa a ser de 5 RPS (55 menos os 50 do padrão). Quando o evento de pico termina, basta reduzir o limite provisionado de volta ao padrão — a cobrança extra cessa imediatamente.

    Um detalhe importante sobre o modelo de cobrança: você é cobrado pela capacidade que provisiona acima do padrão, e não pelo que efetivamente usa. Se você provisionar 80 RPS (com padrão de 50), será cobrado por 30 RPS mesmo que o uso real seja de apenas 60 RPS. Isso reforça a importância de dimensionar a capacidade com precisão, alinhada à demanda esperada.

    Categorias ajustáveis e não ajustáveis

    Nem todas as categorias de API do Cognito podem ter seus limites ajustados. A aba de limites provisionados exibe cada categoria com seu status de ajustabilidade. Por exemplo, UserCreation é marcada como Adjustable (ajustável) e pode ser modificada. Já UserList aparece como Not adjustable (não ajustável) — você consegue visualizar os valores de limite padrão e provisionado, mas não pode alterá-los.

    Para as categorias ajustáveis, a visão consolidada mostra o limite padrão, o limite provisionado atual e a capacidade faturada de forma direta, facilitando o acompanhamento e a tomada de decisão.

    Casos de uso práticos

    A flexibilidade do novo modelo atende a cenários bem variados. Serviços de declaração de imposto de renda, por exemplo, concentram cerca de 90% do volume anual de autenticação em poucos meses. Plataformas de e-commerce enfrentam picos intensos em datas comemorativas. Antes, essas equipes precisavam solicitar aumentos de capacidade semanas antes do evento e torcer para que a aprovação chegasse a tempo.

    Agora, o fluxo muda completamente: eleve o teto máximo de conta com antecedência (sem custo), e quando o pico se aproximar, aumente o limite provisionado para o valor necessário. Após o evento, reduza a capacidade e pare de ser cobrado pela capacidade extra. Tudo isso sem abrir um único ticket de suporte.

    O mesmo vale para testes de carga planejados ou para crescimento viral inesperado — qualquer ajuste é feito em autoatendimento, em minutos.

    Considerações para SaaS multi-tenant

    Para provedores de Software como Serviço (SaaS) que gerenciam múltiplos tenants com requisitos de throughput diferentes, a AWS disponibilizou também a API UpdateProvisionedLimit, que permite o gerenciamento programático dos limites provisionados.

    Equipes que utilizam user pools dedicados por tenant, por exemplo, podem integrar essa API em seus pipelines de infraestrutura como código para ajustar os limites por tier de serviço. Isso abre a possibilidade de provisionar maior capacidade para tenants enterprise e menor capacidade para tenants em plano gratuito, com ajustes independentes por tenant conforme a demanda de cada um.

    Como começar

    O recurso de limites provisionados para user pools do Amazon Cognito está disponível desde 6 de julho de 2026, em todas as Regiões AWS onde o Cognito é suportado. Para colocar em prática, a AWS recomenda o seguinte fluxo:

    • Revise os padrões atuais de tráfego de autenticação usando métricas do Amazon CloudWatch para entender sua linha de base
    • Configure alarmes no CloudWatch em 70% e 85% dos seus limites de taxa atuais
    • Verifique se sua equipe tem as permissões adequadas de Gerenciamento de Identidade e Acesso da AWS (IAM) tanto para o Service Quotas quanto para a aba de limites provisionados no console do Cognito
    • Eleve o limite máximo de conta no Service Quotas com base nas suas expectativas de demanda
    • Use a aba Provisioned limits no console do Amazon Cognito para ajustar a capacidade conforme necessário

    Recursos adicionais

    Fonte

    From 2 weeks to 2 minutes: Amazon Cognito launches Provisioned limits for self-service rate limit management (https://aws.amazon.com/blogs/security/from-2-weeks-to-2-minutes-amazon-cognito-launches-provisioned-limits-for-self-service-rate-limit-management/)

  • Pacotes de conformidade PCI DSS e PCI 3DS da AWS para a Primavera de 2026 já estão disponíveis

    AWS renova certificações PCI e expande escopo de serviços e regiões

    A Amazon Web Services (AWS) anunciou a conclusão bem-sucedida da renovação de suas certificações de Padrão de Segurança de Dados da Indústria de Cartões de Pagamento (PCI DSS) e de Segurança em Três Domínios (PCI 3DS). Além da renovação em si, a AWS ampliou o escopo desta certificação, incluindo três novos serviços e uma nova região.

    O que foi adicionado ao escopo

    Novos serviços certificados

    Nova região incluída

    • Ásia-Pacífico – Nova Zelândia

    Com essa expansão, clientes que utilizam esses serviços podem continuar operando dentro dos requisitos de conformidade PCI DSS e PCI 3DS, sem precisar abrir mão de inovação por conta de restrições regulatórias. A lista completa de serviços cobertos pode ser consultada na página de serviços no escopo por programa de conformidade da AWS.

    O que compõe os pacotes de conformidade

    Os pacotes de conformidade PCI DSS e PCI 3DS disponibilizados pela AWS incluem dois componentes principais para cada certificação:

    • Atestado de Conformidade (AOC) – documento que comprova que a AWS foi validada com sucesso em relação aos padrões PCI DSS e PCI 3DS.
    • Resumo de Responsabilidades da AWS – material que orienta os clientes a entenderem suas próprias responsabilidades ao desenvolver e operar ambientes seguros na AWS para o tratamento de dados de cartões de pagamento.

    A avaliação foi conduzida pela Coalfire, empresa terceirizada credenciada como Avaliadora de Segurança Qualificada (QSA).

    Como acessar os relatórios

    Os pacotes de relatórios PCI DSS e PCI 3DS estão disponíveis pelo AWS Artifact, portal de autoatendimento da AWS que oferece acesso sob demanda a relatórios de conformidade, facilitando processos de auditoria.

    Para saber mais sobre os programas PCI e outras iniciativas de conformidade e segurança da AWS, acesse a página de Programas de Conformidade da AWS. Em caso de dúvidas relacionadas à conformidade, a AWS disponibiliza o canal de suporte de conformidade.

    Fonte

    Spring 2026 PCI DSS and PCI 3DS compliance packages for AWS now available (https://aws.amazon.com/blogs/security/spring-2026-pci-dss-and-pci-3ds-compliance-packages-for-aws-now-available/)

  • AWS Security Hub Extended adiciona segurança de cadeia de suprimentos como sua 10ª categoria

    Nova categoria no Security Hub Extended: segurança de cadeia de suprimentos

    A AWS anunciou a adição de uma nova categoria ao plano Security Hub Extended: a segurança de cadeia de suprimentos (Supply Chain Security). Essa é a 10ª categoria do plano, e os parceiros curados escolhidos para essa frente são a Chainguard e a Socket. Com essa expansão, o plano passa a contar com 23 soluções de parceiros curados integradas em um único ambiente.

    Por que isso importa para equipes de desenvolvimento e segurança

    À medida que os times de desenvolvimento adotam bibliotecas de código aberto em larga escala, cresce também a preocupação das equipes de segurança com a confiabilidade dos pacotes que entram nos ambientes de produção. A questão central é simples, mas crítica: como garantir que uma dependência de terceiros não carrega código malicioso embutido?

    Com a nova categoria de Supply Chain Security, o Security Hub Extended passa a oferecer a capacidade de detectar e bloquear dependências maliciosas antes que sejam incorporadas às aplicações. Ou seja, o problema é tratado na origem — ainda na fase de build — e não apenas após um incidente.

    Como funciona o modelo do Security Hub Extended

    O AWS Security Hub Extended é um plano dentro do AWS Security Hub que centraliza a contratação, o deploy e a integração de uma solução de segurança corporativa completa. Ele cobre múltiplas camadas: endpoint, identidade, e-mail, rede, dados, navegador, nuvem, inteligência artificial (IA), operações de segurança e, agora, cadeia de suprimentos.

    Todos os achados de segurança (findings) gerados pelas soluções participantes são emitidos no padrão Open Cybersecurity Schema Framework (OCSF) e agregados automaticamente no AWS Security Hub. Isso significa que equipes de segurança têm uma visão consolidada de riscos que cruzam diferentes fronteiras tecnológicas, sem precisar alternar entre ferramentas distintas.

    O modelo de contratação também é um diferencial: todas as soluções aparecem em uma única fatura da AWS, com precificação pay-as-you-go (pague pelo uso) e sem necessidade de compromissos de longo prazo — o mesmo modelo já aplicado nas demais categorias do plano Extended.

    Disponibilidade e próximos passos

    As duas novas soluções curadas — Chainguard e Socket — já estão disponíveis em todas as regiões comerciais da AWS onde o Security Hub opera. Para verificar quais regiões são suportadas, consulte a tabela de regiões da AWS.

    Para detalhes sobre preços, acesse a página de preços do AWS Security Hub. Para começar a usar, você pode acessar diretamente o console do AWS Security Hub ou visitar a página do produto.

    A AWS sinalizou que continuará expandindo o plano Extended com base no feedback dos clientes, o que indica que novas categorias devem surgir ao longo do tempo.

    Fonte

    AWS Security Hub Extended adds supply chain security as its 10th category (https://aws.amazon.com/about-aws/whats-new/2026/08/aws-security-hub-extended-adds-supply-chain-security)

  • AWS Network Firewall ganha funcionalidade de proxy explícito — entenda o que muda

    O que foi anunciado

    A AWS anunciou, em pré-visualização pública, a reintrodução do proxy explícito como uma funcionalidade integrada ao AWS Network Firewall — e não mais como um produto separado. Com isso, equipes de segurança podem usar uma única política de firewall para controlar tanto o tráfego via proxy explícito quanto via firewall transparente.

    Por que isso é relevante: o histórico da mudança

    Em novembro de 2025, a AWS havia lançado o Network Firewall proxy em prévia pública como um produto standalone, com sua própria política de segurança separada. Na prática, isso criava um problema real: quem já usava o Network Firewall precisava manter duas políticas distintas, duplicando esforço de gestão e abrindo espaço para inconsistências de configuração.

    O feedback dos clientes que testaram a versão anterior foi claro — eles queriam paridade de capacidades e uma política unificada. A AWS ouviu e redesenhou a abordagem.

    Como funciona agora

    Com o novo modelo, é possível configurar o AWS Network Firewall em um modo de implantação chamado no-source-preservation (sem preservação de origem), que permite ao serviço atuar como proxy explícito. Nessa configuração, todas as funcionalidades já existentes do Network Firewall continuam disponíveis, incluindo:

    • Grupos de regras gerenciadas
    • Defesa ativa contra ameaças
    • Filtragem por Geo-IP
    • Filtragem por URL e categoria de domínio
    • Regras baseadas em atributos de contêiner para Amazon EKS (Elastic Kubernetes Service) e Amazon ECS (Elastic Container Service)

    O ponto central é que a mesma política de segurança pode ser aplicada tanto para o proxy explícito quanto para o firewall transparente — eliminando a necessidade de manter configurações duplicadas.

    Disponibilidade e custo durante a prévia

    O recurso está disponível para testes na região US East (Ohio). Durante o período de pré-visualização pública, o Network Firewall no modo no-source-preservation é oferecido gratuitamente. Para mais detalhes técnicos sobre como configurar e implantar, a AWS disponibiliza a documentação oficial do Network Firewall no modo no-source-preservation.

    O que isso significa na prática

    Para times de segurança e arquitetos de rede que já utilizam o AWS Network Firewall, essa mudança simplifica bastante a operação. Em vez de gerenciar dois produtos com políticas independentes, passa a existir um único ponto de controle centralizado — o que facilita auditorias, reduz superfície de erro e mantém consistência nas regras de bloqueio contra exfiltração de dados e injeção de malware.

    Vale testar o recurso em ambiente de desenvolvimento ou homologação antes de considerar qualquer adoção em produção, especialmente por se tratar ainda de uma prévia pública.

    Fonte

    [Preview Announcement] Re-introducing Forward Proxy as AWS Network Firewall Functionality (https://aws.amazon.com/about-aws/whats-new/2026/08/aws-network-firewall-forward-proxy-preview/)

  • AWS Transform com Modernização Contínua agora está disponível para todos

    O que foi anunciado

    A AWS anunciou que o recurso de modernização contínua do AWS Transform chegou à disponibilidade geral em todas as Regiões AWS onde o AWS Transform é suportado. Trata-se de uma capacidade voltada para equipes de engenharia que precisam identificar e corrigir dívida técnica em repositórios de código-fonte em larga escala.

    O que o recurso oferece

    Com a modernização contínua, as equipes conseguem conectar organizações do GitHub, grupos do GitLab e workspaces do Bitbucket diretamente ao serviço. A partir daí, é possível executar análises sob demanda ou em agendamentos recorrentes, além de priorizar os achados com base em diferentes critérios:

    • Dívida técnica
    • Segurança
    • Prontidão para agentes (agentic readiness)
    • Prontidão para modernização
    • Critérios de análise personalizados

    Como funciona na prática

    Toda a experiência pode ser gerenciada diretamente pela aplicação web do AWS Transform: conexão com provedores de código-fonte, início e agendamento de análises, revisão dos achados e criação de remediações — tudo em um só lugar.

    Para achados que possuem uma remediação associada, o serviço cria branches automaticamente e abre pull requests ou merge requests com as alterações de código validadas, prontas para revisão da equipe. Um ponto importante: as análises e remediações rodam na própria conta AWS do cliente, usando as credenciais do usuário, enquanto o código-fonte permanece sob controle da equipe — sem transferência de dados para ambientes externos.

    Opções para desenvolvedores

    Além da interface web, a AWS também disponibiliza outras formas de trabalhar com o recurso. Por meio do AWS Transform Kiro Power e plugins de agente, ou ainda pelo AWS Transform CLI, os desenvolvedores podem:

    • Trabalhar diretamente da IDE ou do terminal
    • Analisar repositórios locais
    • Organizar repositórios com labels
    • Executar análises localmente ou remotamente, utilizando Amazon EC2 ou AWS Batch

    Como começar

    Para explorar o recurso, a AWS indica duas opções de entrada: abrir a aplicação web do AWS Transform ou utilizar o AWS Transform Kiro Power e os plugins de agente. A documentação completa está disponível no guia de usuário do AWS Transform, na seção dedicada à modernização contínua.

    Fonte

    AWS Transform continuous modernization is now generally available (https://aws.amazon.com/about-aws/whats-new/2026/7/aws-transform-continuous-general-available)

  • Regra de Segurança HIPAA na AWS: Guia de Implementação das Salvaguardas Técnicas

    A AWS publica guia técnico de conformidade HIPAA para workloads de saúde

    A AWS acaba de disponibilizar o documento Guia de Implementação e Prontidão das Salvaguardas Técnicas da Regra de Segurança HIPAA na AWS, voltado para entidades cobertas e associados de negócios que constroem workloads de saúde na nuvem. O material oferece orientações práticas sobre como configurar, implementar e evidenciar conformidade com os requisitos de Salvaguardas Técnicas da Regra de Segurança HIPAA, definidos na seção 45 CFR §164.312.

    Para equipes brasileiras que atuam com sistemas de saúde hospedados na AWS — seja em projetos para clientes norte-americanos ou em organizações com obrigações regulatórias equivalentes — esse guia é uma referência técnica de alto valor.

    O que são as Salvaguardas Técnicas da HIPAA?

    A seção §164.312 da Regra de Segurança HIPAA define cinco padrões e nove especificações de implementação que cobrem as seguintes áreas:

    • Controle de acesso — quem pode acessar as Informações de Saúde Eletrônicas Protegidas (ePHI)
    • Controles de auditoria — registro e monitoramento de acessos e atividades
    • Integridade — garantia de que os dados não foram alterados indevidamente
    • Autenticação — verificação da identidade de usuários e sistemas
    • Segurança de transmissão — proteção dos dados em trânsito

    Essas salvaguardas formam o núcleo técnico da conformidade HIPAA e são o foco central do guia publicado pela AWS.

    O que o guia cobre?

    Responsabilidade compartilhada para HIPAA na AWS

    Um dos pontos mais práticos do documento é a matriz de responsabilidade compartilhada, que mapeia cada especificação da §164.312 indicando o que a AWS gerencia por padrão e o que o cliente precisa configurar e operar por conta própria. Essa divisão clara é fundamental para que as equipes de conformidade saibam exatamente onde focar seus esforços.

    Arquitetura de fronteira para ePHI

    O guia orienta como estabelecer uma fronteira definida para os dados de ePHI dentro do ambiente AWS, ajudando as equipes a delimitar com precisão quais recursos e fluxos de dados estão no escopo da conformidade HIPAA.

    Fluxo de dados e criptografia de ePHI

    É apresentada uma arquitetura de referência que rastreia o fluxo das Informações de Saúde Eletrônicas Protegidas (ePHI) e associa cada etapa à especificação correspondente da §164.312. Isso facilita muito a visualização de onde aplicar criptografia e outros controles técnicos.

    Checklist de fundação

    Antes de configurar os controles individuais de Salvaguardas Técnicas, o documento recomenda um conjunto de pré-requisitos essenciais. Esse checklist de fundação serve como ponto de partida para garantir que a base do ambiente está corretamente estruturada.

    As mudanças propostas pelo NPRM de 2025

    O guia também cobre as atualizações propostas pelo Aviso de Proposta de Regulamentação (NPRM) publicado pelo Departamento de Saúde e Serviços Humanos dos EUA (HHS) em janeiro de 2025. As mudanças propostas são significativas e incluem:

    • Criptografia em repouso e em trânsito passando de recomendada para obrigatória
    • Autenticação Multifator (MFA) tornando-se obrigatória para todos os acessos a ePHI
    • Novos requisitos para segmentação de rede
    • Especificações para gerenciamento de configuração
    • Obrigações de proteção contra malware
    • Requisitos de gerenciamento de patches
    • Regras para remoção de software
    • Atualizações em resposta a incidentes e notificação de violações

    É importante destacar que, até junho de 2026, a regra final ainda não havia sido publicada. O guia da AWS cobre tanto a regra atual quanto as mudanças propostas, e recomenda tratar todas as especificações como obrigatórias para novos workloads — uma postura de conformidade proativa que faz bastante sentido para quem está construindo sistemas agora.

    Outro ponto relevante das propostas é a eliminação da distinção entre especificações “Endereçáveis” e “Obrigatórias” — atualmente, algumas salvaguardas permitem alternativas ou justificativas para não implementação. Com a nova regra, esse espaço de flexibilidade seria eliminado, e o inventário de ativos também se tornaria obrigatório.

    Para quem é esse guia?

    O documento foi escrito para arquitetos de nuvem, engenheiros de segurança, CISOs e equipes de conformidade em entidades cobertas e associados de negócios que constroem ou operam workloads de saúde na AWS. O guia pressupõe familiaridade com os serviços AWS e se posiciona como uma referência prática de implementação — não como interpretação jurídica ou regulatória.

    Vale reforçar: o foco é exclusivamente nas Salvaguardas Técnicas. Para dúvidas sobre Salvaguardas Administrativas, Salvaguardas Físicas, análise de risco e preparação para avaliações, a AWS indica o contato com a equipe do AWS Security Assurance Services ou com o representante de conta AWS.

    Quem produziu o guia?

    O material foi produzido pelo AWS Security Assurance Services, LLC, empresa credenciada como Avaliador Externo HITRUST e QSAC de PCI, com contribuições das equipes de HCLS e Conformidade da AWS. O documento é fornecido para fins informativos e de orientação, e não constitui aconselhamento jurídico, regulatório ou de conformidade — sendo responsabilidade de cada organização determinar sua aplicabilidade ao ambiente específico.

    Como acessar

    O guia está disponível para download direto: Baixe o Guia de Implementação das Salvaguardas Técnicas HIPAA na AWS.

    Fonte

    HIPAA Security Rule on AWS – Technical Safeguards Implementation and Readiness Guidance (https://aws.amazon.com/blogs/security/hipaa-security-rule-on-aws-technical-safeguards-implementation-and-readiness-guidance/)

  • IAM Policy Simulator migra para o console do IAM e ganha novas capacidades

    O que mudou no IAM Policy Simulator

    A Gerenciamento de Identidade e Acesso da AWS (IAM) acaba de anunciar uma atualização significativa no IAM Policy Simulator, a ferramenta utilizada para testar e validar as permissões concedidas pelas políticas do IAM antes de colocá-las em produção. A novidade traz três mudanças principais que afetam diretamente o dia a dia de times de segurança e plataforma.

    As três grandes mudanças

    1. O simulador agora vive dentro do console do IAM

    Até então, o IAM Policy Simulator funcionava como um site separado, desconectado da experiência principal. Com essa atualização, ele passa a fazer parte do próprio console do IAM, substituindo o site standalone. Na prática, isso significa que agora é possível testar políticas no mesmo lugar onde as identidades e permissões são gerenciadas — sem precisar alternar entre ferramentas diferentes.

    2. Suporte a SCPs (Políticas de Controle de Serviço)

    Uma das adições mais relevantes é a possibilidade de incluir SCPs (Service Control Policies — Políticas de Controle de Serviço) nas simulações. Com isso, é possível testar como a hierarquia de SCPs de uma organização interage com as políticas de identidade e de recursos. Além disso, via API, agora é possível verificar como chaves de condição — como restrições de região e requisitos de tags — afetam o resultado final de uma permissão.

    3. Mais flexibilidade para modelar cenários reais

    O simulador ganhou também maior flexibilidade para cobrir cenários que times de segurança e plataforma enfrentam na prática. Entre as novidades estão:

    • A possibilidade de excluir políticas específicas da simulação, permitindo modelar o cenário “o que acontece se eu remover esta política?”
    • Em simulações entre contas (cross-account), o simulador agora reporta decisões por política para políticas baseadas em identidade e em recursos, com as declarações correspondentes retornadas para uma solicitação negada refletindo apenas as políticas que de fato influenciaram a decisão.

    Por que isso importa para times de segurança

    Em conjunto, essas mudanças ajudam as equipes a automatizar testes unitários de políticas, detectar acessos excessivamente permissivos e validar guardrails com mais confiança. Trata-se de uma evolução importante para quem precisa garantir que as permissões estejam corretas antes de qualquer implantação em ambiente produtivo.

    Disponibilidade e acesso

    As novas funcionalidades estão disponíveis em todas as regiões da AWS onde o IAM Policy Simulator já era suportado. Para acessá-lo, basta abrir o console do IAM e selecionar Policy simulator no painel de navegação.

    Para aprofundar o conhecimento, a AWS disponibiliza os seguintes recursos de documentação:

    Fonte

    IAM Policy Simulator moves to the IAM console and adds additional capabilities (https://aws.amazon.com/about-aws/whats-new/2026/07/iam-policy-simulator-iam-console/)

  • Velocidade e segurança com agentes de IA: um framework de controle para times de desenvolvimento

    O desafio de escalar segurança com agentes de IA

    Agentes de IA para programação — como o Kiro e o Claude Code — já fazem parte do dia a dia de muitos times de desenvolvimento. Com um simples prompt em linguagem natural, eles geram funcionalidades, escrevem testes e refatoram código. Em uma tarde, um único agente pode abrir dezenas de pull requests em diferentes repositórios.

    Essa produtividade tem um custo: os agentes otimizam para completar tarefas na velocidade de uma máquina, sem qualquer compreensão do perfil de risco da organização. Além disso, por meio de protocolos como o Protocolo de Contexto de Modelo (MCP), eles ultrapassam os limites da IDE — chamando APIs, consultando bancos de dados e modificando infraestrutura inteira.

    Para endereçar esse cenário, a AWS publicou um framework de controle de segurança de aplicações (AppSec) voltado especificamente para agentes de IA em desenvolvimento de software. O framework se organiza em dois pilares: controles no momento de autoria, que moldam o que o agente produz dentro da IDE, e controles no momento do build, que verificam e bloqueiam o que chega à produção. Os controles existentes do Ciclo de Vida de Desenvolvimento de Software Seguro (SDLC) continuam válidos e são peça central de uma estratégia de defesa em profundidade.

    Os principais riscos identificados

    O framework identifica sete categorias de risco, ordenadas por severidade:

    • R001 — Injeção de prompt e de contexto: agentes leem conteúdo não confiável (descrições de issues, páginas web, respostas MCP, arquivos README de pacotes de terceiros). Esse conteúdo pode redirecionar o agente para divulgar segredos ou invocar ferramentas sem consentimento. É o risco número um do OWASP Top 10 para Aplicações com Modelos de Linguagem (LLM). O tratamento recomendado é separar o agente que orquestra ações confiáveis daquele exposto a conteúdo não confiável, aplicando acesso mínimo de somente leitura ao segundo, e exigindo aprovação humana para ações irreversíveis.
    • R002 — Divulgação inadvertida de dados e configurações permissivas: agentes tendem a gerar políticas com permissões amplas demais, grupos de segurança abertos, armazenamento sem criptografia ou credenciais embutidas no código. O tratamento envolve documentos de steering com requisitos de segurança e varredura de política como código (Checkov, cfn-nag) na IDE e no pipeline.
    • R003 — Mudanças não controladas chegando à produção: a geração em velocidade de máquina pode propagar um padrão falho por vários repositórios antes de ser identificado. O tratamento inclui regras de proteção de branch, revisão humana obrigatória em pull requests e execuções de agente em sandbox.
    • R004 — Riscos na cadeia de suprimentos: agentes podem recomendar pacotes depreciados, referenciar versões com Vulnerabilidades e Exposições Comuns (CVEs) conhecidas ou até “alucinar” nomes de pacotes inexistentes. O tratamento é Análise de Composição de Software (SCA) no pipeline — por exemplo, com o Amazon Inspector ou Dependabot — e resolução de dependências via um registro controlado como o AWS CodeArtifact.
    • R005 — Acesso externo não controlado: sem restrições sobre quais ferramentas e dados o agente pode acessar via MCP, uma única integração mal configurada abre caminho para recursos sensíveis. O tratamento é escopar os servidores MCP ao mínimo necessário e auditar as invocações de ferramentas.
    • R006 — Alucinações e código incorreto: código que compila, passa no linting e parece razoável ainda pode estar funcionalmente errado — misusando APIs, introduzindo erros lógicos sutis ou implementando operações sensíveis de segurança de forma incorreta. O tratamento é combinar verificação determinística (Teste de Segurança de Aplicações Estático — SAST, testes unitários) com revisão não determinística (LLM como revisor).
    • R007 — Expansão de escopo: dado um prompt de correção de bug, o agente pode também refatorar código ao redor, desabilitar um teste instável ou reorganizar imports. O tratamento é um documento de especificação que define o que deve mudar e o que não deve.

    Controles determinísticos versus não determinísticos

    O framework diferencia dois tipos de mitigação:

    • Mitigações determinísticas [D] produzem o mesmo resultado toda vez. Linters, scanners SAST, detecção de segredos e política como código definem invariantes de segurança — sem credenciais hardcoded, sem políticas IAM com wildcard. Use quando a condição pode ser expressa como uma regra.
    • Mitigações não determinísticas [ND] usam o julgamento do modelo. Incluem documentos de steering, revisão por LLM e verificação de conformidade com especificações. Capturam problemas que as regras deixam passar, mas são probabilísticas. São a nova camada que o código gerado por IA exige — porque um agente pode produzir código que passa em todos os testes determinísticos e ainda assim estar funcionalmente errado.
    • Revisão humana [H] é a camada final para decisões que nenhum dos dois tipos de ferramenta consegue tomar. O ponto importante é: aplique onde o julgamento é realmente necessário, não em tudo. Rotear tudo para um humano gera fadiga de consentimento, onde revisores aprovam por reflexo e o controle perde valor.

    Pilar 1: Controles no momento de autoria

    Os controles de autoria atuam dentro da IDE, antes e logo após a geração do código.

    Contexto como controle de segurança [ND]

    Times de segurança escrevem invariantes de segurança como orientações em linguagem natural em um documento de steering — por exemplo: políticas IAM devem seguir o princípio do menor privilégio; credenciais devem vir do AWS Secrets Manager; grupos de segurança não podem permitir acesso irrestrito. Esse arquivo é carregado no contexto do agente no início de cada sessão, fazendo com que ele gere código com esses padrões por padrão. O steering reduz o volume de problemas que chegam ao pipeline, mas não substitui as verificações posteriores.

    Especificações como limites de escopo [ND]

    Antes de gerar código, exige-se uma especificação revisada que define o que deve mudar e o que não deve. Fluxos orientados por especificação criam um ponto de revisão humana na fase de design. Para correções de bug, a especificação inclui uma lista explícita de comportamentos que devem continuar funcionando — um limite escrito contra a expansão de escopo.

    Acesso controlado a ferramentas via MCP [D + ND]

    Servidores MCP atuam como gateways controlados entre o agente e ferramentas externas. O framework recomenda escopar cada servidor MCP ao conjunto mínimo de ferramentas necessárias e fornecer uma credencial dedicada com permissões reduzidas — não as credenciais do próprio desenvolvedor. Evite autoApprove: ["*"], que remove a aprovação humana em todas as chamadas de ferramentas. Consulte a documentação de configuração de MCP do Kiro para detalhes de implementação.

    Varredura de código na IDE [D]

    Análise estática em tempo real captura erros de sintaxe, incompatibilidades de tipo e problemas de configuração enquanto o desenvolvedor ainda tem contexto completo. Extensões focadas em segurança (plugins ESLint de segurança, Checkov, SAST) adicionam feedback imediato — uma política IAM malformada é sinalizada antes que o agente continue construindo sobre ela.

    Hooks: guardrails automáticos no ponto de ação [D + ND]

    Hooks de shell são disparados ao salvar arquivos e executam verificações determinísticas (linters, formatadores, scanners de segurança). Hooks baseados em IA são disparados ao completar tarefas e verificam se a implementação corresponde à especificação, se há casos extremos não testados e se arquivos foram modificados fora do escopo da tarefa.

    Pilar 2: Controles no momento do build

    Os controles de build rodam no pipeline após o commit do código e antes de chegar à produção.

    Varredura de segurança em camadas [D]

    A sequência recomendada é: detecção de segredos primeiro (mais barata, alta severidade), depois SAST, depois SCA e por fim varredura de Infraestrutura como Código (IaC). A varredura de IaC valida templates do AWS CloudFormation, Terraform e AWS CDK contra políticas de segurança antes do deploy. Cada etapa interrompe o pipeline em caso de falha. Os resultados são exportados no formato Formato de Intercâmbio de Resultados de Análise Estática (SARIF) para auditoria de conformidade. O projeto open source Automated Security Helper (ASH) agrupa scanners de segredos, SAST, SCA e IaC em um único comando executável localmente e no AWS CodeBuild.

    Quality gates [D]

    Gates de qualidade convertem resultados de varredura em decisões de prosseguir ou não. Defina limites por severidade: bloquear em achados críticos, exigir justificativa para altos, rastrear médios. A regra é determinística: se um limite é violado, o pipeline para. Diferencie modos bloqueante e consultivo — falhas duras na branch principal, consultivas em branches de feature.

    Revisão assistida por IA [ND]

    Um revisor LLM faz a triagem de cada pull request antes da revisão humana, verificando conformidade com a especificação, expansão de escopo e padrões de segurança que passam no SAST mas violam a intenção. O AWS Security Agent (revisão de código em preview no momento da publicação) verifica pull requests contra requisitos de segurança gerenciados pela AWS e personalizados. Um princípio crítico: o agente que escreveu o código não deve ser o mesmo que o revisa. Onde possível, use um modelo diferente para revisão — dois modelos iguais podem compartilhar os mesmos pontos cegos sistemáticos.

    Revisão humana no loop [ND + H]

    Exija aprovação humana na maioria dos pull requests, especialmente os que tocam código sensível a segurança ou de alto impacto. Escale a profundidade da revisão ao risco da mudança: mudanças de baixo risco podem ter revisão mais leve; mudanças de lógica nova ou sensível exigem revisão profunda e um segundo revisor. Posicione dois gates de aprovação: após as varreduras de segurança e antes do deploy em produção. Trate a revisão humana como controle secundário — revisores são não determinísticos e também podem deixar passar problemas.

    Implementando na AWS

    O framework é agnóstico de ferramenta, mas a AWS fornece blocos de construção diretos para cada pilar:

    Por onde começar

    A AWS sugere três passos iniciais:

    • Comece com steering e especificações — encode requisitos de segurança como steering e use especificações para novas funcionalidades. Maior impacto, menor esforço. O projeto open source Project CodeGuard (iniciativa da Coalition for Secure AI sob a OASIS Open, da qual a Amazon é membro contribuinte) publica regras de steering reutilizáveis para classes de risco comuns — credenciais hardcoded, misconfigurações de IaC, cadeia de suprimentos e segurança MCP.
    • Adicione gates determinísticos no pipeline — integre SAST, SCA e detecção de segredos. São controles básicos independentemente do uso de IA.
    • Calibre e itere — revise o que os controles estão capturando, ajuste o steering para problemas recorrentes e expanda a autonomia do agente conforme a confiança cresce.

    Um ponto central do framework: desenvolvedores continuam responsáveis pela segurança do que entregam. Agentes de IA aceleram o desenvolvimento; eles não transferem a responsabilidade.

    Recursos adicionais

    Fonte

    Balancing speed and safety: A control framework for AI coding agents (https://aws.amazon.com/blogs/security/balancing-speed-and-safety-a-control-framework-for-ai-coding-agents/)

  • Estenda o Gerador de SBOM do Amazon Inspector com Plugins

    O que é o Amazon Inspector SBOM Generator?

    O Amazon Inspector é um serviço de gerenciamento de vulnerabilidades que escaneia continuamente workloads da Amazon Web Services (AWS) em busca de falhas de segurança em software. O motor por trás dessa capacidade é o Amazon Inspector SBOM Generator — conhecido como inspector-sbomgen — uma ferramenta de linha de comando independente que gera uma Lista de Materiais de Software (SBOM — Software Bill of Materials) a partir de imagens de contêiner, diretórios, arquivos compactados, sistemas locais, binários compilados e muito mais.

    Ao longo dos últimos dois anos, a AWS expandiu a cobertura do inspector-sbomgen para dezenas de ecossistemas de linguagens de programação, sistemas operacionais e aplicações amplamente utilizadas. Agora, a empresa anuncia uma novidade relevante para quem constrói com essa ferramenta: um sistema de plugins para criação de coletores de pacotes personalizados.

    Por que a AWS construiu um sistema de plugins?

    Ecossistemas de software são dinâmicos por natureza. Novos gerenciadores de pacotes, formatos de lockfile e aplicações surgem constantemente — muitas vezes com pouco escrutínio de segurança. Isso deixa equipes de segurança com uma lacuna de visibilidade: workloads em produção rodando software que as ferramentas de SBOM ainda não reconhecem.

    Antes dos plugins, o único caminho para suportar um novo ecossistema era abrir uma solicitação de funcionalidade e aguardar que a equipe do inspector-sbomgen integrasse o ecossistema e publicasse uma nova versão. O sistema de plugins muda esse cenário completamente.

    Com plugins, é possível:

    • Integrar ecossistemas não suportados nativamente: novos ecossistemas open source, formatos de pacote de nicho e ferramentas internas ou proprietárias podem ser inventariados sem modificar o inspector-sbomgen.
    • Prototipar detecção rapidamente: o sistema foi projetado para ser amigável tanto para desenvolvedores quanto para assistentes de codificação com IA. Os plugins são escritos em Lua, carregados em tempo de execução e não exigem toolchain Go nem compilação.
    • Construir sobre uma base estável: a API de plugins abstrai as diferenças entre tipos de artefatos, então a lógica de detecção é escrita uma única vez e funciona em imagens de contêiner, arquivos compactados, sistemas locais e mais.

    Internamente, a AWS já utilizou o sistema de plugins para acelerar a entrega de novos ecossistemas. Na versão 1.13, mais de 20 ecossistemas que antes eram implementados em Go — incluindo Apache Tomcat, NGINX, MySQL, Redis, WordPress e a toolchain do OpenSSH — foram convertidos para plugins embutidos no binário. A mesma versão também adicionou mais de dez ecossistemas totalmente novos como plugins, incluindo Apache Cassandra, Apache Struts, Conda, pacotes Swift e coletores de agentes de IA (Amazon Q Developer, Kiro CLI, Claude Code, GitHub Copilot e Ollama).

    Como os plugins do inspector-sbomgen funcionam

    Os plugins seguem um pipeline de duas etapas:

    • Descoberta (Discovery): varre o sistema de arquivos do artefato para identificar arquivos que contêm metadados de pacotes instalados.
    • Coleta (Collection): abre cada arquivo descoberto, analisa seu conteúdo e publica os resultados no SBOM.

    Por baixo dos panos, um barramento de eventos conecta os plugins de descoberta e coleta. Os plugins de descoberta publicam eventos listando os arquivos encontrados, e um ou mais plugins de coleta se inscrevem nesses eventos para disparar a coleta de pacotes. Desenvolvedores familiarizados com padrões de design vão reconhecer esse comportamento como o padrão observer.

    Esse desacoplamento permite que um único plugin de descoberta alimente múltiplos coletores — por exemplo, um extraindo metadados de pacotes, outro buscando segredos e outro verificando políticas — tudo a partir da mesma lista de arquivos, sem precisar percorrer o sistema de arquivos do artefato novamente.

    Criando seu primeiro plugin em 5 minutos

    O inspector-sbomgen facilita a criação de um ambiente de plugin. O comando plugin new cria um novo workspace de plugin, e a flag --with-example popula o workspace com um par de plugins de descoberta e coleta prontos para execução imediata.

    inspector-sbomgen plugin new --with-example

    Após invocar o comando, será solicitado um nome para o plugin e um diretório para o workspace. É possível fornecer valores personalizados ou usar os valores padrão:

    Plugin name (identifies the software ecosystem your plugin will inventory, e.g. debian-dpkg, rhel-rpm, python-pip, cmake) [my-custom-ecosystem]: <enter>
    Project directory [my-sbomgen-plugins]: <enter>
    Created plugin "my-custom-ecosystem" in my-sbomgen-plugins/

    Também é possível pular os prompts interativos especificando o nome do plugin e o diretório diretamente via argumentos de Interface de Linha de Comando (CLI — Command Line Interface):

    inspector-sbomgen plugin new \
      --with-example \
      --name my-custom-ecosystem \
      --path my-sbomgen-plugins

    Após criar o workspace, o inspector-sbomgen exibe uma tela de próximos passos que guia desenvolvedores e assistentes de IA aos arquivos que precisam ser modificados e à documentação de suporte:

    Next steps:
    
      Get started:
        1. Open plugin folder in a code editor (VS Code recommended)
        2. Add test files that your plugin will discover and parse (e.g., config files, lockfiles, binaries, etc.):
           my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata/
    
      Develop:
        3. Edit discovery:   my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/init.lua
        4. Edit collection:  my-sbomgen-plugins/collection/cross-platform/extra-ecosystems/my-custom-ecosystem/init.lua
    
      Test:
        5. Write unit tests: my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/init_test.lua
        6. Run unit tests:   inspector-sbomgen plugin test --path my-sbomgen-plugins
    
      Deploy:
        7. Distribute your plugin directory wherever you run inspector-sbomgen:
           inspector-sbomgen <arguments> --plugin-dir /path/to/my-sbomgen-plugins
           Example:
           inspector-sbomgen container --image alpine:latest -o /tmp/sbom.json --plugin-dir /path/to/my-sbomgen-plugins
    
    For code completion, install the VS Code Lua language server extension:
      https://luals.github.io/#vscode-install
    
    For more information:
      - Plugin guide:    my-sbomgen-plugins/docs/sbomgen-plugin-developer-guide.md
      - Testing guide:   my-sbomgen-plugins/docs/sbomgen-plugin-testing-guide.md
      - API reference:   my-sbomgen-plugins/docs/sbomgen-plugin-api-reference.md
      - Documentation:   https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html

    A estrutura do workspace gerado é a seguinte:

    tree my-sbomgen-plugins
    ├── AGENTS.md
    ├── collection
    │   └── cross-platform
    │       └── extra-ecosystems
    │           └── my-custom-ecosystem
    │               └── init.lua
    ├── discovery
    │   └── cross-platform
    │       └── extra-ecosystems
    │           └── my-custom-ecosystem
    │               ├── _testdata
    │               │   ├── empty
    │               │   └── example.lock
    │               ├── init_test.lua
    │               └── init.lua
    ├── docs
    │   ├── sbomgen-plugin-api-reference.md
    │   ├── sbomgen-plugin-developer-guide.md
    │   └── sbomgen-plugin-testing-guide.md
    ├── library
    │   └── sbomgen.lua
    └── README.md

    O projeto gerado inclui um par funcional de plugins de descoberta e coleta, testes unitários com fixtures em _testdata/, integração com o Ambiente de Desenvolvimento Integrado (IDE — Integrated Development Environment) e uma cópia local da documentação do desenvolvedor. O scaffolding é deliberadamente conciso e completo, com comentários claros em cada arquivo explicando o que cada função faz.

    Exemplo de plugin de descoberta

    O plugin de exemplo inventaria um arquivo fictício example.lock com o seguinte conteúdo:

    my-package-alpha==1.0.0
    my-package-beta==2.3.1
    my-package-gamma==0.9.5

    O plugin de descoberta sabe como localizar instâncias de example.lock no sistema de arquivos do artefato:

    -- my-custom-ecosystem discovery plugin
    -- Discovers example.lock files in the artifact file list.
    function discover()
        return sbomgen.find_files_by_name({"example.lock"})
    end

    Exemplo de plugin de coleta

    O plugin de coleta sabe como analisar o conteúdo de example.lock e publicar os pacotes encontrados no SBOM de saída:

    -- my-custom-ecosystem collection plugin
    -- Parses example.lock files and extracts package name and version.
    function collect(file_path)
        local content = sbomgen.read_file(file_path)
        if content == nil then
            return
        end
        for line in content:gmatch("[^\n]+") do
            local name, ver = line:match("^(.+)==(.+)$")
            if name and ver then
                sbomgen.push_package({
                    name           = name,
                    version        = ver,
                    purl_type      = "generic",
                    namespace      = "my-custom-ecosystem",
                    component_type = sbomgen.component_types.APPLICATION,
                })
            end
        end
    end

    Executando os testes

    Os plugins incluem um framework de testes integrado para validar a lógica antes de escanear um artefato real. Os testes são escritos em Lua, ficam ao lado do plugin em init_test.lua e referenciam dados de fixture em _testdata/:

    function test_discovers_packages()
        local result = testing.scan_directory("_testdata")
        testing.assert_equals(3, #result.findings)
        testing.assert_equals("my-package-alpha", result.findings[1].name)
        testing.assert_equals("1.0.0", result.findings[1].version)
    end
    
    function test_no_findings_for_empty_directory()
        local result = testing.scan_directory("_testdata/empty")
        testing.assert_equals(0, #result.findings)
    end

    Execute os testes com o seguinte comando:

    inspector-sbomgen plugin test --path my-sbomgen-plugins -v
    
    === RUN   my-custom-ecosystem/discovery/init_test/test_discovers_packages
    --- PASS: my-custom-ecosystem/discovery/init_test/test_discovers_packages (0.04s)
    === RUN   my-custom-ecosystem/discovery/init_test/test_no_findings_for_empty_directory
    --- PASS: my-custom-ecosystem/discovery/init_test/test_no_findings_for_empty_directory (0.04s)
    ok  2 tests passed

    Esse é o ciclo de desenvolvimento mais ágil possível: sem toolchain Go, sem recompilação, sem inicialização de contêiner. Escreva o teste, execute, itere.

    Escaneando um artefato real

    Para que os plugins produzam resultados, o inspector-sbomgen precisa de um artefato que contenha os arquivos que o plugin procura. Para o plugin de exemplo, qualquer diretório com um arquivo example.lock funciona:

    inspector-sbomgen directory \
      --plugin-dir ./my-sbomgen-plugins \
      --path ./my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata \
      -o sbom.json

    A flag --plugin-dir indica ao inspector-sbomgen onde carregar os plugins Lua. O SBOM resultante contém um componente CycloneDX para cada um dos três pacotes do example.lock, por exemplo:

    {
      "bom-ref": "comp-2",
      "type": "application",
      "name": "my-package-alpha",
      "version": "1.0.0",
      "scope": "optional",
      "purl": "pkg:generic/my-sbomgen-plugin/my-package-alpha@1.0.0",
      "properties": [
        {
          "name": "amazon:inspector:sbom_generator:source_path",
          "value": "./my-sbomgen-plugins/example.lock"
        }
      ]
    }

    Todo componente gerado por plugin carrega uma propriedade amazon:inspector:sbom_generator:source_path que registra o arquivo de origem, permitindo rastrear cada componente até o artefato que o produziu.

    Escaneamento de vulnerabilidades com o Amazon Inspector

    Os resultados gerados por plugins são componentes SBOM de primeira classe e funcionam com qualquer consumidor downstream que leia SBOMs CycloneDX, incluindo o próprio Amazon Inspector. Para enviar um SBOM ao Amazon Inspector para análise de vulnerabilidades, basta adicionar a flag --scan-sbom (requer uma conta AWS ativa):

    inspector-sbomgen directory \
      --path ./my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata \
      --plugin-dir ./my-sbomgen-plugins \
      --scan-sbom \
      --aws-profile your_profile \
      --aws-region your_region \
      -o /tmp/sbom.json

    Um ponto importante: plugins podem inventariar ecossistemas arbitrários, mas o Amazon Inspector só consegue reportar vulnerabilidades para componentes cujos ecossistemas já estão em seus feeds de avisos. Quando um componente de ecossistema ainda não suportado é enviado, o Inspector retorna o componente com a propriedade Component skipped: no supported rules found. — comportamento esperado, não um erro. O SBOM ainda é gerado corretamente e o componente continua sendo rastreado. Quando o Inspector adicionar cobertura para aquele ecossistema, o mesmo SBOM passará a produzir resultados de vulnerabilidades automaticamente, sem nenhuma alteração no plugin.

    Suporte a IDE de primeira classe

    Todo projeto de plugin gerado com o comando plugin new inclui um arquivo library/sbomgen.lua e um .vscode/settings.json que se integra automaticamente à extensão sumneko.lua do Servidor de Linguagem Lua para o VS Code. Com isso, cada função sbomgen.* passa a ter:

    • Dicas de parâmetros com tipos.
    • Documentação ao passar o cursor.
    • Autocompletar para constantes (sbomgen.component_types.*, sbomgen.groups.*, sbomgen.platform.*).
    • Verificação de tipos nas chamadas de função.
    • Avisos inline quando campos obrigatórios estão ausentes em push_package().

    O mesmo arquivo de definição torna o desenvolvimento de plugins eficiente com assistentes de codificação por IA, pois os tipos e a documentação estão embutidos em um formato que essas ferramentas conseguem ler.

    Modelo de segurança dos plugins

    Como os plugins executam código real dentro do mesmo processo do inspector-sbomgen, o ambiente de execução foi projetado para manter esse código estável e endurecido do ponto de vista de segurança. Cada plugin Lua roda em um sandbox isolado, com acesso apenas a um subconjunto restrito da biblioteca padrão Lua:

    • Sem acesso direto ao sistema de arquivos: a biblioteca io do Lua não é carregada. Todas as operações de arquivo passam pelas funções sbomgen.*.
    • Sem execução de subprocessos ou mutação de ambiente: a biblioteca os do Lua é bloqueada, impedindo que plugins iniciem processos, modifiquem variáveis de ambiente ou toquem em arquivos fora do artefato.
    • Sem introspecção da Máquina Virtual (VM — Virtual Machine): a biblioteca debug do Lua é bloqueada.
    • Sem carregamento irrestrito de código: dofile, loadfile e loadstring são removidos. O require() está disponível, mas restrito à árvore de diretórios do próprio plugin.

    Se um plugin gerar um erro Lua não tratado, o inspector-sbomgen registra um aviso e continua com o próximo arquivo ou plugin — um plugin com falha não impede os demais de rodar. Além disso, plugins nunca sobrescrevem os coletores internos do inspector-sbomgen: todo plugin precisa declarar um nome único, e se um plugin personalizado usar um nome já reservado por um plugin oficial, ele é ignorado com um aviso. Os plugins internos sempre têm precedência.

    Próximos passos

    Para começar a construir seus próprios plugins, a AWS recomenda:

    • Instalar a versão mais recente do inspector-sbomgen pelo guia do usuário do Amazon Inspector.
    • Executar inspector-sbomgen plugin new --with-example e seguir os prompts.
    • Rodar inspector-sbomgen plugin test --path ./my-sbomgen-plugins -v para ver os testes de exemplo passando.
    • Substituir a lógica de exemplo pela detecção do seu próprio ecossistema.

    A documentação de referência completa cobre todas as funções, constantes e comandos em profundidade:

    Conclusão

    O sistema de plugins do inspector-sbomgen foi projetado para encurtar ao máximo o caminho entre uma ideia e um SBOM funcional — seja para adicionar suporte a um formato interno de lockfile, prototipar detecção para um novo ecossistema open source ou substituir um scanner caseiro por algo que toda a organização possa executar em escala. Com Lua, sandbox seguro, suporte a IDE e integração nativa com o Amazon Inspector, a AWS entrega uma extensibilidade real sem abrir mão da segurança e da previsibilidade da ferramenta.

    Fonte

    Extend Amazon Inspector SBOM Generator with Plugins (https://aws.amazon.com/blogs/security/extend-amazon-inspector-sbom-generator-with-plugins/)

  • Autentique Agentes com Private Key JWT usando o Amazon Bedrock AgentCore Identity

    O que mudou no AgentCore Identity

    A AWS anunciou que o Amazon Bedrock AgentCore Identity agora suporta autenticação de cliente via Token Web JSON (JWT) de Chave Privada — o chamado Private Key JWT. Essa novidade muda a forma como agentes de IA se autenticam perante provedores de identidade externos, eliminando a necessidade de compartilhar segredos OAuth 2.0.

    Em vez de depender de um segredo de cliente compartilhado, o agente apresenta uma asserção JWT assinada digitalmente. A chave pública fica registrada no provedor de identidade, enquanto a chave privada correspondente permanece protegida dentro do AWS Key Management Service (KMS). O próprio AgentCore Identity solicita ao KMS que assine a asserção — sem que a chave privada precise sair do serviço em nenhum momento.

    Como o fluxo de autenticação funciona

    Para entender a mecânica, considere um agente de suporte ao cliente que precisa consultar o histórico de pedidos de um usuário em uma API interna protegida por um provedor de identidade. O fluxo acontece assim:

    • O agente chama GetResourceOauth2Token no AgentCore Identity para solicitar um token de acesso à API de pedidos.
    • O AgentCore Identity lê o ID do cliente, o ARN da chave KMS e o algoritmo de assinatura configurados no provedor de credenciais.
    • O serviço monta uma asserção JWT de curta duração com os atributos (claims) necessários e chama kms:Sign usando o algoritmo configurado — RS256, PS256 ou ES256.
    • O KMS assina a asserção e devolve apenas a assinatura. A chave privada nunca sai do KMS.
    • O AgentCore Identity envia a asserção assinada ao endpoint de token do provedor de identidade com grant_type=client_credentials e client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
    • O provedor de identidade verifica a assinatura usando a chave pública registrada e retorna um token de acesso.
    • O agente usa esse token para chamar a API de pedidos e receber os dados do cliente.

    Fluxos de concessão suportados

    A autenticação via Private Key JWT funciona com três modelos de fluxo OAuth diferentes, cobrindo os principais cenários de uso de agentes em produção.

    Máquina para máquina (M2M)

    Neste modelo, o agente age por conta própria, sem representar nenhum usuário humano. É o caso de jobs em background que sincronizam dados ou serviços que qualquer instância do agente pode acessar independentemente de quem o acionou. O token representa a identidade da aplicação ou do agente. Utiliza o fluxo client_credentials e o subject do token é o próprio cliente.

    Em nome de um usuário (On-Behalf-Of — OBO)

    Aqui, o agente age em nome de um usuário específico que já está autenticado. Existe um token de entrada do usuário, e o AgentCore Identity o troca por um token downstream que representa esse usuário — mantendo as permissões e a identidade dele na cadeia de chamadas. Dependendo do provedor de identidade, é possível usar a troca de token do RFC 8693 ou a concessão de autorização JWT do RFC 7523.

    Acesso delegado pelo usuário

    Neste cenário, não há token de entrada para trocar. O usuário passa por um fluxo interativo de login e consentimento — o fluxo de código de autorização OAuth de três pernas — aprovando explicitamente o que o agente pode fazer. Após o consentimento, o agente recebe um token que representa o usuário. Utiliza o fluxo authorization_code.

    Pré-requisitos

    Para seguir a configuração, a AWS indica que você precisa de:

    • Uma conta AWS com acesso ao Console de Gerenciamento para o KMS, o AgentCore e o AWS CloudTrail.
    • Um tenant no seu provedor de identidade onde seja possível registrar uma chave pública para uma aplicação.
    • URL de descoberta e ID de cliente do provedor de identidade.
    • Confirmação do algoritmo de assinatura exigido pelo provedor e verificação de que ele é suportado pelo KMS e pelo AgentCore Identity.
    • Permissões IAM: kms:CreateKey e kms:PutKeyPolicy para criar a chave; kms:GetPublicKey para exportar a chave pública; bedrock-agentcore-control:CreateOauth2CredentialProvider para criar o provedor de credenciais. Se o provedor de identidade gerar o par de chaves e fornecer o material da chave privada, também serão necessárias kms:GetParametersForImport e kms:ImportKeyMaterial para importar a chave no KMS.

    Passo a passo: configurando o Private Key JWT

    Passo 1 — Criar a chave de assinatura no KMS e registrar a chave pública

    O primeiro passo é criar uma chave KMS assimétrica que o AgentCore Identity usará para assinar as asserções JWT. Abra o console do AWS KMS na mesma região AWS do seu provedor de credenciais. Em Customer managed keys, escolha Create key e configure:

    • Key type: Asymmetric
    • Key usage: Sign and verify
    • Key spec: compatível com o algoritmo de assinatura desejado (o exemplo da AWS usa ECC_NIST_P256 com o algoritmo ES256)

    Na etapa de política da chave, adicione o seguinte statement para conceder ao AgentCore Identity permissão de uso — substituindo 111122223333 pelo ID da sua conta AWS e <region> pela região em uso. A condição kms:ViaService garante que a chave só pode ser usada quando a requisição vier do AgentCore Identity:

    {
      "Id": "BedrockAgentCoreIdentityPrivateKeyJwtAccess",
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::111122223333:root"
          },
          "Action": [
            "kms:Sign",
            "kms:DescribeKey"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "aws:ResourceAccount": "${aws:PrincipalAccount}"
            },
            "StringLike": {
              "kms:ViaService": "bedrock-agentcore-identity.<region>.amazonaws.com"
            }
          }
        }
      ]
    }

    Após criar a chave, anote o ARN — ele será necessário na configuração do provedor de credenciais. Em seguida, acesse a aba Public key da chave e faça o download da chave pública. O KMS fornece a chave em formato DER. Converta-a para o formato exigido pelo seu provedor de identidade (por exemplo, um certificado X.509 para o Microsoft Entra ID ou uma JSON Web Key para o Okta) e registre-a na sua aplicação.

    Passo 2 — Adicionar um cliente OAuth no AgentCore Identity

    Abra o console do Amazon Bedrock AgentCore. No painel de navegação esquerdo, em Build, acesse Identity. Na seção Outbound Auth, escolha Add Outbound Auth e depois Add OAuth client.

    Passo 3 — Selecionar Private Key JWT como método de autenticação

    Na página de adição do cliente OAuth, na seção Provider configurations, configure o Configuration type como Discovery URL para que o AgentCore Identity recupere automaticamente a configuração do provedor. Em Client authentication method, selecione Private key JWT.

    Passo 4 — Informar URL de descoberta, ID do cliente, chave KMS e algoritmo

    • Discovery URL: a URL onde o provedor publica sua configuração OpenID Connect (terminando em .well-known/openid-configuration).
    • Client ID: o identificador do cliente registrado no provedor de identidade.
    • KMS key: o ARN da chave KMS assimétrica criada anteriormente. A chave deve ter sido criada com uso SIGN_VERIFY e estar na mesma região. Também é possível usar uma chave de outra conta na mesma região informando o ARN diretamente — nesse caso, são necessárias permissões adicionais em ambas as contas. Veja a documentação sobre como permitir que usuários de outras contas usem uma chave KMS.
    • Signing algorithm: o algoritmo exigido pelo seu provedor de identidade, compatível com o key spec da chave KMS.

    Passo 5 — (Opcional) Adicionar claims customizados

    Se o seu provedor de identidade exigir claims adicionais na asserção JWT, é possível adicioná-los nesta etapa. Em Header claims, adicione claims de cabeçalho específicos do provedor (como um identificador de chave). As chaves reservadas alg e typ não podem ser definidas. Em Payload claims, adicione claims de payload específicos do provedor. As chaves reservadas iss, sub, jti, exp, iat e nbf não podem ser definidas. Por fim, clique em Add OAuth Client e confirme que o provedor de credenciais aparece na lista de Outbound Auth.

    Auditoria com CloudTrail

    Toda vez que um agente usa o provedor de credenciais para buscar um token, as operações ficam registradas no AWS CloudTrail. Os principais eventos que você verá são:

    GetWorkloadAccessToken (fonte: bedrock-agentcore.amazonaws.com) — o agente obtém seu token de identidade de workload. O token retornado é ocultado por razões de segurança:

    {
      "eventSource": "bedrock-agentcore.amazonaws.com",
      "eventName": "GetWorkloadAccessToken",
      "requestParameters": {
        "workloadName": "my-agent-workload"
      },
      "responseElements": {
        "workloadAccessToken": "HIDDEN_DUE_TO_SECURITY_REASONS"
      },
      "resources": [
        {
          "accountId": "111122223333",
          "type": "AWS::BedrockAgentCore::WorkloadIdentity",
          "ARN": "arn:aws:bedrock-agentcore:us-east-1:111122223333:workload-identity-directory/default/workload-identity/my-agent-workload"
        }
      ]
    }

    GetResourceOauth2Token (fonte: bedrock-agentcore.amazonaws.com) — o agente solicita um token de acesso para o recurso downstream. Os parâmetros mostram qual provedor de credenciais, escopos e fluxo OAuth foram usados:

    {
      "eventSource": "bedrock-agentcore.amazonaws.com",
      "eventName": "GetResourceOauth2Token",
      "requestParameters": {
        "workloadIdentityToken": "HIDDEN_DUE_TO_SECURITY_REASONS",
        "resourceCredentialProviderName": "my-private-key-jwt-provider",
        "scopes": [
          "https://graph.microsoft.com/.default"
        ],
        "oauth2Flow": "M2M"
      },
      "resources": [
        {
          "accountId": "111122223333",
          "type": "AWS::BedrockAgentCore::OAuth2CredentialProvider",
          "ARN": "arn:aws:bedrock-agentcore:us-east-1:111122223333:token-vault/default/oauth2credentialprovider/my-private-key-jwt-provider"
        }
      ]
    }

    Sign (fonte: kms.amazonaws.com) — o AgentCore Identity assina a asserção JWT com a chave KMS. Este é o evento que comprova o funcionamento do Private Key JWT: os campos userIdentity.invokedBy, sourceIPAddress e userAgent são todos bedrock-agentcore.amazonaws.com, confirmando que foi o AgentCore Identity quem chamou o kms:Sign. Note que o evento registra o nome do algoritmo de assinatura do KMS, não o nome do algoritmo JWT configurado:

    {
      "eventSource": "kms.amazonaws.com",
      "eventName": "Sign",
      "userIdentity": {
        "invokedBy": "bedrock-agentcore.amazonaws.com"
      },
      "sourceIPAddress": "bedrock-agentcore.amazonaws.com",
      "userAgent": "bedrock-agentcore.amazonaws.com",
      "requestParameters": {
        "signingAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "messageType": "DIGEST"
      },
      "responseElements": null,
      "readOnly": true,
      "managementEvent": true,
      "resources": [
        {
          "accountId": "111122223333",
          "type": "AWS::KMS::Key",
          "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
      ]
    }

    Limpando os recursos criados

    Para evitar cobranças desnecessárias e remover recursos que não serão mais usados, a AWS recomenda os seguintes passos:

    Remover o provedor de credenciais OAuth

    Abra o console do Amazon Bedrock AgentCore, acesse Identity no painel de navegação e localize o provedor criado na seção Outbound Auth. Selecione o provedor, escolha Delete e confirme a exclusão.

    Agendar a exclusão da chave KMS

    A exclusão de uma chave KMS é irreversível. Por isso, o KMS exige que você agende a exclusão com um período de espera em vez de excluir imediatamente. Antes de agendar, confirme que a chave não está mais referenciada por nenhum provedor de credenciais ou registro de provedor de identidade. Se não tiver certeza se a chave ainda está em uso, considere desativar a chave — o que impede seu uso mas mantém a possibilidade de recuperação.

    Abra o console do AWS KMS na região onde a chave foi criada. Em Customer managed keys, selecione a chave assimétrica criada. Em Key actions, escolha Schedule key deletion e defina um período de espera entre 7 e 30 dias. Durante esse período, a chave fica desativada mas pode ser recuperada cancelando a exclusão agendada. Após o período, o KMS a exclui permanentemente. Lembre-se também de remover ou rotacionar a chave pública registrada no provedor de identidade.

    Conclusão

    Com o suporte a Private Key JWT no AgentCore Identity, a AWS oferece aos desenvolvedores uma forma sem segredos compartilhados e totalmente auditável de autenticar agentes em provedores de identidade externos. A chave privada permanece no KMS, cada operação de assinatura fica registrada no CloudTrail, e o mesmo provedor de credenciais cobre os fluxos M2M, on-behalf-of e de acesso delegado pelo usuário.

    Para exemplos completos — incluindo registro em provedores como Entra e Okta, além de fluxos M2M e OBO — a AWS disponibilizou os samples do Amazon Bedrock AgentCore no GitHub.

    Fonte

    Authenticate with Private Key JWT using Amazon Bedrock AgentCore Identity (https://aws.amazon.com/blogs/machine-learning/authenticate-with-private-key-jwt-using-amazon-bedrock-agentcore-identity/)