Category: Uncategorized

  • Construindo um gateway A2A serverless para descoberta, roteamento e controle de acesso entre agentes

    O problema das conexões ponto a ponto entre agentes

    À medida que empresas expandem o uso de agentes de IA — distribuídos entre times, fornecedores e infraestruturas distintas — gerenciar a comunicação entre eles vira um gargalo operacional real. Sem uma camada centralizada, cada nova integração exige uma conexão direta, credenciais próprias e lógica de roteamento customizada.

    O resultado é previsível: engenheiros gastam ciclos conectando agentes em vez de desenvolver capacidades. O controle de acesso fica fragmentado, sem um ponto único para definir quem pode falar com quem. E o custo operacional cresce de forma quadrática — uma rede com 20 agentes pode exigir até 190 conexões ponto a ponto.

    Para resolver isso, a AWS publicou um guia mostrando como construir um gateway serverless baseado no protocolo A2A (Agente-para-Agente), que coloca um único ponto de entrada na frente de todos os agentes, independentemente de onde eles rodam: Amazon Elastic Container Service (Amazon ECS), AWS Lambda, Amazon Bedrock AgentCore Runtime, outras nuvens ou ambientes híbridos.

    Arquitetura em três camadas

    A solução proposta organiza o gateway em três camadas bem definidas:

    • Camada de gerenciamento: registro centralizado de agentes com descoberta e busca semântica.
    • Camada de controle: controle de acesso granular usando escopos de Token Web JSON (JWT) e um autorizador Lambda.
    • Camada de execução: roteamento por domínio único com autenticação OAuth no backend e suporte a streaming via Eventos Enviados pelo Servidor (SSE).

    O Amazon API Gateway (API REST) atua como ponto de entrada único. A escolha por API REST — em vez de HTTP API — é intencional: apenas APIs REST suportam streaming de resposta, necessário para respostas em tempo real via SSE.

    Um autorizador Lambda inspeciona os escopos do JWT e gera políticas do Gerenciamento de Identidade e Acesso da AWS (IAM) que permitem ou negam acesso a caminhos específicos de agentes, como /agents/agent-a/*. Requisições não autorizadas são bloqueadas no API Gateway e nunca chegam às funções Lambda do backend.

    Componentes principais

    Cinco funções Lambda implementam a lógica do gateway:

    • Autorizador: valida JWTs e gera políticas IAM baseadas nos mapeamentos de escopo para agente.
    • Registro (Registry): lista os agentes acessíveis ao chamador, com URLs reescritas para apontar ao gateway.
    • Busca (Search): descoberta semântica de agentes usando Amazon Titan Text Embeddings no Amazon Bedrock.
    • Proxy: roteia requisições aos agentes de backend com autenticação OAuth, com suporte a streaming SSE via Lambda Web Adapter.
    • Admin: registro e gerenciamento do ciclo de vida dos agentes.

    O Amazon DynamoDB armazena três tabelas: o Registro de Agentes (mapeando IDs de agentes para URLs de backend, configurações de autenticação e cards de agentes em cache), a tabela de Permissões (mapeando escopos JWT para agentes permitidos) e a tabela de Contadores de Limite de Taxa (contando requisições por minuto).

    O Amazon Cognito cuida da autenticação via fluxo de credenciais de cliente OAuth 2.0. Os escopos presentes no token determinam quais agentes o chamador pode acessar — por exemplo, billing:read ou support:write.

    O AWS Secrets Manager armazena as credenciais dos backends. Quando o Lambda Proxy precisa autenticar com um agente de backend, ele recupera o segredo OAuth pelo Nome de Recurso Amazon (ARN). Credenciais nunca ficam armazenadas no DynamoDB.

    Para busca semântica, as descrições dos agentes são vetorizadas com Amazon Titan Text Embeddings e armazenadas no Amazon S3 Vectors, permitindo que clientes descubram agentes por linguagem natural em vez de nomes exatos.

    Design do gateway e endpoints suportados

    O gateway suporta os dois bindings de protocolo definidos na especificação A2A:

    • JSON-RPC: endpoint único por agente com o método no corpo da requisição:
      • GET /agents/{agentId}/.well-known/agent-card.json — busca as capacidades do agente.
      • POST /agents/{agentId} com {"method": "SendMessage", ...} — resposta em buffer.
      • POST /agents/{agentId} com {"method": "SendStreamingMessage", ...} — streaming SSE.
    • HTTP+JSON/REST: para clientes que preferem URLs no estilo RESTful.

    Além dos endpoints nativos A2A, o gateway oferece endpoints de gerenciamento:

    • GET /agents — lista os agentes acessíveis ao chamador.
    • POST /search — busca semântica de agentes.
    • POST /admin/agents/register — registra um novo agente de backend.
    • POST /admin/agents/{agentId}/sync — atualiza o card de agente em cache.
    • POST /admin/agents/{agentId}/status — ativa ou desativa um agente.

    Clientes A2A padrão funcionam sem modificação — basta apontar para a URL do gateway em vez das URLs individuais dos backends.

    Como implantar a solução

    O gateway é provisionado inteiramente com Terraform. Os pré-requisitos são:

    O código do gateway está disponível no repositório aws-samples no GitHub. Após clonar o repositório e configurar as variáveis:

    cp terraform/terraform.tfvars.example terraform/terraform.tfvars

    Edite o arquivo com sua região e preferências de nomenclatura:

    aws_region = "us-east-1"
    project_name = "a2a-gateway"
    environment = "poc"

    Em seguida, construa o pacote Lambda e implante:

    ./scripts/build_lambda_package.sh
    cd terraform
    terraform init
    terraform plan
    terraform apply

    O Terraform cria todos os recursos de uma vez: tabelas DynamoDB, pool de usuários Cognito, repositório Amazon Elastic Container Registry (Amazon ECR), funções Lambda, API Gateway e papéis IAM.

    Testando a solução

    Após o deploy, obtenha as credenciais do gateway a partir dos outputs do Terraform:

    GATEWAY_URL=$(terraform output -raw api_gateway_url)
    TOKEN_ENDPOINT=$(terraform output -raw cognito_token_endpoint)
    CLIENT_ID=$(terraform output -raw cognito_client_id)
    CLIENT_SECRET=$(terraform output -raw cognito_client_secret)
    PERMISSIONS_TABLE=$(terraform output -raw permissions_table_name)

    Obtenha um JWT:

    TOKEN_RESPONSE=$(curl -s -X POST "$TOKEN_ENDPOINT" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "grant_type=client_credentials&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET")
    export JWT=$(echo $TOKEN_RESPONSE | jq -r .access_token)

    O repositório inclui agentes A2A de exemplo no diretório examples/: um Agente de Clima e um Agente de Calculadora. Após implantá-los com cd examples/terraform && terraform apply, registre um agente no gateway:

    curl -X POST "$GATEWAY_URL/admin/agents/register" \
      -H "Authorization: Bearer $JWT" \
      -H "Content-Type: application/json" \
      -d '{
        "agentId": "weather-agent",
        "name": "Weather Agent",
        "backendUrl": "'"$WEATHER_BACKEND"'",
        "agentCardUrl": "'"$WEATHER_CARD"'",
        "authConfig": {
          "type": "oauth2_client_credentials",
          "tokenUrl": "'"$AGENT_TOKEN_ENDPOINT"'",
          "clientId": "'"$AGENT_CLIENT_ID"'",
          "clientSecret": "'"$AGENT_CLIENT_SECRET"'",
          "scopes": ["a2a-gateway/weather:read"]
        }
      }'

    Para conceder acesso ao agente registrado, atualize a tabela de permissões:

    aws dynamodb put-item \
      --table-name "$PERMISSIONS_TABLE" \
      --item '{
        "scope": {"S": "gateway:admin"},
        "allowedAgents": {"L": [{"S": "weather-agent"}]},
        "description": {"S": "Admin scope with access to weather agent"}
      }'

    Em seguida, descubra os agentes registrados e envie uma mensagem pelo gateway:

    curl "$GATEWAY_URL/agents" -H "Authorization: Bearer $JWT"
    
    curl -X POST "$GATEWAY_URL/agents/weather-agent/message:send" \
      -H "Authorization: Bearer $JWT" \
      -H "Content-Type: application/json" \
      -d '{
        "message": {
          "messageId": "msg-001",
          "role": "user",
          "parts": [{"text": "What is the weather in New York"}]
        }
      }'

    Para limpar todos os recursos criados, basta executar terraform destroy dentro da pasta /terraform.

    Considerações de segurança

    A AWS deixa claro que essa é uma implementação de referência. Antes de ir para produção, alguns pontos merecem atenção.

    Modelo de confiança do backend

    O gateway opera em um modelo de confiança pós-autenticação. Após um agente de backend ser registrado e as credenciais OAuth validadas, o gateway faz proxy das respostas diretamente para os clientes sem inspeção de conteúdo. Mensagens A2A são encaminhadas sem modificação, então os agentes de backend são responsáveis por implementar suas próprias defesas contra injeção de prompt e validação de entrada.

    Em produção, recomenda-se implementar um fluxo de aprovação para o registro de agentes, onde administradores revisam os backends antes que se tornem acessíveis, integrado ao pipeline de Integração e Entrega Contínua (CI/CD).

    Limite de taxa e cotas

    O gateway aplica limites de taxa por usuário e por agente na camada do proxy. Cada requisição incrementa um contador atômico no DynamoDB, com chave por usuário, agente e janela de um minuto. Quando um cliente excede sua cota, o proxy retorna um 429 com um cabeçalho Retry-After. Os contadores expiram automaticamente via TTL do DynamoDB, sem necessidade de limpeza manual.

    Implantação privada com VPC

    Para ambientes que exigem infraestrutura privada, o gateway suporta um modo de implantação opcional com Amazon Virtual Private Cloud (Amazon VPC). Nesse modo, as funções Lambda rodam em sub-redes privadas e o API Gateway usa um endpoint privado acessível apenas dentro da VPC.

    Para implantar em uma VPC existente, basta fornecer os IDs no arquivo terraform.tfvars:

    enable_private_deployment = true
    existing_vpc_id = "vpc-0123456789abcdef0"
    existing_subnet_ids = ["subnet-aaa", "subnet-bbb", "subnet-ccc"]
    existing_route_table_ids = ["rtb-aaa"]
    existing_lambda_security_group_id = "sg-aaa"
    existing_vpc_endpoint_security_group_id = "sg-bbb"

    Vale notar que a VPC ainda precisa de conectividade de saída para a troca de tokens OAuth com o Cognito ou outros provedores de identidade externos — tipicamente via gateway de Tradução de Endereço de Rede (NAT) ou roteamento pelo AWS Transit Gateway para uma VPC de saída compartilhada. O tráfego para serviços AWS (DynamoDB, Amazon S3, Secrets Manager, S3 Vectors) permanece privado via endpoints de VPC.

    Para agentes rodando on-premises ou em outras nuvens, o gateway privado é acessível via AWS Direct Connect ou AWS Interconnect (preview), sem expor o tráfego à internet pública.

    Autenticação com agentes de backend

    O gateway autentica com agentes de backend usando o fluxo de credenciais de cliente OAuth 2.0. Cada agente registrado inclui sua URL de token e credenciais, e o Lambda Proxy cuida da obtenção do token de forma transparente.

    Um detalhe importante ao usar o Amazon Bedrock AgentCore Runtime: configure o customJWTAuthorizer com allowedClients apontando para o ID do cliente Cognito, e não allowedAudience. Tokens de credenciais de cliente do Cognito incluem a claim client_id, mas não a claim padrão aud do JWT. O parâmetro allowedAudience valida a claim aud e retornará 401 Unauthorized para tokens máquina-a-máquina (M2M) do Cognito.

    Conclusão

    À medida que organizações passam de poucos agentes para dezenas ou centenas, o desafio deixa de ser construir agentes individuais e passa a ser gerenciar as conexões entre eles. Integrações ponto a ponto não escalam.

    O gateway A2A serverless apresentado pela AWS oferece um único lugar para registrar agentes, controlar quem pode acessá-los e rotear o tráfego. Por operar no nível do protocolo, ele governa agentes em diferentes ambientes — serviços AWS, nuvens de terceiros, infraestrutura on-premises ou uma combinação de todos. Novos agentes tornam-se descobríveis no momento em que são registrados, e controles de acesso e limites de taxa são gerenciados de forma centralizada.

    O código-fonte completo está disponível no repositório aws-samples.

    Fonte

    Building a serverless A2A gateway for agent discovery, routing, and access control (https://aws.amazon.com/blogs/machine-learning/building-a-serverless-a2a-gateway-for-agent-discovery-routing-and-access-control/)

  • AWS Artifact agora conta com Assurance Assistant para consultas de conformidade

    O que foi anunciado

    A AWS anunciou a chegada do Assurance Assistant ao AWS Artifact, serviço responsável por fornecer relatórios de conformidade, certificações e contratos aos clientes da plataforma. A novidade é uma funcionalidade baseada em inteligência artificial que gera respostas fundamentadas em documentação oficial da AWS para perguntas sobre segurança e conformidade dos serviços.

    Para quem é útil

    O Assurance Assistant foi pensado especialmente para profissionais que lidam com avaliações de fornecedores e processos de auditoria, como:

    • Gestores de risco de terceiros
    • Responsáveis por conformidade
    • Engenheiros de segurança
    • Auditores

    Esses profissionais frequentemente precisam responder Questionários de Devida Diligência (DDQ) — documentos extensos que exigem respostas detalhadas e embasadas sobre as práticas de segurança e conformidade de um fornecedor. O Assurance Assistant acelera justamente esse processo, entregando respostas já ancoradas na documentação verificada da AWS.

    Dois modos de uso

    O recurso oferece duas formas de operação:

    • Modo de pergunta única: para quem precisa de uma resposta imediata na tela, ideal para consultas pontuais durante uma avaliação.
    • Modo de upload de questionário: permite o envio de arquivos XLSX em lote, incluindo formatos amplamente utilizados no mercado, como CAIQ, SIG e DDQs personalizados.

    Respostas com citações e verificação independente

    Um ponto importante do Assurance Assistant é que todas as respostas geradas incluem citações diretas da documentação de conformidade da AWS — entre elas relatórios SOC, certificações ISO e pacotes de atestação C5. Isso permite que os profissionais verifiquem as informações de forma independente, consultando as fontes originais.

    As respostas podem ser exportadas de forma seletiva ou completa, com ou sem as citações, mantendo o formato do arquivo original enviado.

    Controle de acesso via IAM

    Para gerenciar quem pode utilizar o recurso, a AWS disponibilizou duas novas políticas gerenciadas do Gerenciamento de Identidade e Acesso (IAM):

    • AWSArtifactComplianceInquiriesReadOnlyAccess
    • AWSArtifactComplianceInquiriesFullAccess

    Isso garante que as equipes consigam segmentar o acesso conforme o perfil de cada usuário dentro da organização.

    Disponibilidade e custo

    O Assurance Assistant está disponível sem custo adicional pelo console do AWS Artifact em todas as regiões comerciais da AWS. Por ser um serviço de acesso global, não é necessário selecionar uma região específica para utilizá-lo.

    Para saber mais sobre como usar o recurso, a AWS disponibiliza a documentação sobre gerenciamento de consultas de conformidade no Guia do Usuário do AWS Artifact. Informações gerais sobre o serviço estão na página oficial do AWS Artifact.

    Fonte

    AWS Artifact now includes Assurance Assistant for compliance inquiries (https://aws.amazon.com/about-aws/whats-new/2026/07/aws-artifact-assurance-assistant/)

  • Proteja workloads de containers na AWS com regras baseadas em atributos no Network Firewall

    O problema com IPs efêmeros em ambientes de containers

    Quem já operou clusters Kubernetes em produção conhece bem o desafio: pods sobem, morrem e reiniciam o tempo todo, e cada vez que isso acontece, o endereço IP muda. Manter regras de firewall baseadas nesses IPs é uma tarefa ingrata — trabalhosa, propensa a erros e, na prática, uma fonte constante de brechas de segurança.

    O AWS Network Firewall já era capaz de proteger o tráfego de aplicações containerizadas no Amazon Elastic Kubernetes Service (Amazon EKS) e no Amazon Elastic Container Service (Amazon ECS). Mas a dependência de endereços IP para definir regras tornava a gestão dessas políticas complexa em ambientes dinâmicos.

    Isso vale especialmente para workloads de Inteligência Artificial e Machine Learning (IA/ML) rodando no Amazon EKS — como inferência de modelos, pipelines de Geração Aumentada por Recuperação (RAG) e ambientes JupyterHub. Essas cargas de trabalho exigem as mesmas proteções de firewall aplicadas a qualquer outra aplicação, e a rotatividade de IPs torna essa proteção ainda mais difícil de garantir.

    As Kubernetes Network Policies oferecem controle básico de tráfego no nível de namespace, operando nas camadas 3 e 4 do modelo de rede. Dependendo dos requisitos de segurança, pode ser necessário ir além: inspeção de camada 7, filtragem por Nome de Domínio Totalmente Qualificado (FQDN), e proteção via regras gerenciadas de Sistema de Detecção e Prevenção de Intrusões (IDS/IPS). Além disso, saber exatamente qual pod ou serviço gerou um tráfego bloqueado é fundamental para investigações e auditorias.

    A solução: regras baseadas em atributos de containers

    A AWS introduziu o suporte a regras baseadas em atributos de containers no Network Firewall. Com esse recurso, é possível definir políticas de firewall usando atributos nativos do Kubernetes — como namespaces, nomes de pods, nomes de clusters e labels — em vez de depender de IPs efêmeros.

    O funcionamento é direto: ao criar uma associação de container (container association) vinculada ao cluster EKS, o Network Firewall passa a descobrir e monitorar automaticamente os pods que correspondem aos atributos definidos, resolvendo-os para seus endereços IP atuais. Quando pods escalam, reiniciam ou migram entre nós, o mapeamento de IP é atualizado em tempo quase real — sem necessidade de intervenção manual ou edição de regras.

    Em ambientes com múltiplos clusters, o recurso viabiliza inspeção centralizada de tráfego entre clusters para qualquer tráfego que passe pelo endpoint do firewall.

    Outro benefício relevante é o enriquecimento dos logs de alerta com contexto de container. Os logs agora incluem um novo campo de metadados com o nome da associação de container relacionada à regra que foi acionada. Isso permite que equipes de segurança rastreiem tráfego bloqueado, permitido ou alertado diretamente até a workload de origem. Esses logs enriquecidos são exportados para o Amazon CloudWatch Logs e para o Amazon Simple Storage Service (Amazon S3), de onde podem ser encaminhados para o SIEM de preferência da equipe.

    Vale destacar: o recurso está incluído no plano base do Network Firewall, sem custo adicional.

    Como funciona na prática

    O Network Firewall monitora continuamente o cluster EKS em busca de eventos de ciclo de vida dos pods (criação e exclusão) nos namespaces cobertos pela definição da associação de container. Essa definição é armazenada em uma associação de container, indexada por nome e valor de atributo.

    Após a publicação, esses grupos de atributos são referenciados nas regras Suricata usando aliases com o prefixo @. Veja alguns padrões comuns:

    Regra por grupo de pods — Permitir apenas pods do serviço de pagamento para acessar o gateway externo via TLS:

    pass tls @ecommerce_pods any -> any 443 (msg:"allow ecommerce to payment gateway"; tls.sni; content:"checkip.amazonaws.com"; flow:to_server,established; sid:1; rev:1;)

    Regra de aplicação de camada 7 — Bloquear todos os pods de acessar destinos maliciosos:

    drop tls @all-pods any -> $EXTERNAL_NET any (msg:"Block malicious sites"; aws_domain_category:malicious-sites; sid:10; rev:1;)

    No momento da avaliação de pacotes, o Network Firewall expande cada referência @ contra o catálogo atual de IPs. Quando pods escalam, reiniciam ou se movem entre nós, o controlador atualiza a associação de grupo e o firewall absorve os novos IPs — sem edições de regras ou intervenção do operador.

    Passo a passo: configurando o recurso

    O recurso pode ser configurado pelo console da Amazon Virtual Private Cloud (Amazon VPC), pela Interface de Linha de Comando da AWS (AWS CLI) ou pelo AWS SDK.

    Pré-requisito: é necessário ter um Network Firewall já configurado para filtrar tráfego na VPC. Caso ainda não tenha, a documentação oficial tem um guia de introdução ao AWS Network Firewall.

    Passo 1 — Criar a associação de container

    No console do Amazon VPC, acesse Network Firewall e selecione Container associations. Clique em Create container association e preencha:

    • Um nome e uma descrição opcional para a associação;
    • Em Cluster configuration, selecione o tipo de cluster e escolha o cluster EKS desejado;
    • Em Attribute filters, configure os atributos EKS para identificar quais pods serão associados. Por exemplo: Attribute key como namespace e Attribute value como ecommerce.

    Passo 2 — Criar a regra de firewall baseada em atributos

    Ainda no console do Amazon VPC, acesse Network Firewall rule groups e clique em Create rule group. Configure:

    • Rule group type: Stateful rule group;
    • Rule group format: Suricata compatible rule string;
    • Rule evaluation order: Strict order.

    Na próxima etapa, defina nome, descrição e capacidade para o grupo de regras. Em seguida, na seção IP set references, insira um nome de variável e selecione a associação de container criada no passo anterior como Resource ID.

    No campo Suricata compatible rule string, insira as regras desejadas. O exemplo utilizado no artigo original da AWS é:

    pass tls @ecommerce_pods any -> any any (msg:"allow ecommerce to payment gateway"; flow:to_server; tls.sni; dotprefix; content:".checkip.amazonaws.com"; endswith; nocase; alert; sid:101; rev:1;)
    reject tls @ecommerce_pods any -> any 443 (msg:"block ecommerce pods to external ecommerce website"; flow:to_server; tls.sni; dotprefix; content:".amazon.com"; endswith; nocase; alert; sid:104; rev:1;)

    Confirme as configurações e crie o grupo de regras.

    Testando as regras

    Para verificar se as regras estão funcionando corretamente, o teste pode ser feito com o comando curl em um pod do namespace ecommerce:

    Teste 1 — Tráfego permitido:

    kubectl exec -n ecommerce deployment/payment-service -- curl -sk --max-time 5 -w "\nHTTP_CODE:%{http_code}\n" https://checkip.amazonaws.com/
    HTTP_CODE:200

    Teste 2 — Tráfego bloqueado:

    kubectl exec -n ecommerce deployment/payment-service -- curl -sk --max-time 5 https://www.amazon.com 2>&1
    curl: (35) Recv failure: Connection reset by peer
    command terminated with exit code 35

    No primeiro caso, a requisição ao gateway de pagamento retorna HTTP 200, pois a ação pass está definida na regra. No segundo, a conexão é recusada com o código de saída 35, porque a ação reject está configurada para aquele destino.

    Considerações importantes antes de adotar o recurso

    A AWS destaca alguns pontos de atenção que merecem avaliação antes de colocar o recurso em produção:

    • Source NAT (SNAT) deve estar desabilitado. Para que o Network Firewall consiga enxergar os IPs dos pods, o SNAT não pode estar ativo. Se estiver habilitado, apenas o IP do nó ficará visível, impedindo o controle granular no nível de pod.
    • Tráfego pod-a-pod no mesmo nó não é coberto. O recurso não consegue inspecionar tráfego entre pods que estejam no mesmo nó, pois esse tráfego não passa pelo endpoint do Network Firewall. Para esse cenário, uma solução complementar é necessária.
    • Impacto de desempenho variável. O impacto pode variar conforme a complexidade das regras e o volume de tráfego.

    O que muda na prática para equipes de segurança

    A principal mudança é conceitual: em vez de rastrear IPs que mudam constantemente, as equipes passam a trabalhar com identidades estáveis — namespaces, labels e nomes de pods. Isso aproxima a linguagem das regras de firewall da linguagem operacional do Kubernetes, tornando as políticas mais legíveis, auditáveis e fáceis de manter.

    O enriquecimento dos logs com contexto de container é outro ganho direto para operações de segurança. Com o rastreamento até a workload de origem, investigações de incidentes e relatórios de conformidade ficam significativamente mais eficientes.

    Para workloads de IA/ML no EKS — que costumam ter padrões de tráfego específicos e requisitos de isolamento elevados — o recurso oferece uma camada de controle que antes era difícil de implementar sem soluções customizadas.

    Fonte

    Secure Amazon container workloads using container attribute-based rules in AWS Network Firewall (https://aws.amazon.com/blogs/security/secure-amazon-container-workloads-using-container-attribute-based-rules-in-aws-network-firewall/)

  • Como usar o AWS Workload Credentials Provider para buscar segredos entre contas e pré-carregar segredos

    Dois novos recursos que simplificam o gerenciamento de segredos na AWS

    A AWS publicou um guia detalhado sobre dois novos recursos do AWS Workload Credentials Provider: o encadeamento de funções IAM para acesso a segredos entre contas diferentes, e o pré-carregamento de segredos para reduzir a latência de inicialização das aplicações. Este post é uma releitura educativa desse conteúdo para o público brasileiro.

    O que é o AWS Workload Credentials Provider?

    O AWS Secrets Manager é o serviço responsável por armazenar e rotacionar credenciais, chaves de API e outros segredos. Já o AWS Workload Credentials Provider é um serviço HTTP do lado do cliente que recupera e armazena em cache esses segredos localmente. Essa abordagem reduz a latência, melhora a disponibilidade em caso de falhas transitórias e diminui os custos operacionais.

    Entre as características do provider, destacam-se: suporte a TLS pós-quântico por padrão, ausência de dependência de SDKs específicos por linguagem e compatibilidade com Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS) e AWS Lambda. Mais detalhes estão disponíveis na documentação oficial e no repositório no GitHub.

    Considerações de segurança

    O provider utiliza um token SSRF (Falsificação de Requisição do Lado do Servidor — SSRF) para impedir que processos não autorizados acessem seu endpoint HTTP. Apenas aplicações que consigam ler o arquivo do token podem recuperar segredos pelo provider.

    Qualquer identidade que tenha acesso ao endpoint do provider e ao token SSRF pode recuperar segredos via encadeamento de funções. Isso significa que usuários com acesso ao ambiente de computação podem recuperar segredos de outras contas quando a assunção de função estiver configurada. Por isso, a AWS recomenda seguir o princípio do menor privilégio, limitando as permissões da função-alvo apenas aos segredos necessários.

    No caso do pré-carregamento, os segredos são carregados no cache em memória do provider na inicialização. Qualquer processo que consiga alcançar o endpoint localhost e fornecer um token SSRF válido poderá recuperar esses segredos do cache.

    Acesso a segredos entre contas com encadeamento de funções

    Organizações frequentemente armazenam segredos em uma conta AWS dedicada ou precisam compartilhar um mesmo segredo entre aplicações em contas diferentes. Até recentemente, o acesso entre contas pelo provider exigia a criação de políticas baseadas em recursos diretamente em cada segredo. Alguns times preferem trabalhar com assunção de funções IAM — e era necessário implantar múltiplas instâncias do provider ou construir lógica customizada de troca de credenciais.

    Agora, o provider suporta as duas abordagens: políticas baseadas em recursos e assunção de funções via AWS Security Token Service (AWS STS). Quando o parâmetro roleArn é incluído na requisição, o provider usa o AssumeRole do AWS STS para obter credenciais temporárias e recuperar o segredo com essas credenciais. O provider cria e armazena em cache um cliente separado para cada ARN de função, reutilizando-o nas requisições subsequentes — e cada cliente de função mantém seu próprio cache independente.

    Importante: a conta de origem executa o Workload Credentials Provider e a aplicação; a conta de destino contém o segredo a ser recuperado. Uma única instância do provider na conta de origem pode assumir funções em uma ou mais contas de destino.

    Pré-requisitos

    • O Workload Credentials Provider compilado e instalado no ambiente
    • Credenciais AWS configuradas no ambiente de computação com permissão para chamar sts:AssumeRole no ARN da função-alvo
    • Se também recuperar segredos da conta de origem pelo provider, as credenciais precisam ter as permissões secretsmanager:GetSecretValue e secretsmanager:DescribeSecret para esses segredos
    • Um segredo em uma conta AWS de destino
    • Uma função IAM na conta de destino com política de confiança que permita à identidade do provider assumi-la

    Como compilar o Workload Credentials Provider

    O provider é escrito em Rust e compila para um único executável. Os passos a seguir são para sistemas baseados em RPM, como o Amazon Linux 2023:

    Instale as dependências de compilação:

    sudo yum -y groupinstall "Development Tools"

    Instale o Rust:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source "$HOME/.cargo/env"

    Clone o repositório e compile o provider (use a tag mais recente disponível):

    git clone --branch <git tag> https://github.com/aws/aws-workload-credentials-provider.git
    cd aws-workload-credentials-provider
    cargo build --release

    O binário compilado estará em target/release/aws-workload-credentials-provider.

    Como instalar o Workload Credentials Provider no Amazon EC2

    Após compilar o provider, instale-o como serviço de sistema na instância EC2 e configure o acesso ao token SSRF. Após configurar o arquivo config.toml, execute o script de instalação para implantar o provider como serviço systemd e gerar o token SSRF:

    cd aws_workload_credentials_provider_common/configuration
    sudo ./install --config config.toml

    Adicione o usuário da aplicação ao grupo aws-wcp-token para conceder permissão de leitura do arquivo do token SSRF:

    sudo usermod -aG aws-wcp-token <APP_USER>

    Para instalação no Amazon ECS, Amazon EKS ou Lambda, consulte as instruções de instalação no repositório do GitHub.

    Verificando a instalação

    Verifique se o provider está em execução:

    curl -v -H \
    "X-Aws-Parameters-Secrets-Token: $(

    Você receberá uma resposta JSON com o valor do segredo. Se aparecer erro de conexão recusada, verifique se o processo do provider está em execução. Se aparecer erro 401 ou 403, verifique se o arquivo do token SSRF é legível e se as credenciais IAM do provider possuem as permissões secretsmanager:GetSecretValue e secretsmanager:DescribeSecret.

    Permissões necessárias e configuração das funções IAM

    A identidade IAM base do provider precisa de: sts:AssumeRole no ARN da função-alvo. A função-alvo precisa de: secretsmanager:GetSecretValue e secretsmanager:DescribeSecret.

    Configurando a função IAM na conta de destino

    Crie uma função IAM na conta de destino com uma política de confiança que permita à identidade do provider na conta de origem assumi-la:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::111111111111:role/WCProviderRole"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }

    Em seguida, anexe uma política a essa função que conceda acesso ao segredo:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:GetSecretValue",
            "secretsmanager:DescribeSecret"
          ],
          "Resource": "arn:aws:secretsmanager:us-east-1:222222222222:secret:MyDatabaseSecret"
        }
      ]
    }

    Configurando a função IAM na conta de origem

    Antes que o provider possa assumir a função criada na conta de destino, é necessário conceder permissão para chamar sts:AssumeRole. Anexe a seguinte política à função IAM do provider na conta de origem:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": "arn:aws:iam::222222222222:role/CrossAccountSecretAccessRole"
        }
      ]
    }

    Como recuperar o segredo entre contas

    Chame o endpoint do provider com o parâmetro roleArn. O exemplo com curl abaixo mostra como recuperar um segredo usando uma função IAM diferente:

    curl -v -H "X-Aws-Parameters-Secrets-Token: $(

    O mesmo pode ser feito com Python:

    import requests
    
    def get_secret_cross_account():
        role_arn = "arn:aws:iam::222222222222:role/CrossAccountSecretAccessRole"
        url = f"http://localhost:2773/secretsmanager/get?secretId=MyDatabaseSecret&roleArn={role_arn}"
    
        with open('/var/run/awssmatoken') as fp:
            token = fp.read()
    
        headers = {
            "X-Aws-Parameters-Secrets-Token": token.strip()
        }
    
        response = requests.get(url, headers=headers)
    
        if response.status_code == 200:
            return response.text
        else:
            raise Exception(f"Status code {response.status_code} - {response.text}")

    O número máximo de funções assumidas simultaneamente pode ser configurado com a opção max_roles no arquivo de configuração TOML do provider. O padrão é 20, com intervalo de 1 a 20.

    Pré-carregamento de segredos na inicialização

    Por padrão, o Workload Credentials Provider popula seu cache de forma preguiçosa (lazy) — a primeira requisição por um segredo dispara uma chamada de rede ao Secrets Manager. O pré-carregamento (prefetching) reduz essa latência de cold-start ao carregar os segredos durante a inicialização do provider.

    Como o pré-carregamento funciona

    O pré-carregamento é configurado adicionando uma seção [capabilities.secrets_manager.prefetch] ao arquivo de configuração TOML do provider. Há duas formas de especificar os segredos a serem pré-carregados:

    • Segredos explícitos — liste IDs ou ARNs específicos usando entradas [[capabilities.secrets_manager.prefetch.secrets]].
    • Descoberta por tag — descubra segredos por chave de tag usando entradas [[capabilities.secrets_manager.prefetch.filter_tags]]. O provider chama BatchGetSecretValue com filtros de chave de tag para encontrar e armazenar em cache todos os segredos correspondentes.

    Os dois métodos podem ser usados em conjunto. Cada entrada aceita opcionalmente um campo role_arn para pré-carregamento entre contas via encadeamento de funções.

    Permissões necessárias para o pré-carregamento

    • secretsmanager:BatchGetSecretValue — necessário na função da conta de origem para segredos locais, ou na função-alvo para segredos entre contas
    • secretsmanager:ListSecrets — necessário ao usar descoberta por tag (filter_tags), na função que realiza a descoberta

    Opções de configuração do pré-carregamento

    As seguintes opções estão disponíveis na seção [capabilities.secrets_manager.prefetch] do arquivo de configuração TOML:

    • cache_buffer_ratio — fração máxima do cache a ser preenchida por cliente de cache durante o pré-carregamento, no intervalo de 0,1 a 1,0. O padrão é 0,8. Por exemplo, se o cache suporta 100 segredos, uma razão de 0,8 pré-carrega até 80, deixando espaço para 20 segredos sob demanda.
    • max_jitter_seconds — atraso aleatório máximo em segundos antes de iniciar a tarefa de pré-carregamento, no intervalo de 0 a 10. O padrão é 0 (sem jitter). Use esse parâmetro para evitar chamadas de API sincronizadas em toda a frota ao implantar em muitas instâncias.

    Exemplo: pré-carregamento com segredos explícitos

    A configuração abaixo pré-carrega dois segredos na inicialização — um da conta de origem e outro de uma conta diferente via encadeamento de funções:

    [capabilities.secrets_manager.prefetch]
    secrets = [
      { secret_id = "arn:aws:secretsmanager:us-east-1:111111111111:secret:MySecret-AbCdEf" },
      { secret_id = "cross-account-secret", role_arn = "arn:aws:iam::222222222222:role/CrossAccountSecretAccessRole" }
    ]

    Exemplo: pré-carregamento com descoberta por tag

    A configuração abaixo descobre e armazena em cache todos os segredos com a chave de tag Environment, e todos os segredos com a chave Team em uma conta diferente:

    [capabilities.secrets_manager.prefetch]
    filter_tags = [
      { key = "Environment" },
      { key = "Team", role_arn = "arn:aws:iam::222222222222:role/CrossAccountSecretAccessRole" },
    ]

    Exemplo: configuração completa

    O exemplo abaixo mostra uma configuração completa do provider combinando os dois recursos:

    [logging]
    log_level = "info"
    
    [capabilities.secrets_manager]
    http_port = 2773
    region = "us-east-1"
    
    [capabilities.secrets_manager.cache]
    ttl_seconds = 300
    
    [capabilities.secrets_manager.prefetch]
    cache_buffer_ratio = 0.6
    max_jitter_seconds = 5
    
    secrets = [
      { secret_id = "arn:aws:secretsmanager:us-east-1:111111111111:secret:MySecret-AbCdEf" },
      { secret_id = "arn:aws:secretsmanager:us-east-1:222222222222:secret:CrossAccount-AbCdEf", role_arn = "arn:aws:iam::222222222222:role/CrossAccountSecretAccessRole" },
    ]
    
    filter_tags = [
      { key = "Environment" },
      { key = "Team", role_arn = "arn:aws:iam::222222222222:role/CrossAccountSecretAccessRole" },
    ]

    Para iniciar o provider com o arquivo de configuração:

    ./aws-workload-credentials-provider sm start --config config.toml

    Conclusão

    O encadeamento de funções simplifica arquiteturas multi-conta: uma única instância do provider consegue recuperar segredos entre contas usando assunção de funções IAM, sem necessidade de múltiplas instâncias ou lógica customizada de troca de credenciais. Já o pré-carregamento elimina a latência de cold-start ao popular o cache antes da primeira requisição da aplicação. Combinados, esses dois recursos tornam o Workload Credentials Provider uma solução mais robusta para ambientes distribuídos que exigem acesso rápido e seguro a segredos em múltiplas contas AWS.

    Para saber mais, acesse a documentação do AWS Workload Credentials Provider, o guia sobre acesso a segredos do AWS Secrets Manager a partir de outra conta, o repositório no GitHub com o código-fonte e o README, e a documentação do AWS Secrets Manager.

    Fonte

    How to use the AWS Workload Credentials Provider for cross-account secret retrieval and prefetching secrets (https://aws.amazon.com/blogs/security/how-to-use-the-aws-workload-credentials-provider-for-cross-account-secret-retrieval-and-prefetching-secrets/)

  • Amazon RDS Aprimora Autenticação IAM com Escalabilidade de Taxa de Conexão

    O que mudou no Amazon RDS

    A AWS anunciou uma melhoria importante no Amazon Relational Database Service (Amazon RDS): a autenticação de banco de dados via IAM (Identity and Access Management — Gerenciamento de Identidade e Acesso) agora conta com escalonamento dinâmico de conexões. Isso significa que a capacidade de processar novas requisições de autenticação passa a acompanhar os recursos disponíveis na instância.

    Por que isso importa para workloads empresariais

    Até então, equipes que operavam cargas de trabalho de alto volume enfrentavam limitações ao tentar adotar a autenticação IAM em ambientes com muitas conexões simultâneas. Com essa atualização, o desempenho da autenticação IAM escala proporcionalmente aos recursos da instância, tornando esse mecanismo de segurança viável também para padrões de conexão de alta demanda.

    Em termos práticos: quanto mais recursos a instância tiver disponíveis, mais requisições de autenticação IAM ela consegue processar. O volume exato depende tanto dos recursos disponíveis quanto das características da carga de trabalho em execução.

    Boas práticas recomendadas pela AWS

    Para garantir o melhor desempenho possível com essa novidade, a AWS recomenda duas estratégias principais:

    • Reutilizar principals IAM: sempre que possível, reuse usuários IAM ou roles (funções) assumidas via IAM para gerar os tokens de autenticação, em vez de criar novos a cada conexão.
    • Reutilizar os próprios tokens de autenticação: quando aplicável, reaproveite os tokens já gerados em vez de solicitar novos repetidamente.

    Essas práticas reduzem a pressão sobre os recursos da instância e contribuem para um comportamento mais eficiente e previsível do ambiente.

    Disponibilidade

    A atualização já está disponível em todas as regiões da AWS, incluindo as regiões AWS GovCloud (US). O suporte abrange todos os engines de banco de dados onde a autenticação IAM é compatível com o Amazon Aurora e o Amazon RDS, incluindo PostgreSQL, MySQL e MariaDB.

    Para se aprofundar nos detalhes técnicos e entender como configurar corretamente esse recurso no seu ambiente, consulte a documentação oficial de autenticação IAM para banco de dados.

    Fonte

    Amazon RDS Enhances IAM Database Authentication with Connection Rate Scaling (https://aws.amazon.com/about-aws/whats-new/2026/06/amazon-rds-iam/)

  • Como a AWS Está Liberando Modelos Frontier com Segurança para os Clientes

    Segurança como Base de Tudo

    A AWS reafirmou recentemente seu compromisso em ser o ambiente mais seguro para execução de qualquer tipo de workload. Esse não é um posicionamento novo — a empresa investe em segurança desde sua fundação, há mais de duas décadas. E quando o assunto é Inteligência Artificial (IA), esse mesmo princípio se aplica diretamente ao Amazon Bedrock.

    O Bedrock foi construído sobre essa base consolidada de segurança e oferece aos clientes desempenho, privacidade e uma das maiores seleções de modelos disponíveis no mercado. No ano passado, a AWS lançou o Bedrock Mantle, com privacidade de ponta e proteção para os pesos dos modelos — um diferencial importante para empresas que lidam com dados sensíveis.

    A Demanda por Modelos Mais Recentes

    Uma das solicitações mais frequentes dos clientes corporativos é ter acesso às versões mais recentes dos modelos assim que elas são lançadas. A AWS afirma que o Bedrock entrega exatamente isso, combinando acesso rápido aos modelos mais novos com os recursos empresariais que os clientes esperam da plataforma.

    Nesse contexto, a AWS anunciou que os modelos Claude Fable 5, da Anthropic, estarão disponíveis novamente para os clientes no Bedrock. Segundo a empresa, essa nova versão traz guardrails (mecanismos de proteção) ainda mais robustos para prevenir o uso indevido.

    A Responsabilidade Vai Além dos Clientes

    Ao liberar um modelo, a AWS deixa claro que considera não apenas suas responsabilidades para com os clientes diretos, mas também o impacto sobre a internet e a sociedade como um todo. Essa perspectiva é especialmente relevante com a geração mais recente de modelos frontier — como o Claude Mythos, da Anthropic — que apresentam capacidades novas e poderosas, especialmente na área de cibersegurança.

    A AWS relata ter vivenciado isso na prática como parte do Project Glasswing, uma iniciativa colaborativa com a Anthropic e outros parceiros do setor. A empresa demonstra entusiasmo em colocar modelos da classe Mythos nas mãos de defensores — profissionais e organizações que usam IA para tornar os sistemas digitais mais seguros.

    O Desafio do Equilíbrio: Defensores vs. Adversários

    Aqui está o ponto mais delicado e importante do comunicado: ao disponibilizar modelos com capacidades avançadas de cibersegurança, existe um risco real de que adversários — agentes maliciosos — também se beneficiem dessas ferramentas.

    A AWS aponta que o objetivo mais crítico dos guardrails é impedir que adversários consigam realizar pesquisas profundas de vulnerabilidades usando esses modelos. O desafio está em liberar o modelo de forma ampla sem, ao mesmo tempo, oferecer aos atacantes uma vantagem significativa antes que empresas, governos e instituições acadêmicas tenham tido a chance de proteger seus ativos.

    Encontrar esse equilíbrio é, segundo a AWS, um dos principais desafios no lançamento de modelos frontier — e é exatamente por isso que o Project Glasswing existe: para refinar os mecanismos de proteção dessa nova classe de modelos em conjunto com parceiros do setor.

    Um Momento Empolgante para a IA

    A AWS reconhece que vivemos um momento único para a IA, com novas capacidades sendo entregues quase diariamente. A empresa defende que disponibilizar esses modelos avançados para todos os clientes — em um ambiente seguro e com preservação de privacidade — é fundamental para que as organizações colham os benefícios sem criar novos riscos de segurança.

    Além disso, a AWS ressalta que os guardrails precisam continuar evoluindo à medida que se aprende mais sobre sua eficácia e à medida que novos modelos são lançados. O compromisso é de iteração contínua com os parceiros, entrega de mais valor e capacidade de resposta às mudanças do setor.

    Transparência e Resposta a Incidentes

    Outro ponto destacado é a importância de tratar adequadamente qualquer problema identificado após a liberação dos modelos. A Anthropic publicou um post, Redeployando o Fable 5, explicando como a empresa está pensando sobre as capacidades dessa nova classe de modelos e quais são seus compromissos e Acordos de Nível de Serviço (SLAs) para responder a problemas reportados.

    A AWS elogiou a transparência da Anthropic ao estruturar, pela primeira vez, um modelo de classificação de severidade de problemas e de resposta para modelos com capacidades cibernéticas. A empresa considera esse um passo importante para toda a indústria e aguarda a evolução desse debate coletivo.

    O Trabalho do Time de Red Team de IA

    O Time de Red Team de IA da AWS trabalhou diretamente com a Anthropic para aprimorar as proteções do Fable. O resultado, segundo a empresa, é um modelo altamente capaz que minimiza ainda mais o risco de uso indevido por adversários. O modelo entrega capacidades de raciocínio muito mais avançadas na maioria dos domínios, sem oferecer aos adversários novas capacidades de segurança significativas.

    Um detalhe técnico relevante: quando os guardrails são acionados, o sistema recorre automaticamente ao Opus 4.8 — por si só um modelo de classe mundial, já disponível publicamente.

    Parceria de Longo Prazo com a Anthropic

    A AWS encerra o comunicado reforçando o valor da parceria com a Anthropic e o compromisso conjunto com os defensores digitais. A perspectiva é de continuidade: trabalhar com a Anthropic e com o restante da indústria para manter a disponibilização de modelos frontier de forma segura e responsável.

    Fonte

    Safely Releasing Frontier Models to Customers (https://aws.amazon.com/blogs/machine-learning/safely-releasing-frontier-models-to-customers/)

  • Amazon CloudWatch Logs passa a enriquecer eventos de log com tags de recursos AWS

    O que foi anunciado

    A AWS anunciou uma novidade relevante para quem trabalha com observabilidade: o Amazon CloudWatch Logs agora é capaz de enriquecer automaticamente os eventos de log com as tags dos recursos AWS. Isso acontece diretamente no momento da ingestão dos dados, sem exigir nenhuma mudança na instrumentação de logging já existente nas aplicações.

    Por que isso importa

    Quem já trabalhou com análise de logs em ambientes grandes sabe o quanto é trabalhoso correlacionar um evento de log com informações de contexto como: qual equipe é dona daquele recurso, em qual ambiente ele está rodando (produção, homologação, desenvolvimento), a qual centro de custo pertence ou qual aplicação está envolvida.

    Antes desse recurso, adicionar esse tipo de contexto normalmente exigia a construção de pipelines customizados ou a instrumentação manual das aplicações para incluir essas informações nos logs. Agora, o CloudWatch Logs faz esse trabalho automaticamente, aproveitando as tags que já existem nos recursos AWS.

    Como funciona o enriquecimento por tags

    Com o enriquecimento por tags (tag enrichment), o Amazon CloudWatch Logs adiciona as tags do recurso AWS diretamente aos eventos de log no momento em que eles são ingeridos. A partir daí, essas tags ficam disponíveis imediatamente para uso em consultas de log, permitindo filtrar e analisar os dados com base nos metadados que fazem sentido para a organização — sem necessidade de pipelines adicionais ou ajustes no código das aplicações.

    Alguns exemplos práticos do que se torna possível com esse recurso:

    • Filtrar rapidamente todos os logs de recursos de produção pertencentes a uma equipe específica;
    • Segmentar a análise por centro de custo durante uma investigação de incidente;
    • Organizar consultas por nome de aplicação ou ambiente, usando as tags já cadastradas nos recursos.

    Disponibilidade e como ativar

    O enriquecimento por tags está disponível em todas as regiões comerciais da AWS, com exceção de Middle East (UAE), Middle East (Bahrain) e Israel (Tel Aviv).

    Para começar a usar, basta habilitar as tags de recursos para telemetria nas configurações do Amazon CloudWatch, ou por meio da Interface de Linha de Comando da AWS (AWS CLI) e dos SDKs da AWS. Dessa forma, as tags já existentes nos recursos AWS passam a enriquecer automaticamente os eventos de log.

    Vale destacar: o recurso está disponível sem custo adicional. Para mais detalhes técnicos sobre como configurar e utilizar o enriquecimento por tags, a AWS disponibilizou a documentação oficial do Amazon CloudWatch.

    Fonte

    Amazon CloudWatch Logs enriches log events with AWS resource tags (https://aws.amazon.com/about-aws/whats-new/2026/06/amazon-cloudwatch-logs-resource-tags/)

  • O que a atualização de junho de 2026 do Catálogo de Técnicas de Ameaças significa para o seu ambiente AWS

    O que é o Catálogo de Técnicas de Ameaças da AWS?

    A Equipe de Resposta a Incidentes da AWS (AWS CIRT) acompanha de perto os padrões de ataque que se repetem em diferentes clientes. Para transformar esse conhecimento em algo útil para toda a comunidade, a AWS mantém o Catálogo de Técnicas de Ameaças para AWS (TTC) — uma base de referência pública que documenta técnicas de ataque observadas em ambientes reais, com orientações de mitigação e detecção.

    A atualização de junho de 2026 é significativa: cinco novas entradas foram adicionadas e três entradas existentes foram revisadas. O tema central desta edição gira em torno de segurança em plataformas de orquestração de containers, abuso de relacionamentos de confiança organizacional e sequestro de capacidade computacional. A seguir, a CloudTroop explica o que cada mudança significa na prática.

    As cinco novas técnicas documentadas

    1. Modificação de workloads no EKS

    O Amazon Elastic Kubernetes Service (Amazon EKS) oferece grande poder de orquestração — e isso também atrai atacantes. A técnica documentada descreve como agentes maliciosos que obtêm credenciais do Kubernetes ou uma função do Gerenciamento de Identidade e Acesso da AWS (IAM) com permissões no EKS conseguem modificar workloads já em execução. Isso inclui trocar imagens de containers, injetar containers sidecar ou alterar especificações de pods para introduzir código malicioso em um deployment existente.

    O ponto crítico aqui é que nada novo é criado: o workload já existe, possivelmente em produção. Ao modificá-lo no lugar, o atacante herda automaticamente os acessos de rede, permissões de conta de serviço e acesso a dados que o workload legítimo já possuía. Sem controladores de admissão ou verificação de imagem, essas alterações podem passar despercebidas por muito tempo.

    As mitigações recomendadas incluem: aplicar assinatura de imagens via controladores de admissão, restringir alterações de workloads com Controle de Acesso Baseado em Funções (RBAC) do Kubernetes e habilitar o Amazon GuardDuty EKS Protection para identificar atividades anômalas no cluster. Consulte a entrada completa: EKS Modification – Workload Integrity Degradation.

    2. Exploração de aplicações expostas publicamente no EKS

    Servidores de API do Kubernetes expostos publicamente e controladores de ingresso mal configurados continuam sendo pontos de entrada explorados com frequência. Esta técnica documenta ataques direcionados às aplicações implantadas pelos próprios clientes no EKS — não ao EKS em si — e sua exposição à internet.

    O padrão começa com um serviço exposto e uma vulnerabilidade em nível de aplicação. A partir daí, o atacante pivota do pod comprometido em direção a um acesso mais amplo no cluster. Dentro de um pod, é possível consultar o serviço de metadados da instância, ler tokens de conta de serviço montados ou se mover lateralmente pela rede do cluster.

    Limitar a exposição pública do servidor de API do Kubernetes, aplicar políticas de rede para restringir a comunicação entre pods e operar workloads com contas de serviço de menor privilégio reduzem significativamente o risco. Mais detalhes na entrada: Exploit Public-Facing Application.

    3. Assumir acesso root em contas-membro da organização

    O AWS Organizations centraliza a governança entre contas, e essa confiança flui em uma única direção: da conta de gerenciamento para as contas-membro. A técnica documentada descreve como atacantes que comprometem a conta de gerenciamento — ou obtêm privilégios suficientes dentro dela — utilizam essa posição para assumir acesso root em contas-membro via sts:AssumeRoot.

    Como a confiança é inerente à estrutura organizacional, esse movimento pode contornar os controles de acesso configurados pelo administrador da conta-membro. Com acesso root, o atacante pode desabilitar controles de segurança, excluir recursos, alterar configurações de faturamento e estabelecer persistência que sobrevive a remediações focadas em entidades do IAM.

    A recomendação é implementar políticas de controle de serviços (SCPs) que restrinjam quais entidades podem chamar sts:AssumeRoot e em quais condições, além de monitorar essas chamadas no AWS CloudTrail. Veja a entrada completa: Assume Root into Organization Member Account.

    4. Sequestro de capacidade computacional no EKS

    O sequestro de recursos computacionais segue sendo uma das motivações mais comuns por trás de acessos não autorizados, e clusters EKS estão cada vez mais na mira. Atacantes implantam workloads de mineração de criptomoedas ou outras cargas computacionalmente intensivas dentro de clusters comprometidos, consumindo recursos do cliente e gerando custos inesperados.

    O que torna o sequestro em EKS especialmente preocupante é a escala: em clusters sem cotas de recursos, uma única conta de serviço comprometida pode consumir toda a capacidade disponível nos nós. Os workloads maliciosos utilizam imagens de aparência legítima obtidas de registries públicos, o que torna a verificação de imagens isolada insuficiente como defesa.

    Definir cotas de recursos e limites de intervalo, restringir de quais registries os workloads podem obter imagens e habilitar o Amazon GuardDuty EKS Protection para sinalizar comportamentos de mineração são medidas eficazes. Consulte: Resource Hijacking: Compute Hijacking – EKS.

    5. Convite de contas para uma organização desconhecida

    Nesta técnica, um atacante com acesso a uma conta standalone — ou a uma conta removida de sua organização legítima — a convida para uma organização sob seu controle. Após a conta ingressar, ela passa a estar sob a governança do atacante.

    A partir daí, o atacante pode aplicar SCPs que restringem as ações do proprietário legítimo, obter visibilidade dos recursos da conta por meio de serviços organizacionais e acessar informações de faturamento consolidado. O proprietário legítimo se vê bloqueado de seus próprios controles de governança.

    Monitorar os eventos organizations:InviteAccountToOrganization e organizations:AcceptHandshake, além de implementar SCPs que impeçam contas de sair de sua organização legítima, são medidas preventivas importantes. Mais detalhes em: Modify Cloud Resource Hierarchy: Invite Accounts to Unknown Organization.

    O que foi atualizado nas entradas existentes

    Além das cinco novas entradas, três registros existentes no catálogo foram revisados e aprimorados:

    A tendência por trás desta atualização

    A atualização de junho de 2026 do Catálogo de Técnicas de Ameaças para AWS reflete uma tendência clara: atacantes estão cada vez mais mirando plataformas de orquestração de containers e explorando relacionamentos de confiança organizacional em seu favor.

    As técnicas voltadas a containers mostram que, à medida que as organizações adotam o Kubernetes em escala, a superfície de ataque cresce proporcionalmente. As técnicas organizacionais revelam que atacantes compreendem bem como funciona a cadeia de confiança entre contas AWS.

    O fio condutor de todas essas técnicas é importante: cada uma delas opera dentro dos limites de funcionalidades legítimas. Modificar um workload, assumir confiança entre contas e ingressar em uma organização são ações esperadas em ambientes saudáveis. A detecção, portanto, depende inteiramente do contexto: qual entidade executou a ação, em que momento e qual sequência de eventos se seguiu.

    É exatamente para isso que o TTC foi criado. A AWS encoraja times de segurança a revisarem as entradas relevantes e avaliarem se o monitoramento atual seria capaz de identificar esses padrões. Alguns pontos de atenção específicos:

    • Modificações inesperadas nas especificações de workloads do EKS
    • Deployments de pods que utilizam imagens de containers não assinadas
    • Chamadas sts:AssumeRoot em contas-membro
    • Consumo computacional ilimitado em clusters EKS que poderia ser prevenido com cotas de recursos
    • Convites inesperados de organização para suas contas

    Cada uma dessas ameaças deixa rastros no AWS CloudTrail e nos logs de auditoria do Kubernetes. O TTC fornece orientações específicas sobre o que monitorar e como responder em cada caso.

    Por que acompanhar o TTC?

    O Catálogo de Técnicas de Ameaças para AWS existe porque os padrões observados durante engajamentos de segurança não deveriam ficar restritos às equipes internas. Quando técnicas se repetem entre diferentes clientes, documentá-las e disponibilizá-las publicamente é a forma mais eficaz de permitir que times de segurança ajam antes de estarem no meio de um incidente.

    Esta atualização de junho adiciona cinco novas entradas e revisa três existentes. O catálogo continuará evoluindo com base no que a equipe da AWS CIRT observa no mundo real ao ajudar clientes a responderem a eventos de segurança. A recomendação é que times de segurança revisem o catálogo, incorporem suas técnicas em exercícios de modelagem de ameaças e o utilizem como vocabulário compartilhado para discutir ameaças específicas da nuvem.

    Explore a matriz completa: Catálogo de Técnicas de Ameaças para AWS – Matriz Completa.

    Recursos adicionais

    Fonte

    What the June 2026 Threat Technique Catalog update means for your AWS environment (https://aws.amazon.com/blogs/security/what-the-june-2026-threat-technique-catalog-update-means-for-your-aws-environment/)

  • Como implementar uma estratégia de backup para ativos de BI no Amazon QuickSight

    Protegendo seus ativos de BI no QuickSight

    O Amazon QuickSight é o componente de Inteligência de Negócios (BI) dentro do Amazon Quick, um espaço de trabalho digital com capacidades de Inteligência Artificial (IA). Ele oferece consultas em linguagem natural, dashboards interativos e análises embarcadas a partir de fontes de dados corporativas confiáveis.

    A AWS publicou um guia completo sobre como implementar uma estratégia de backup para esses ativos — dashboards, análises, conjuntos de dados e fontes de dados — usando as APIs AssetsAsBundle. Esta é a Parte 1 de uma série de dois artigos: aqui o foco é o processo de backup; a Parte 2 cobrirá a restauração.

    Uma estratégia de backup bem desenhada protege contra exclusões acidentais, modificações indesejadas e interrupções regionais. Para equipes que dependem do QuickSight para suportar decisões críticas de negócio, esse planejamento é altamente recomendado.

    Por que o backup de BI é especialmente crítico

    Sistemas de BI apresentam desafios únicos de continuidade de negócio por conta do papel central que exercem nos processos de tomada de decisão. A AWS destaca quatro razões principais pelas quais uma estratégia de backup eficaz é essencial:

    • Prevenção de perda de dados: protege contra erros humanos, exclusões acidentais e eventos como ransomware.
    • Cumprimento de objetivos de recuperação: ajuda a atingir o Objetivo de Ponto de Recuperação (RPO) e o Objetivo de Tempo de Recuperação (RTO), minimizando a perda de dados em incidentes.
    • Auditoria e relatórios: suporta o rastreamento do ciclo de vida dos ativos — criação, atualizações e exclusão.
    • Resiliência de workloads: permite restauração rápida a estados anteriores, alinhando-se ao pilar de Confiabilidade do AWS Well-Architected Framework.

    Além disso, uma boa estratégia de backup serve como base para um processo de Recuperação de Desastres (DR) e contribui para o Plano de Continuidade de Negócios (BCP) da organização. Isso é especialmente relevante para setores regulados como serviços financeiros, saúde e energia.

    Entendendo a arquitetura do QuickSight

    Antes de construir um plano de backup, é importante entender como o QuickSight está estruturado. O serviço utiliza a infraestrutura global da AWS em múltiplas regiões para garantir alta disponibilidade dos ativos — fontes de dados, conjuntos de dados, análises e dashboards.

    O motor SPICE (Super-fast, Parallel, In-memory Calculation Engine — Motor de Cálculo Super-rápido, Paralelo e em Memória) armazena e criptografa os dados importados com alta disponibilidade (HA) por meio de cópias redundantes em múltiplas Zonas de Disponibilidade (AZs) dentro da região do QuickSight.

    Para gerenciamento de usuários e identidades, o QuickSight usa uma única região definida durante o processo de assinatura inicial da conta. Essa região hospeda as informações de identidade de usuários e grupos, e precisa estar disponível para que os usuários acessem o serviço.

    Uma dica prática: se você não sabe qual é a região principal do QuickSight na sua conta, pode descobrir com o seguinte comando:

    aws quicksight describe-account-settings --aws-account-id XXXXXXXXXXXX --region us-east-1

    Se receber um status 200, sua região de identidade é us-east-1. Caso contrário, a mensagem de erro indicará qual região usar.

    Definindo quais ativos incluir no backup

    Com o entendimento da arquitetura em mãos, o próximo passo é selecionar os ativos a proteger. A AWS apresenta duas estratégias:

    • Backup de ativos específicos: indicado quando a estratégia de backup ou DR foca em proteger os ativos críticos para a operação do negócio — por exemplo, dashboards usados por stakeholders-chave ou equipes de finanças, logística e procurement. É a opção recomendada quando os ativos essenciais representam apenas um subconjunto do total disponível na instância do QuickSight.
    • Backup de todos os ativos: recomendado quando se deseja cobrir tanto versionamento quanto recuperação de desastres. Com todos os ativos salvos, é possível fazer rollback de qualquer item a um estado anterior em caso de erro humano, além de selecionar ativos específicos para restauração no contexto de um plano de DR. Essa abordagem oferece cobertura máxima, mas exige orquestração e automação mais complexas.

    O guia da AWS foca na segunda estratégia e fornece código de exemplo para acelerar a implementação.

    Tipos de ativos suportados

    O QuickSight oferece os seguintes tipos de ativos para exportação:

    • Dashboards: ativos somente leitura publicados a partir de uma análise, voltados para usuários leitores.
    • Análises e dashboards: uma análise é a versão editável de um dashboard, acessível apenas pelos autores designados.
    • Fontes de dados: implementam a conexão com os dados, que podem vir de bancos de dados, data warehouses, serviços AWS como o Amazon S3, ou provedores SaaS como Jira e ServiceNow.
    • Conjuntos de dados: usam uma fonte de dados para acessar dados externos e estruturá-los para análises e dashboards.
    • Conexões VPC: permitem integração com recursos de rede privada, como bancos de dados em VPCs, VPNs ou AWS Direct Connect.
    • Temas: coleções de configurações de estilo e aparência aplicáveis a análises e dashboards para padronização visual.

    Todos esses ativos têm dependências entre si, com análises e dashboards no topo da cadeia. Ao escolher o que incluir no backup, é essencial considerar essas dependências para garantir uma restauração completa.

    As APIs AssetsAsBundle

    O mecanismo central de backup usa as APIs AssetsAsBundle do QuickSight — também chamadas de APIs AAB. Trata-se de um conjunto de APIs de alto nível para exportação e importação programática de recursos, cobrindo casos de uso como gerenciamento de releases, backup e restauração, migração entre contas e fluxos de Integração Contínua e Entrega Contínua (CI/CD).

    As principais operações são:

    Limitações e ativos não suportados

    As APIs AAB têm algumas limitações importantes. Fontes de dados não suportadas incluem: Adobe Analytics, File, GitHub, Jira, Salesforce, ServiceNow, Amazon S3 com arquivos de manifesto carregados localmente, e Twitter. Conjuntos de dados com colunas de Aprendizado de Máquina (ML) geradas por modelos SageMaker conectados também não são suportados.

    Para contornar essas limitações com fontes de dados S3 com manifesto local, a recomendação é criar uma nova fonte de dados S3, fazer upload do arquivo de manifesto para o S3 e referenciar esse arquivo na fonte de dados, atualizando os conjuntos de dados dependentes com a API UpdateDataSet.

    Para outros tipos não suportados, o processo envolve criar uma análise conectada à fonte de dados, criar um visual de tabela com todas as colunas, exportar os dados como CSV, criar um conjunto de dados S3 com manifesto e atualizar as análises e dashboards usando a funcionalidade de substituição de conjuntos de dados.

    Outros ativos a considerar

    Além dos recursos principais do QuickSight, o backup completo deve incluir permissões de ativos (configurando o flag IncludePermissions como true), além de usuários e grupos. Como as APIs AAB não cobrem usuários e grupos, é necessário usar as APIs DescribeUser, DescribeGroup e DescribeGroupMembership para incluir essas informações.

    Também vale considerar o backup de configurações de conta, como personalização (DescribeAccountCustomization), marcas customizadas (DescribeBrand) e pastas (ListFolders, DescribeFolder e DescribeFolderPermissions).

    Implementação técnica

    Backup de usuários e grupos

    O serviço de backup de usuários e grupos usa as APIs de identidade do QuickSight para ler o estado atual da conta e armazenar os dados no Amazon DynamoDB. O serviço utiliza sufixos baseados em data nos nomes das tabelas para preservar o histórico e evitar sobrescritas — permitindo recuperação point-in-time.

    Exemplo para um backup executado em 2025-10-19:

    Usuários: quicksight-users-backup-2025-10-19
    Grupos: quicksight-groups-backup-2025-10-19
    Memberships: quicksight-users-groups-backup-2025-10-19

    O serviço também implementa suporte a duas regiões: operações de usuários e grupos usam o parâmetro identity_region, enquanto operações de ativos usam o parâmetro aws_region padrão.

    Backup de ativos

    O serviço de backup de bundles de ativos coordena a exportação dos recursos dentro de uma região e faz upload dos bundles gerados para um local no Amazon S3. Os ativos cobertos são: fontes de dados, conjuntos de dados, análises, dashboards e temas.

    O fluxo de execução inclui:

    • Listar todas as fontes de dados com a API ListDataSources, filtrando fontes S3 baseadas em manifesto e fontes com nomes de conexão VPC inválidos.
    • Listar conjuntos de dados com a API ListDataSets, filtrando datasets do tipo FILE.
    • Listar análises com a API ListAnalyses.
    • Listar dashboards com a API ListDashboards.
    • Agrupar ativos por tipo para jobs de exportação separados, com máximo de 100 ativos por bundle (limite da API).
    • Verificar o status do job com a API DescribeAssetBundleExportJob, com backoff exponencial para evitar throttling.
    • Fazer upload dos bundles para o S3 com estrutura de prefixos baseada em data e tipo de ativo.

    A ferramenta de backup: QuickSight Backup Tool

    A AWS disponibilizou uma ferramenta de automação completa no repositório aws-samples. O código usa o SDK Python Boto3 e inclui suporte a empacotamento via setuptools.

    A ferramenta suporta três modos de operação: backup apenas de usuários, backup apenas de ativos, ou ambos. Para começar a usá-la:

    git clone https://github.com/aws-samples/sample-quicksight-backup-tool.git
    cd quicksight-backup-tool
    python3 -m venv ./.venv
    source .venv/bin/activate
    pip install -e .

    Após a instalação, o comando básico de execução é:

    quicksight-backup --config config.yaml --mode full

    O parâmetro --mode aceita os valores full, users-only ou assets-only, sendo full o padrão. Para configurar a ferramenta, consulte o arquivo config-basic.yaml no repositório como referência. Mais detalhes sobre todos os parâmetros disponíveis estão no arquivo README da ferramenta.

    Antes de usar em produção, a AWS recomenda revisar e adaptar o código às políticas de segurança e conformidade da organização, testar em ambiente não-produtivo, implementar controles de segurança adequados e validar os procedimentos de recuperação em relação aos RTO e RPO definidos. Um ponto de atenção importante: a ferramenta não foi projetada para execução paralela — múltiplas instâncias simultâneas na mesma conta AWS podem causar throttling nas APIs. Se múltiplas equipes precisarem usar a ferramenta, recomenda-se implementar um mecanismo de controle de concorrência, como uma tabela de lock no DynamoDB.

    Arquitetura para execução agendada

    Para uma estratégia de backup em nível de produção, a AWS descreve uma arquitetura serverless baseada em três serviços gerenciados:

    • Amazon EventBridge: atua como agendador, disparando o fluxo de backup em cadência definida (por exemplo, diariamente à meia-noite) via regras cron ou baseadas em taxa.
    • AWS Step Functions: é a camada de orquestração, coordenando os passos individuais de backup em sequência, com tratamento de erros, lógica de retry e histórico de execução.
    • AWS Lambda: implementa cada passo individual como uma função independente e stateless, contornando as restrições de tempo inerentes ao processo de exportação assíncrona.

    O fluxo de trabalho inclui: backup de usuários e grupos (pode rodar em paralelo com os demais), descoberta de ativos, geração de bundles e verificação de status. Para controlar o volume de chamadas de API — especialmente nas operações com limites de taxa baixos — é possível usar o campo MaxConcurrency do inline map state no Step Functions.

    Estimativa de custos

    Os custos da solução são mínimos. Bundles de ativos são arquivos ZIP comprimidos armazenados no S3, com média de aproximadamente 500 KB por bundle de até 100 ativos. Mesmo em implantações muito grandes do QuickSight com milhares de ativos, o custo mensal de armazenamento no S3 fica bem abaixo de US$ 0,01.

    Para o DynamoDB, onde ficam armazenados os metadados de usuários e grupos, o custo é igualmente baixo: para organizações de pequeno e médio porte, fica abaixo de US$ 0,10 por snapshot de backup. Mesmo para grandes organizações com dezenas de milhares de usuários, os custos permanecem na casa dos poucos dólares por snapshot.

    Para backups agendados com retenção de 90 dias, o custo total de armazenamento ainda fica na casa de poucos dólares para a maioria das implantações. O uso de políticas de ciclo de vida do S3 e a classe DynamoDB Standard-IA podem otimizar ainda mais os custos.

    Conclusão

    A AWS publicou um guia abrangente sobre como proteger os ativos de BI do Amazon QuickSight com uma estratégia de backup bem estruturada. A abordagem cobre desde a seleção de ativos e o uso das APIs AssetsAsBundle até uma ferramenta de automação pronta para uso que armazena bundles no S3 e metadados de usuários no DynamoDB.

    Para equipes que já usam o QuickSight em ambientes críticos, o ponto de partida recomendado é clonar a ferramenta do repositório AWS Samples, testá-la em ambiente não-produtivo e começar com uma configuração simples cobrindo os dashboards mais críticos. Para saber mais sobre o Amazon QuickSight, consulte o Guia do Usuário do Amazon QuickSight.

    Fonte

    Implement a backup strategy for Amazon Quick Sight BI assets (https://aws.amazon.com/blogs/machine-learning/implement-a-backup-strategy-for-amazon-quick-sight-bi-assets/)

  • AWS WAF passa a proteger o Amazon Bedrock AgentCore Gateway

    O que foi anunciado

    A AWS anunciou a disponibilidade geral do AWS WAF (Firewall de Aplicações Web) para o Amazon Bedrock AgentCore Gateway. Com isso, equipes de segurança e plataforma passam a contar com uma camada de proteção consistente e configurável para workloads de IA agêntica, diretamente no nível do Gateway.

    Por que essa novidade importa

    À medida que as empresas avançam com aplicações agênticas — saindo da fase de protótipos e indo para ambientes de produção — a necessidade de controles de segurança robustos cresce proporcionalmente. O AgentCore Gateway atua como ponto central de entrada para agentes, ferramentas e integrações, o que o torna um alvo natural para exploits e tráfego abusivo.

    Antes dessa integração, proteger cada componente downstream de forma individual era uma tarefa operacionalmente custosa. Agora, com o AWS WAF operando na camada do Gateway, uma única configuração cobre todos os alvos conectados a ele.

    O que é possível configurar

    Ao associar um pacote de proteção do AWS WAF ao AgentCore Gateway, as equipes podem aplicar:

    • Controles de acesso baseados em IP — para restringir ou permitir origens específicas;
    • Regras baseadas em taxa (rate-based rules) — para bloquear ou limitar tráfego abusivo automaticamente;
    • Grupos de Regras Gerenciadas da AWS (AWS Managed Rule Groups) — incluindo conjuntos de regras comuns, entradas maliciosas conhecidas e o Bot Control.

    Como funciona na prática

    A lógica de operação é direta: o pacote de proteção é configurado uma única vez no nível do Gateway, e o AWS WAF aplica essas regras de forma consistente a todos os alvos registrados atrás desse Gateway — sejam ferramentas, agentes ou integrações. Isso elimina a necessidade de configurações redundantes por componente e reduz a superfície de erro operacional.

    Disponibilidade

    O suporte ao AWS WAF no AgentCore Gateway está disponível em todas as Regiões AWS onde tanto o AWS WAF quanto o Amazon Bedrock AgentCore Gateway estiverem disponíveis.

    Saiba mais

    Para aprofundar o tema, a AWS disponibiliza o Guia do Desenvolvedor do AWS WAF e a documentação do Amazon Bedrock AgentCore.

    Fonte

    AWS WAF adds support for Amazon Bedrock AgentCore Gateway (https://aws.amazon.com/about-aws/whats-new/2026/06/aws-waf-amazon-bedrock-agentcore/)