Blog

  • Amazon Quick Research passa a suportar chaves gerenciadas pelo cliente

    O que mudou no Amazon Quick Research

    A AWS anunciou uma atualização relevante para o Amazon Quick Research: o serviço agora oferece suporte a Chaves Gerenciadas pelo Cliente (CMK — Customer-Managed Keys) por meio do Serviço de Gerenciamento de Chaves da AWS (KMS — Key Management Service). Trata-se de uma evolução importante para equipes que precisam atender a requisitos rigorosos de segurança e conformidade.

    Por que isso importa para segurança e conformidade

    Antes dessa atualização, a criptografia dos dados no Amazon Quick Research era gerenciada pela própria AWS. Agora, as organizações podem assumir o controle direto sobre as chaves de criptografia, o que representa um nível a mais de autonomia e responsabilidade sobre os dados armazenados no serviço.

    Esse tipo de controle é frequentemente exigido por regulamentações de privacidade e segurança — especialmente em setores como financeiro, saúde e governo — onde a rastreabilidade e a capacidade de revogar acessos rapidamente são requisitos não negociáveis.

    O que é possível fazer com as CMKs no Quick Research

    Com a habilitação das chaves gerenciadas pelo cliente, as equipes ganham três capacidades principais:

    • Criptografar dados com chaves próprias do KMS, mantendo controle total sobre quem pode descriptografar as informações;
    • Rastrear todos os acessos aos dados para fins de auditoria de segurança, por meio da integração com o AWS CloudTrail;
    • Revogar o acesso a chaves comprometidas em até 15 minutos durante incidentes de segurança — um tempo de resposta bastante relevante em cenários críticos.

    Detalhes técnicos importantes

    O recurso suporta múltiplas CMKs, com uma chave padrão por conta AWS por região. Isso dá flexibilidade para gerenciar a criptografia em diferentes conjuntos de dados, mantendo controle granular sobre as informações sensíveis de inteligência de negócios.

    Há algumas restrições que vale destacar:

    • As chaves gerenciadas pelo cliente precisam ser criadas na mesma conta AWS e na mesma região dos recursos do Quick Research;
    • Apenas chaves simétricas do AWS KMS são suportadas — chaves assimétricas não são compatíveis com esse recurso.

    Disponibilidade

    O suporte a CMKs no Amazon Quick Research já está disponível de forma geral em todas as regiões AWS onde o Amazon Quick está disponível. Para saber mais sobre o serviço, a AWS disponibiliza a página de detalhes do Amazon Quick Research.

    Fonte

    Quick Research now supports customer managed keys (https://aws.amazon.com/about-aws/whats-new/2026/06/amazon-quick-research-cm-keys)

  • Relatórios SOC 1, 2 e 3 da Primavera de 2026 já estão disponíveis com 188 serviços no escopo

    AWS divulga relatórios SOC 1, 2 e 3 com 188 serviços no escopo

    A Amazon Web Services (AWS) anunciou a disponibilidade dos relatórios de Controles de Sistema e Organização (SOC) 1, 2 e 3 referentes ao ciclo da primavera de 2026. Esta é uma atualização relevante para equipes de conformidade, auditoria e segurança que utilizam serviços AWS e precisam comprovar aderência a padrões regulatórios.

    O que está coberto nos relatórios

    Os relatórios abrangem 188 serviços AWS ao longo de um período de 12 meses, de 1º de abril de 2025 a 31 de março de 2026. Isso significa que clientes têm à disposição um ano completo de evidências de conformidade, o que facilita muito processos de auditoria e due diligence.

    Esse tipo de cobertura contínua é especialmente valioso para empresas que precisam demonstrar controles robustos a reguladores, parceiros de negócio ou clientes corporativos — cenário cada vez mais comum no mercado brasileiro.

    Como acessar os relatórios

    Os relatórios SOC 1 e SOC 2 podem ser baixados diretamente pelo AWS Artifact no Console de Gerenciamento da AWS, que funciona como um portal de autoatendimento para acesso sob demanda a documentos de conformidade da AWS. Caso ainda não conheça a ferramenta, a AWS disponibiliza um guia de introdução em Primeiros Passos com o AWS Artifact.

    Já o relatório SOC 3 — a versão de uso geral, voltada para divulgação pública — pode ser encontrado tanto na Página de Conformidade SOC da AWS quanto no próprio AWS Artifact.

    Expansão contínua do escopo de conformidade

    A AWS mantém uma política de ampliar progressivamente o número de serviços cobertos por seus programas de conformidade. O objetivo é garantir que clientes consigam atender às suas necessidades arquiteturais e regulatórias sem precisar abrir mão de serviços mais recentes da plataforma. A lista atualizada de serviços no escopo pode ser consultada na página de Serviços no Escopo.

    Dúvidas e próximos passos

    Clientes AWS que tiverem dúvidas sobre conformidade SOC podem entrar em contato com o time de conta da AWS. Para uma visão geral de todos os programas de conformidade disponíveis, a AWS mantém uma página dedicada em Programas de Conformidade da AWS.

    Para equipes brasileiras que trabalham com setores regulados — como financeiro, saúde ou governo — manter esses relatórios atualizados é parte essencial da estratégia de governança em nuvem. Vale garantir que os documentos mais recentes já estejam em mãos antes da próxima rodada de auditorias.

    Fonte

    Spring 2026 SOC 1, 2, and 3 reports are now available with 188 services in scope (https://aws.amazon.com/blogs/security/spring-2026-soc-1-2-and-3-reports-are-now-available-with-188-services-in-scope/)

  • AWS HealthOmics passa a suportar o Nextflow versão 26.04

    O que mudou no AWS HealthOmics

    A AWS anunciou que o AWS HealthOmics passou a suportar o Nextflow na versão 26.04. A atualização traz um conjunto de novos recursos e melhorias que beneficiam diretamente equipes que desenvolvem e executam pipelines bioinformáticos na plataforma.

    Para quem não conhece, o AWS HealthOmics é um serviço elegível ao HIPAA (Health Insurance Portability and Accountability Act — Lei de Portabilidade e Responsabilidade de Seguros de Saúde) voltado para clientes das áreas de saúde e ciências da vida, com foco em acelerar descobertas científicas em larga escala por meio de workflows bioinformáticos totalmente gerenciados.

    Novidades do Nextflow v26.04

    Parser de sintaxe estrita

    Um dos destaques da versão é o parser de sintaxe estrita, que agora vem ativado por padrão no Nextflow v26.04. Esse recurso aplica validações rigorosas de linting, estruturas de bloco consistentes e escopo sem ambiguidades — e faz isso durante a inicialização do pipeline, e não horas depois da execução já em andamento. Na prática, isso significa menos tempo de computação desperdiçado e, consequentemente, redução de custos operacionais.

    Tipos de registro (Record Types)

    Os tipos de registro permitem que desenvolvedores de workflows utilizem nomes de dados significativos em vez de depender da ordem dos elementos dentro de tuplas. O resultado é um código mais legível e menos sujeito a erros, especialmente em pipelines complexos com muitos campos de dados.

    Resumo de saída do workflow em formato JSON

    O novo resumo de saída do workflow é gerado em formato JSON (JavaScript Object Notation — Notação de Objetos JavaScript), o que facilita a integração com ferramentas downstream que consomem os resultados dos pipelines. Equipes que automatizam etapas pós-processamento se beneficiam diretamente dessa padronização.

    Modo de logging para agentes (Agent Logging Mode)

    O modo de logging para agentes oferece uma saída estruturada e minimalista, otimizada especificamente para depuração e desenvolvimento de workflows com auxílio de inteligência artificial. Essa funcionalidade é especialmente relevante para times que já utilizam ferramentas de IA para apoiar o desenvolvimento de pipelines.

    Disponibilidade

    O Nextflow v26.04 já está disponível em todas as regiões onde o AWS HealthOmics opera:

    • US East (N. Virginia)
    • US West (Oregon)
    • Europe (Frankfurt, Ireland, London)
    • Israel (Tel Aviv)
    • Asia Pacific (Singapore, Seoul)

    Para aprofundar os detalhes técnicos da integração, a AWS disponibiliza a documentação de especificidades da definição de workflows Nextflow com as notas completas desta versão.

    Fonte

    AWS HealthOmics now supports Nextflow version 26.04 (https://aws.amazon.com/about-aws/whats-new/2026/06/aws-healthomics-nextflow-version-26-04/)

  • Amazon Quick passa a suportar conectividade VPC para conexões MCP

    O que mudou no Amazon Quick

    A AWS anunciou uma expansão importante para o Amazon Quick: o assistente de inteligência artificial agora suporta conectividade via Nuvem Privada Virtual (VPC) para conexões com servidores do Protocolo de Contexto de Modelo (MCP). A novidade é voltada especialmente para clientes corporativos que hospedam seus próprios servidores MCP em redes privadas.

    Para quem ainda não conhece, o Amazon Quick é um assistente de IA que transforma perguntas em respostas, respostas em ações e ações em resultados concretos — tanto para uso individual quanto para equipes inteiras.

    Qual era a limitação anterior

    Até então, o suporte a MCP no Amazon Quick estava restrito a servidores hospedados por terceiros e acessíveis pela internet pública. Isso deixava de fora um cenário muito comum em empresas: servidores MCP rodando em redes privadas, conectados a aplicações proprietárias, fontes de dados customizadas e ferramentas internas.

    O que a conectividade VPC resolve

    Com o suporte a VPC, organizações que hospedam servidores MCP em redes privadas agora conseguem estender essas capacidades com segurança para os fluxos de trabalho de IA dentro do Quick — sem precisar expor nada à internet pública.

    Na prática, é possível conectar o Quick a servidores MCP rodando em:

    • Amazon EC2
    • AWS Fargate
    • AWS Agentcore
    • Outros recursos de computação dentro da rede privada

    Todo o tráfego é roteado com segurança pela VPC, sem nenhuma exposição externa.

    Como configurar a conexão

    O processo é direto: durante a criação de um conector MCP no Quick, basta selecionar a conexão VPC desejada e informar a URL do servidor MCP. Após a configuração, toda a equipe pode interagir com os servidores MCP privados por meio de linguagem natural dentro do Quick.

    Disponibilidade

    O suporte a VPC para servidores MCP está disponível em todas as Regiões da AWS onde o Amazon Quick já está presente.

    Para saber mais sobre como conectar servidores MCP privados, a AWS disponibiliza a documentação sobre MCP e o guia de conectividade VPC.

    Fonte

    Amazon Quick now supports VPC connectivity for MCP connections (https://aws.amazon.com/about-aws/whats-new/2026/06/amazon-quick-vpc-mcp/)

  • Referencie seus próprios segredos do AWS Secrets Manager no Amazon Bedrock AgentCore Identity

    O desafio de credenciais em agentes de IA em produção

    Agentes de IA são tão poderosos quanto as ferramentas que conseguem acessar. Para buscar dados em um CRM, publicar atualizações no Slack ou consultar um repositório no GitHub, esses agentes precisam chamar APIs externas — e isso significa passar credenciais com segurança em tempo de execução. Fazer isso corretamente, sem hardcodar segredos no código ou expô-los nos prompts do agente, é um dos grandes desafios de quem constrói sistemas agênticos prontos para produção.

    O Amazon Bedrock AgentCore Identity já endereçava esse problema por meio de provedores de credenciais e um cofre de tokens que criavam e gerenciavam automaticamente um segredo no AWS Secrets Manager para cada recurso de provedor de credencial de saída (Outbound credential provider). Esse segredo armazenava a chave de API ou o client secret junto com outros metadados do provedor de identidade externo.

    No entanto, havia uma limitação importante: os clientes não podiam configurar tags personalizadas, políticas de rotação ou criptografia com chaves gerenciadas pelo cliente via Serviço de Gerenciamento de Chaves da AWS (AWS KMS) no momento da criação desses segredos.

    O que a AWS anunciou

    A AWS anunciou a possibilidade de referenciar um segredo já existente no AWS Secrets Manager dentro do AgentCore Identity. Com isso, as equipes podem apontar para um segredo pré-configurado e manter controle total sobre como ele é gerenciado — sem precisar criar um novo segredo do zero gerenciado pelo serviço.

    Na prática, isso significa que é possível fornecer um segredo existente no Secrets Manager para uso com seus recursos de provedor de credenciais. A equipe retém controle completo sobre a configuração de criptografia, rotação, replicação, tags e políticas de recurso — exatamente como gerencia qualquer outro segredo no Secrets Manager.

    Outro ponto relevante: é possível referenciar um segredo de outra conta AWS dentro da mesma Região AWS, embora o compartilhamento entre Regiões diferentes não seja suportado. A funcionalidade também é compatível com segredos trazidos por meio de conectores externos do AWS Secrets Manager, permitindo integração com gerenciadores de segredos de terceiros.

    Casos de uso práticos

    A AWS apresentou alguns cenários concretos onde essa capacidade faz diferença:

    • Reutilização de segredos existentes: Se o agente acessa uma API externa para a qual a equipe já tem um segredo configurado, basta fornecer o Nome de Recurso da Amazon (ARN) desse segredo ao recurso de provedor de credenciais, em vez de criar um novo. Segredos de outras contas AWS na mesma Região e segredos trazidos via conectores externos também são suportados.
    • Rotação sem interrupção: Quando o valor do segredo é rotacionado seguindo boas práticas de segurança, o AgentCore Identity recupera automaticamente o valor atualizado na próxima leitura. Não é necessário atualizar ou recriar os recursos de provedor de credenciais.
    • Controle granular de acesso: É possível configurar a política de recurso diretamente no AWS Secrets Manager, controlando quais entidades principais do Gerenciamento de Identidade e Acesso da AWS (IAM) podem acessar o segredo e definindo condições de acesso específicas.
    • Ambientes regulados com criptografia própria: Para agentes que operam em ambientes regulados onde toda credencial precisa ser criptografada com chave gerenciada pelo cliente, basta criar o segredo com essa chave antes de fornecê-lo ao AgentCore Identity. Isso é especialmente útil para organizações que aplicam Políticas de Controle de Serviço (SCPs) e Políticas de Controle de Recursos (RCPs) para garantir que todos os dados sejam criptografados com chaves gerenciadas pelo cliente. Ao referenciar um segredo existente, a configuração de criptografia é preservada integralmente.
    • Governança e rastreabilidade por tags: Organizações que exigem tags de recurso em segredos para alocação de custos, rastreamento de conformidade ou auditoria de governança podem criar e tagear o segredo conforme seus padrões antes de fornecê-lo ao AgentCore Identity.

    Para saber mais sobre as opções de configuração de segredos disponíveis, a AWS disponibiliza o Guia do Usuário do AWS Secrets Manager.

    Pré-requisitos

    Para utilizar essa funcionalidade, são necessários:

    • Um segredo existente no AWS Secrets Manager contendo a chave de API ou o client secret OAuth.
    • Permissões de IAM para conceder ao service principal do AgentCore Identity acesso de secretsmanager:GetSecretValue ao segredo.
    • Se estiver usando uma chave AWS KMS gerenciada pelo cliente, permissão de kms:Decrypt nessa chave para o service principal.
    • Acesso ao console do Amazon Bedrock AgentCore Identity ou à Interface de Linha de Comando da AWS (AWS CLI).

    Como configurar na prática

    Para referenciar um segredo no AWS Secrets Manager, basta fornecer o ARN do segredo e a chave JSON ao criar os recursos de provedor de credenciais pela API do AgentCore Identity. O serviço recupera o valor da credencial a partir da chave JSON especificada no segredo em tempo de execução.

    Pelo console

    É possível configurar um segredo referenciado ao criar novos recursos de provedor de credenciais diretamente pelo console do Amazon Bedrock AgentCore. A funcionalidade suporta tanto chaves de API quanto credenciais de cliente OAuth.

    Para adicionar uma chave de API com segredo referenciado:

    • Abra o console do Amazon Bedrock AgentCore.
    • No painel de navegação esquerdo, escolha Identity.
    • Na seção Outbound Auth, escolha Add Outbound Auth.
    • Escolha Add API key.
    • Insira um nome para o recurso Outbound Auth.
    • Em API key selection method, escolha Provide API key via Secrets Manager.
    • No campo Secrets Manager ARN, insira ou selecione o ARN do segredo existente. A lista exibe os segredos disponíveis na conta. Por exemplo: arn:aws:secretsmanager:us-east-1:123456789012:secret:myApiKeySecret-AbCdEf.
    • No campo JSON key, especifique a chave dentro do segredo que contém o valor da chave de API.
    • Escolha Add e verifique se o provedor de credenciais aparece na lista de Outbound Auth.

    Para adicionar um client secret OAuth com segredo referenciado:

    • Na página Identity, escolha Add Outbound Auth.
    • Escolha Add OAuth client.
    • Insira um nome para o cliente OAuth (por exemplo, google-oauth-client-v5fz5).
    • Em Provider, escolha o provedor desejado (incluído ou personalizado).
    • Insira o Client ID fornecido pelo provedor de identidade.
    • Em Client secret, escolha Provide Client secret via Secrets Manager.
    • No campo Secrets Manager ARN, insira o ARN do segredo que contém o client secret OAuth.
    • No campo JSON key, especifique a chave dentro do segredo que contém o valor do client secret.
    • Escolha Add OAuth Client e verifique se o provedor aparece na lista.

    Pela AWS CLI

    Também é possível configurar um segredo referenciado ao criar um novo recurso Outbound Auth para um client secret OAuth diretamente pela AWS CLI:

    aws bedrock-agentcore-control create-oauth2-credential-provider \
    --name "google-oauth-client-v5fz5" \
    --credential-provider-vendor "GoogleOauth2" \
    --oauth2-provider-config-input '{
      "googleOauth2ProviderConfig": {
        "clientId": "",
        "clientSecretSource": "EXTERNAL",
        "clientSecretConfig": {
          "secretId": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myGoogleKeySecret-AbCdEf",
          "jsonKey": "key"
        }
      }
    }'

    Por meio de um agente de IA

    Se a equipe utiliza um agente de codificação por IA (como o Kiro ou similar), é possível instruí-lo a configurar um segredo referenciado diretamente com um prompt como:

    “I have an existing secret in AWS Secrets Manager at ARN arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-key. Create an OAuth2 credential provider in Amazon Bedrock AgentCore Identity named <client-name>, using GoogleOauth2 as the vendor. The client ID is <clientId>, the client secret source is EXTERNAL, and the secret JSON key is key.”

    Substitua <client-name> e <clientId> pelos valores correspondentes.

    Atenção: É necessário conceder ao AgentCore Identity permissão para ler o segredo, adicionando uma política de recurso ao segredo que permita ao service principal chamar secretsmanager:GetSecretValue. Se o segredo estiver criptografado com uma chave KMS gerenciada pelo cliente, também é necessário conceder ao service principal a permissão kms:Decrypt nessa chave.

    Conclusão

    Com a capacidade de referenciar segredos existentes no AWS Secrets Manager, o AgentCore Identity passa a oferecer maior flexibilidade para equipes que já possuem processos de gestão de segredos consolidados. É possível manter controle total sobre como as credenciais são criptografadas, rotacionadas e acessadas, enquanto o AgentCore Identity cuida de recuperá-las em tempo de execução.

    Para começar, a AWS disponibiliza a documentação do Amazon Bedrock AgentCore Identity. Para mais informações sobre gestão de segredos, consulte o Guia do Usuário do AWS Secrets Manager.

    Fonte

    Reference your own AWS Secrets Manager secrets in Amazon Bedrock AgentCore Identity (https://aws.amazon.com/blogs/machine-learning/reference-your-own-aws-secrets-manager-secrets-in-amazon-bedrock-agentcore-identity/)

  • Autenticação segura com OAuth no AgentCore Gateway para clientes MCP

    O problema: assistentes de IA precisam de acesso seguro a ferramentas corporativas

    No dia a dia de desenvolvimento moderno, assistentes de codificação baseados em IA — como o Kiro IDE — precisam se comunicar com ferramentas e serviços remotos para serem úteis. Mas essa comunicação levanta uma questão crítica de segurança: como garantir que apenas usuários e agentes autorizados consigam acessar essas ferramentas?

    O Protocolo de Contexto de Modelo (MCP) é o padrão que define como esses assistentes se conectam a servidores de ferramentas. E para que essa conexão seja segura em ambientes corporativos, é preciso um mecanismo robusto de autenticação — de preferência integrado ao provedor de identidade (IdP) já utilizado pela organização, como Okta, Microsoft Entra ID ou Amazon Cognito.

    A AWS publicou um guia técnico detalhando como implementar exatamente isso: o fluxo de código de autorização OAuth (Authorization Code Flow) como mecanismo de autenticação de entrada para servidores MCP hospedados no Amazon Bedrock AgentCore Gateway.

    O que é o AgentCore Gateway e qual é o seu papel aqui

    O Amazon Bedrock AgentCore é um serviço totalmente gerenciado para implantação, gerenciamento e escalonamento de agentes de IA em produção. Um de seus componentes principais, o AgentCore Gateway, funciona como ponto central de entrada para rotear e proteger as comunicações entre agentes e ferramentas.

    Nessa arquitetura, o Gateway atua como um servidor de recurso OAuth: ele intercepta cada requisição do assistente de IA, valida o token de identidade apresentado e só então encaminha a requisição ao servidor MCP de destino. Esse processo é chamado de autenticação de entrada (inbound authentication).

    Como o fluxo de autorização funciona na prática

    O fluxo envolve cinco componentes principais trabalhando em conjunto:

    • Provedor de Identidade (IdP): gerencia a autenticação dos usuários e emite tokens. Pode ser Amazon Cognito, Okta, Auth0 ou qualquer IdP corporativo compatível com OpenID Connect (OIDC).
    • Usuário: a pessoa real que se autentica no IdP e cuja identidade é verificada em cada requisição.
    • Amazon Bedrock AgentCore Gateway: valida os tokens e encaminha as requisições autenticadas ao servidor MCP.
    • Assistente de codificação (Kiro IDE): atua como cliente OAuth, gerenciando todo o fluxo de autenticação automaticamente.
    • Servidor MCP: as ferramentas e serviços de back-end que o assistente precisa acessar.

    Opcionalmente, um proxy OAuth para MCP pode ser utilizado para padronizar a interface entre o cliente, o IdP e o servidor MCP — especialmente útil quando há diferenças de implementação entre esses componentes.

    O fluxo completo segue estas etapas:

    • O Kiro IDE tenta se conectar ao endpoint MCP do Gateway.
    • O Gateway detecta a ausência de token válido e responde com HTTP 401, apontando para o endpoint de metadados de recurso protegido (.well-known/oauth-protected-resource). Isso segue o padrão de Metadados de Recurso Protegido (PRM) da especificação MCP.
    • O cliente busca os metadados e obtém a URL de descoberta do IdP.
    • O Kiro IDE abre o navegador do sistema e redireciona o usuário para a página de login do IdP, com um desafio PKCE (Prova de Chave para Troca de Código).
    • O usuário se autentica e concede autorização.
    • O IdP redireciona o navegador para o callback local do cliente com um código de autorização.
    • O cliente troca esse código (junto com o verificador PKCE) por um token de acesso junto ao IdP.
    • A partir daí, o Kiro IDE inclui o token em todas as requisições ao Gateway, que valida assinatura, expiração, emissor e claims antes de encaminhar ao servidor MCP.

    Implementação técnica passo a passo

    Pré-requisitos

    • Conta AWS com o AgentCore Gateway implantado.
    • Um IdP com permissão para configurar um aplicativo (Amazon Cognito, Okta, Auth0 ou similar).
    • Proxy OAuth para MCP (mcp-remote).
    • Kiro IDE instalado localmente.
    • Conhecimento básico de fluxos OAuth 2.0.

    Passo 1: Configurar o provedor de identidade

    O primeiro passo é registrar um aplicativo OIDC no IdP da organização, configurando-o para suportar o fluxo de código de autorização com PKCE.

    1.1 Criar o aplicativo OIDC — No console do IdP, crie uma nova integração de aplicativo OIDC/OAuth 2.0 com método de login OIDC e tipo de aplicação Web.

    1.2 Habilitar os tipos de concessão — Ative Authorization Code e Refresh Token.

    1.3 Definir as URIs de redirecionamento — Adicione o callback que o cliente utilizará:

    http://localhost:PORT/callback

    Substitua PORT pela porta que o cliente utiliza.

    1.4 Configurar tempos de vida dos tokens — Recomendações do guia original:

    • Token de acesso: 1 hora
    • Token de atualização: 90 dias (ajustar conforme requisitos de segurança)
    • Token de ID: 1 hora

    1.5 Salvar as configurações — Guarde o Client ID e a URL de descoberta do IdP (por exemplo: https://{yourIdPDomain}/oauth2/default/.well-known/openid-configuration). Importante: nenhum client secret é necessário, pois o PKCE foi projetado justamente para clientes públicos como aplicações desktop.

    Passo 2: Configurar o AgentCore Gateway

    2.1 Definir o modo de autenticação de entrada — Configure o Gateway para usar autenticação baseada em JWT (Token Web JSON) apontando para o endpoint de descoberta do IdP:

    aws agentcore update-gateway \
      --gateway-id <your-gateway-id> \
      --inbound-auth-type JWT \
      --jwt-discovery-url "https://{yourIdPDomain}/oauth2/default/.well-known/openid-configuration" \
      --region <your-region>

    2.2 Validação de claims personalizados — O Gateway valida tokens com base em claims padrão do OAuth 2.0 (iss, aud, exp, iat, client_id, scopes), mas também suporta validação de claims personalizados para acomodar diferentes implementações de IdP. Por exemplo, IdPs como o Okta podem usar cid em vez de client_id. Nesse caso, a configuração seria:

    Custom claim: <claim-name> EQUALS <expected-value>

    Consulte a documentação AgentCore Gateway: configuração de JWT para detalhes completos.

    2.3 Como o Gateway valida tokens — Um ponto importante destacado no guia: o Gateway é agnóstico em relação à forma como o token foi obtido. Não importa se o token veio de um fluxo de credenciais de cliente ou de um fluxo de código de autorização — o que conta é que o token passe nas validações configuradas: assinatura, expiração, emissor e claims de audiência ou personalizados.

    2.4 Verificar a configuração — Para confirmar que a autenticação está ativa, faça uma requisição sem token:

    curl -i -X POST https://<your-gateway-url>/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"initialize","params":{},"id":1}'

    A resposta esperada é um HTTP 401 com o cabeçalho www-authenticate apontando para o endpoint de metadados:

    HTTP/2 401
    www-authenticate: Bearer resource_metadata="https://<your-gateway-url>/.well-known/oauth-protected-resource"
    {"jsonrpc":"2.0","id":0,"error":{"code":-32001,"message":"Missing Bearer token"}}

    Passo 3: Instalar o proxy OAuth para MCP

    Para padronizar a interface entre o Kiro IDE e o endpoint protegido do Gateway, o guia recomenda o uso do mcp-remote. Vale notar que essa ferramenta é descrita como uma prova de conceito funcional e deve ser tratada como experimental:

    npm install -g mcp-remote

    Passo 4: Configurar o Kiro IDE

    Com o Gateway e o proxy configurados, o último passo é conectar o cliente ao endpoint do Gateway. O Kiro IDE gerencia o fluxo OAuth automaticamente ao receber um desafio 401.

    Adicione a configuração no arquivo ~/.kiro/settings/mcp.json:

    {
      "mcpServers": {
        "gateway-tools": {
          "command": "mcp-remote",
          "args": [
            "https://<your-gateway-url>/mcp",
            "<PORT>",
            "--static-oauth-client-info",
            "{\"client_id\": \"<your-idp-client-id>\", \"redirect_uris\": [\"http://localhost:<PORT>/oauth/callback\"], \"scope\": \"openid profile email offline_access\"}"
          ]
        }
      }
    }

    Parâmetros da configuração:

    • command: usa o mcp-remote para se conectar a servidores MCP remotos.
    • Primeiro argumento: URL do Gateway com o caminho /mcp.
    • Segundo argumento: porta local para o callback OAuth (ex: 3334).
    • --static-oauth-client-info: JSON com client_id do IdP, redirect_uris (deve bater com a porta do segundo argumento) e scope com os escopos necessários.

    Passo 5: Verificar o fluxo completo

    Após reiniciar o cliente e tentar usar uma ferramenta do Gateway, o usuário é redirecionado ao navegador para login no IdP. Após autenticação bem-sucedida, a ferramenta é executada normalmente. Nos logs do Gateway, uma validação bem-sucedida aparece como:

    [INFO] Token validated successfully for user: user@example.com
    [INFO] Executing tool: list_files

    Para um passo a passo completo usando o Okta como IdP, a AWS disponibilizou um repositório no GitHub com exemplos práticos.

    Limpeza dos recursos

    Para desfazer o ambiente criado durante os testes, o guia recomenda seguir a ordem inversa de criação:

    1. Revogar tokens OAuth ativos — Consulte o endpoint de revogação do seu IdP. Em geral, a chamada segue este padrão:
      curl -X POST "<your-idp-revocation-endpoint>" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        -d "token=<your-refresh-token>&client_id=<your-client-id>"

      Para limpar o cache local de tokens do mcp-remote (macOS/Linux):

      rm -rf ~/.mcp-auth
    2. Remover a configuração do Kiro IDE — Apague o bloco gateway-tools do arquivo ~/.kiro/settings/mcp.json.
    3. Desinstalar o mcp-remote:
      npm uninstall -g mcp-remote
    4. Remover a configuração do Gateway — Duas opções:
      # Opção A: remover apenas a autenticação de entrada
      aws agentcore update-gateway \
        --gateway-id <your-gateway-id> \
        --inbound-auth-type NONE \
        --region <your-region>
      
      # Opção B: deletar o Gateway completamente
      aws agentcore delete-gateway \
        --gateway-id <your-gateway-id> \
        --region <your-region>
    5. Remover o aplicativo OIDC do IdP — Acesse o console do IdP, navegue até o aplicativo criado (ex: “AgentCore Gateway client”), desative-o e exclua.

    Principais conclusões

    O guia publicado pela AWS demonstra uma arquitetura sólida para garantir acesso seguro e verificado por identidade a servidores MCP em ambientes corporativos. Os pontos mais relevantes:

    • O fluxo de código de autorização garante autenticação forte, com consentimento explícito do usuário e verificação de identidade.
    • O AgentCore Gateway atua como servidor de recurso OAuth, validando tokens antes de permitir qualquer execução de ferramentas.
    • O fluxo é transparente para o usuário final: a autenticação ocorre uma vez, e os tokens são renovados automaticamente.
    • A arquitetura escala para múltiplos clientes de IA e diferentes provedores de identidade.

    Recursos adicionais

    Fonte

    Building a secure auth code flow setup using AgentCore Gateway with MCP clients (https://aws.amazon.com/blogs/machine-learning/building-a-secure-auth-code-flow-setup-using-agentcore-gateway-with-mcp-clients/)

  • CloudTroop Weekly #014 — 2026-w22





    CloudTroop Weekly #014 — 2026-w22

    31 de maio de 2026

    Resumo da Semana

    A semana foi dominada por dois eixos: segurança em profundidade e IA agêntica saindo do laboratório para produção. No lado da segurança, a AWS entregou visibilidade inédita em ataques DDoS via Shield Advanced, rastreabilidade automática de mudanças organizacionais no CloudTrail e proteção contra ransomware nos backups do S3 com GuardDuty. Na frente de IA, observabilidade unificada para LLMs no SageMaker e pagamentos autônomos para agentes sinalizam maturidade operacional real. Quem ainda trata segurança e IA como projetos isolados vai sentir o custo dessa separação em breve.

    O que muda na prática

    • Shield Advanced agora gera logs de fluxo durante ataques DDoS ativos — análise forense e evidências de conformidade deixam de depender de reconstrução manual após o incidente.
    • GuardDuty Malware Protection escaneia backups contínuos do S3, permitindo identificar o ponto exato de contaminação antes de restaurar dados em estratégias de recuperação pós-ransomware.
    • AWS Organizations passa a emitir eventos CloudTrail para entrada e saída de contas — movimentos laterais entre contas agora podem ser detectados automaticamente em ambientes multi-conta.

    Ações da semana

    • Se você usa Shield Advanced, habilite os logs de fluxo de ataques DDoS e configure um destino no S3 ou CloudWatch Logs esta semana — o recurso já está disponível e não requer mudança de arquitetura.
    • Revise sua estratégia de backup no AWS Backup: ative o GuardDuty Malware Protection para os cofres do S3 e valide se os alertas de detecção estão roteados para o seu canal de resposta a incidentes.

    Top 10 da Semana

    1

    Well-Architected: segurança da cadeia de suprimentos de software

    Ataques a pipelines CI/CD e registros de pacotes são crescentes; este guia oferece camadas concretas de defesa com serviços AWS nativos.

    Para quem: Engenheiros de plataforma, DevSecOps e arquitetos responsáveis por pipelines de entrega de software.

    Segurança, DevSecOps

    2

    AWS Shield Advanced agora oferece logs de fluxo de ataques DDoS

    Visibilidade em nível de pacote durante ataques ativos muda o jogo para análise forense, inteligência de ameaças e evidências de conformidade.

    Para quem: Equipes de segurança e operações que protegem aplicações expostas à internet com Shield Advanced.

    Segurança, DDoS

    3

    Migre o Network Firewall para o Transit Gateway e simplifique sua rede

    Eliminar a VPC de inspeção dedicada reduz custos operacionais e simplifica arquiteturas hub-and-spoke em ambientes multi-conta.

    Para quem: Arquitetos de rede e engenheiros de infraestrutura que gerenciam ambientes AWS com múltiplas VPCs.

    Rede, Segurança

    4

    AWS Organizations emite eventos CloudTrail para mudanças de membros

    Rastrear automaticamente quando contas entram ou saem da organização é essencial para governança, auditoria e detecção de movimentos laterais.

    Para quem: Administradores de nuvem, equipes de segurança e auditores responsáveis por ambientes multi-conta.

    Governança, Segurança

    5

    GuardDuty Malware Protection agora escaneia backups contínuos do S3

    Identificar pontos limpos na linha do tempo de backups contaminados é crítico para recuperação segura após incidentes de ransomware.

    Para quem: Equipes de segurança e operações que dependem do AWS Backup para estratégias de recuperação de desastres.

    Segurança, Backup

    6

    Network Firewall ganha filtragem por categoria de URL e domínio

    Controlar acesso à internet por categorias gerenciadas automaticamente elimina manutenção de listas e habilita governança de uso de IA generativa.

    Para quem: Engenheiros de segurança e compliance que precisam controlar o tráfego de saída em ambientes corporativos.

    Segurança, Rede

    7

    Observabilidade completa para LLMs no SageMaker: GPU à qualidade

    Unificar métricas de infraestrutura e qualidade de respostas em um único dashboard é o que separa LLMs em experimento de LLMs em produção confiável.

    Para quem: Engenheiros de ML e times de plataforma que operam modelos de linguagem em produção no SageMaker.

    IA, Observabilidade

    8

    AgentCore Payments: micropagamentos autônomos para agentes de IA

    Resolver pagamentos em fluxos agênticos com controle de orçamento e observabilidade nativa é um habilitador crítico para agentes de IA em produção.

    Para quem: Arquitetos e desenvolvedores construindo sistemas de agentes de IA que precisam consumir APIs pagas ou conteúdo externo.

    IA Agêntica

    9

    Nova geração do AWS Resilience Hub com IA generativa e análise de falhas

    Descoberta automática de dependências e análise de modos de falha com GenAI acelera a identificação de gaps de resiliência em arquiteturas complexas.

    Para quem: Arquitetos de soluções e engenheiros de confiabilidade responsáveis por SLAs e estratégias de DR.

    Resiliência, Arquitetura

    10

    Amazon EMR suporta Apache Spark 4.0.2 com Iceberg v3 e FGAC

    ANSI SQL padrão, controle de acesso por linha e coluna e suporte ao Iceberg v3 são mudanças que afetam diretamente pipelines de dados em produção.

    Para quem: Engenheiros de dados e arquitetos de data lake que operam workloads Spark no Amazon EMR.

    Dados, Analytics


  • Observabilidade Completa para Inferência de LLMs no Amazon SageMaker AI: Do Uso de GPU à Qualidade das Respostas

    Por que observabilidade de LLMs é diferente do monitoramento tradicional

    Colocar modelos de linguagem grande (LLMs) em produção no Amazon SageMaker AI Inference traz um desafio que vai além do monitoramento convencional de software. Aplicações tradicionais retornam saídas determinísticas — você sabe exatamente o que esperar. LLMs, por outro lado, geram respostas livres e variáveis que não se encaixam em alertas do tipo “erro 500” ou “latência acima de X ms”.

    A qualidade das respostas pode degradar silenciosamente ao longo do tempo, à medida que a distribuição dos prompts muda ou o contexto de uso evolui. Ao mesmo tempo, a infraestrutura de serving tem suas próprias complexidades: consumo imprevisível de tokens, pressão na memória da GPU e picos de latência tornam o planejamento de capacidade e o controle de custos um alvo em constante movimento.

    Diante desse cenário, a AWS publicou uma abordagem de observabilidade abrangente para inferência de LLMs, estruturada em duas dimensões complementares: quantidade (saúde operacional da infraestrutura) e qualidade (desempenho dos próprios modelos). Neste artigo, a CloudTroop explica como essa solução funciona e o que ela oferece para times de ML em produção.

    As duas dimensões da observabilidade de LLMs

    A AWS organiza a observabilidade de LLMs em dois eixos que, embora distintos, precisam ser monitorados juntos:

    • Monitoramento de quantidade: foca na saúde operacional da infraestrutura de inferência — throughput de requisições, utilização de recursos, latência, erros e custos. Ajuda a detectar gargalos, dimensionar corretamente os recursos e controlar gastos.
    • Monitoramento de qualidade: avalia o desempenho dos próprios LLMs — precisão das respostas, conformidade, segurança e consistência ao longo do tempo. Detecta drift de modelo, degradação ou comportamentos inesperados nas respostas geradas.

    Os dois eixos são interdependentes: um endpoint pode estar operacionalmente saudável enquanto produz respostas ruins ou inseguras. Da mesma forma, um modelo pode entregar respostas de alta qualidade enquanto roda em infraestrutura superdimensionada e cara. A observabilidade de produção só é completa quando as duas dimensões são monitoradas, correlacionadas e otimizadas juntas.

    Arquitetura da solução

    A solução descrita pela AWS combina três serviços principais, cada um com um papel específico:

    • Amazon SageMaker AI Inference Components: camada de hospedagem dos modelos. Um único endpoint SageMaker AI pode hospedar múltiplos componentes de inferência, cada um rodando um LLM diferente (como gpt-oss-20b e Qwen2.5-7B-Instruct). Cada componente mantém isolamento próprio para roteamento de tráfego, políticas de escalabilidade e atribuição de métricas.
    • Amazon CloudWatch: repositório centralizado de métricas. Recebe dois fluxos distintos de dados de cada componente de inferência: métricas aprimoradas (enhanced metrics) e métricas customizadas de qualidade.
    • Amazon Managed Grafana: camada de visualização, usando o CloudWatch como fonte de dados nativa. Dois dashboards dedicados expõem as métricas de quantidade e qualidade dos LLMs servidos nos endpoints SageMaker AI.

    Os dois namespaces no CloudWatch

    O CloudWatch organiza os dados em dois namespaces separados, mantendo os sinais operacionais e de qualidade bem distintos:

    • /aws/sagemaker/InferenceComponents/<nome-do-modelo> — métricas aprimoradas publicadas automaticamente pelo SageMaker AI quando habilitadas na configuração do endpoint. Incluem dimensões por instância, por contêiner e por GPU, oferecendo visibilidade granular sobre contagens de invocação, latência, taxas de erro e utilização de GPU/CPU por modelo. Para mais detalhes, consulte a documentação oficial de métricas aprimoradas do SageMaker AI e o post de aprofundamento sobre enhanced metrics.
    • /aws/sagemaker/inference-quality/<nome-do-modelo> — métricas customizadas de qualidade, como scores compostos de qualidade, scores de segurança e latência de avaliação. São publicadas em um namespace separado configurado pelo usuário, mantendo os sinais de qualidade isolados das métricas operacionais.

    Monitoramento de quantidade: visibilidade operacional

    O monitoramento de quantidade responde às perguntas operacionais críticas para quem opera endpoints multi-modelo: quantas requisições cada modelo está servindo? As GPUs estão bem dimensionadas ou superprovisionadas? Qual modelo está gerando mais custo?

    O dashboard de quantidade no Amazon Managed Grafana — que usa o CloudWatch como fonte de dados nativa — cobre três áreas principais:

    1. Invocações e latência dos LLMs

    Painéis exibem a latência do modelo como série temporal, o total de invocações comparando os modelos (por exemplo, gpt-oss versus Qwen) e as invocações por cópia de cada modelo. Esses painéis ajudam operadores a entender padrões de throughput de requisições, identificar picos de latência e comparar a distribuição de invocações entre as cópias dos modelos.

    2. Utilização de GPU: compute e memória

    Painéis dedicados mostram o percentual de uso de GPU Compute e GPU Memory para cada modelo. Essa comparação entre modelos permite que engenheiros de ML e equipes de Engenharia de Confiabilidade de Site (SRE) determinem rapidamente se um problema de desempenho é limitado por compute de GPU ou por memória, e se um modelo está consumindo recursos desproporcionais na infraestrutura compartilhada.

    3. Uso do endpoint e custos

    Uma visão de cluster exibe GPUs em uso versus GPUs livres e o total de instâncias, ao lado de painéis de custo por hora para cada modelo. Essa visão mostra qual modelo está gerando mais custo, se as GPUs estão superprovisionadas ou saturadas, e se as políticas de auto scaling estão respondendo à demanda.

    Para configurar esses dashboards no seu ambiente, a AWS disponibilizou um notebook de exemplo no repositório GitHub, que pode ser estendido para criar dashboards adaptados às necessidades da sua organização.

    Monitoramento de qualidade: os LLMs ainda estão performando bem?

    Enquanto as métricas de quantidade dizem se a infraestrutura está saudável, as métricas de qualidade respondem se os LLMs ainda estão se comportando como esperado. A degradação de qualidade raramente dispara alertas tradicionais — ela acontece silenciosamente, causada por mudanças na distribuição dos prompts, drift de conceito ou alterações nas condições do mundo real.

    O monitoramento de qualidade avalia as saídas dos modelos em dimensões que importam para o negócio:

    • Qualidade das respostas: relevância para as perguntas dos usuários, precisão factual, completude e consistência.
    • Segurança e conformidade: detecção de conteúdo prejudicial, monitoramento de viés, conformidade com privacidade e regulatórios.
    • Qualidade da experiência do usuário: utilidade, clareza, tom adequado e coerência em conversas multi-turno.
    • Qualidade específica do domínio: precisão técnica em domínios especializados, qualidade de citações em aplicações de Geração Aumentada por Recuperação (RAG) e correção de código em assistentes de programação.

    Os quatro scores de qualidade no dashboard

    O dashboard de qualidade no Grafana acompanha quatro scores para cada modelo (como gpt-oss-20b e Qwen2.5-7B-Instruct), cada um exibido como gráfico de linha temporal com thresholds de alerta configuráveis:

    • Score Composto de Qualidade: indicador agregado que combina múltiplas dimensões de qualidade. Facilita identificar degradação sustentada versus quedas pontuais que podem estar correlacionadas com tipos específicos de prompt.
    • Score de Segurança: monitora detecção de conteúdo prejudicial ou não conforme. Tende a ser o mais estável dos quatro, indicando guardrails de segurança confiáveis.
    • Score de Relevância: mede o quanto as respostas do LLM atendem à intenção do usuário, ajudando a identificar categorias de prompts que podem desafiar a compreensão do modelo.
    • Score de Tom Profissional: avalia se as respostas mantêm um tom adequado para o contexto de uso.

    Esses scores são calculados usando o padrão LLM-as-judge (LLM como avaliador), com rubricas de avaliação configuráveis. Na solução de exemplo da AWS, o modelo Anthropic Claude Sonnet 4.6, servido via Amazon Bedrock, é utilizado como avaliador — uso permitido pelos termos de serviço padrão do Amazon Bedrock para casos de LLM-as-judge. É possível substituir por outro sistema de avaliação, desde que os termos do modelo escolhido permitam avaliar saídas de outros modelos, os requisitos de residência de dados sejam atendidos e o modelo avaliador seja fixado em uma versão específica para manter a comparabilidade dos scores ao longo do tempo.

    Alertas automáticos por componente de inferência

    Além da visualização, regras de alerta baseadas em thresholds são implantadas automaticamente via Grafana Alerting, dimensionadas por componente de inferência — ou seja, os alertas disparam separadamente para cada modelo. Quando um score de qualidade ultrapassa o threshold configurado, notificações são enviadas via Amazon Simple Notification Service (SNS), permitindo triagem rápida pelas equipes de SRE.

    Esses alertas podem ser integrados a ferramentas como Slack, PagerDuty ou OpsGenie, correlacionando logs automaticamente, classificando a severidade do alerta e priorizando incidentes para mitigação.

    Para configurar o dashboard de qualidade e entender melhor as métricas disponíveis, a AWS disponibilizou um notebook dedicado no repositório GitHub.

    Conclusão

    Observabilidade de stacks de inferência de LLMs em produção exige muito mais do que monitorar uptime e taxas de erro. A abordagem publicada pela AWS demonstra que uma estratégia completa precisa endereçar duas dimensões complementares: quantidade, que cobre a saúde operacional da infraestrutura (utilização de GPU, atribuição de custos, comportamento de escalabilidade e throughput de requisições), e qualidade, que cobre o desempenho contínuo dos modelos (relevância das respostas, conformidade de segurança, precisão factual e tom).

    Ao combinar as métricas aprimoradas dos endpoints SageMaker AI, o Amazon CloudWatch e o Amazon Managed Grafana, é possível construir uma camada de observabilidade unificada sem instrumentação customizada. As métricas aprimoradas oferecem granularidade por modelo e por GPU em infraestrutura compartilhada. O CloudWatch centraliza tanto os sinais operacionais quanto os de qualidade. O Grafana une tudo em dashboards que atendem diferentes stakeholders: equipes de SRE monitorando saturação de recursos, times de governança acompanhando thresholds de segurança e conformidade, e donos de produto comparando qualidade entre modelos.

    Para começar, o repositório de exemplos no GitHub da AWS inclui notebooks para configurar métricas aprimoradas, publicar métricas customizadas de qualidade e alertas, e configurar os dashboards Grafana apresentados neste post.

    Fonte

    Comprehensive observability for Amazon SageMaker AI LLM inference: From GPU utilization to LLM quality (https://aws.amazon.com/blogs/machine-learning/comprehensive-observability-for-amazon-sagemaker-ai-llm-inference-from-gpu-utilization-to-llm-quality/)

  • AWS Shield Advanced agora oferece logs de fluxo de ataques DDoS

    Visibilidade em nível de pacote durante ataques DDoS

    A AWS anunciou uma novidade importante para quem utiliza o Shield Advanced: a chegada dos logs de fluxo de ataques de Negação de Serviço Distribuído (DDoS). Com esse recurso, equipes de segurança passam a ter visibilidade em nível de pacote sobre o tráfego que atinge os recursos protegidos pelo Shield Advanced durante um ataque ativo — algo que antes não estava disponível de forma nativa na plataforma.

    O que é capturado nos logs

    Os logs de fluxo de ataques DDoS registram detalhes críticos em nível de pacote. Entre as informações capturadas estão:

    • Endereços IP de origem e destino
    • Portas de origem e destino
    • Protocolos utilizados
    • Contagem de pacotes e bytes
    • País de origem do tráfego
    • Outros dados relevantes para análise

    Esses dados são publicados automaticamente no destino escolhido pela equipe em intervalos de 5 minutos enquanto o ataque estiver ativo.

    Onde os logs são armazenados

    A AWS permite que os dados sejam entregues em três destinos diferentes, conforme a preferência e a arquitetura de cada organização:

    • Amazon S3 — para armazenamento de longo prazo e análise posterior
    • Amazon CloudWatch Logs — para monitoramento e alertas em tempo real
    • Amazon Data Firehose — para ingestão e encaminhamento a outros sistemas de análise

    Após a publicação, os dados podem ser consultados com as ferramentas de análise que a equipe já utiliza, o que facilita bastante a integração com fluxos de trabalho existentes.

    Para que serve na prática

    A funcionalidade foi pensada para atender três grandes necessidades de segurança:

    • Investigação pós-incidente: entender exatamente o que aconteceu durante um ataque, com dados precisos em nível de pacote
    • Inteligência de ameaças: identificar padrões, origens e comportamentos recorrentes em ataques DDoS
    • Conformidade e auditoria: manter registros detalhados para fins regulatórios e de compliance

    Como habilitar

    Para utilizar os logs de fluxo de ataques DDoS, é necessário que os recursos estejam protegidos pelo Shield Advanced e que a entrega de logs esteja configurada para um dos destinos suportados. O recurso está disponível em todas as regiões onde o AWS Shield Advanced opera.

    Para mais detalhes sobre como configurar e utilizar os logs de fluxo de ataques DDoS, a AWS disponibiliza a documentação oficial do AWS Shield Advanced.

    Fonte

    AWS Shield Advanced introduces DDoS attack flow logs (https://aws.amazon.com/about-aws/whats-new/2026/05/aws-shield-ddos/)

  • Como simplificar o acesso externo ao Amazon SageMaker MLflow com um proxy REST API

    O problema: quando o SDK não é uma opção

    Equipes de aprendizado de máquina (ML) usam o MLflow para gerenciar o ciclo de vida dos seus modelos de forma eficiente. O Amazon SageMaker MLflow oferece capacidades abrangentes de rastreamento de experimentos e gerenciamento de modelos. No entanto, muitas empresas possuem requisitos de infraestrutura que exigem integrações baseadas em HTTPS em vez do uso direto do SDK.

    O desafio é comum: políticas de segurança corporativa, restrições de rede ou limitações de sistemas legados impedem que as equipes usem o SDK do MLflow diretamente. A AWS publicou uma solução que endereça exatamente esse cenário — um serviço proxy Flask que atua como intermediário seguro entre os sistemas existentes e o SageMaker MLflow.

    Visão geral da solução

    A arquitetura proposta é composta por três componentes principais que trabalham em conjunto para garantir integração segura e compatível com ambientes corporativos.

    Componente 1: Application Load Balancer (ALB)

    Um AWS Application Load Balancer atua como roteador de entrada, responsável por:

    • Distribuir o tráfego entre requisições da interface do MLflow e chamadas REST API.
    • Realizar o tratamento inicial das requisições e o roteamento.
    • Suportar domínios customizados e encerramento SSL.

    Vale destacar que o ALB é a opção utilizada nessa implementação, mas outras soluções de roteamento, como Nginx, também podem ser utilizadas conforme a necessidade.

    Componente 2: Flask MLflow Proxy Service

    No centro da arquitetura, uma aplicação Python baseada em Flask é responsável por:

    • Interceptar e processar as requisições HTTPS recebidas.
    • Gerenciar a autenticação AWS e a assinatura das requisições.
    • Transformar URLs para acesso seguro aos endpoints do MLflow.
    • Encaminhar as respostas de volta aos clientes.

    Componente 3: Amazon SageMaker MLflow

    O serviço gerenciado da AWS suporta dois modos de implantação do MLflow:

    • MLflow Tracking Server — servidor de rastreamento gerenciado.
    • MLflowApp — aplicação MLflow serverless.

    Em ambos os casos, o serviço fornece o armazenamento de metadados de experimentos e os arquivos de modelos.

    Fluxo de requisições na arquitetura

    O fluxo de uma requisição nessa arquitetura segue uma sequência bem definida. Quando um cliente inicia uma chamada HTTPS, ela primeiro chega ao ALB, que a encaminha para o serviço proxy Flask. A partir daí, o proxy realiza uma série de operações críticas:

    • Autenticação via integração com o Gerenciamento de Identidade e Acesso da AWS (IAM).
    • Transformação e pré-assinatura de URLs para acesso seguro.
    • Processamento dos endpoints REST do MLflow conforme necessário.

    Após essas transformações, a requisição autenticada é enviada ao SageMaker MLflow, que a processa e retorna a resposta. O proxy então encaminha essa resposta de volta ao cliente original. Toda essa cadeia mantém a segurança sem exigir que o cliente conheça os detalhes internos da autenticação AWS.

    Pré-requisitos para implantação

    Antes de começar, é necessário ter os seguintes recursos disponíveis:

    Do ponto de vista de conhecimento, é esperado que o profissional tenha familiaridade básica com serviços AWS e permissões IAM, com aplicações Python e Flask, e com os conceitos e operações do MLflow.

    Em relação aos custos, a solução cria recursos AWS que podem gerar cobranças, principalmente instâncias Amazon EC2, o Application Load Balancer, recursos Amazon SageMaker AI e armazenamento Amazon S3. Para estimar os valores, a AWS disponibiliza a Calculadora de Preços AWS.

    Implantando a solução

    O processo de implantação leva aproximadamente 40 minutos e está dividido em três etapas.

    Etapa 1: Implantação da infraestrutura com AWS CDK

    O primeiro passo é baixar o código da solução e instalar as dependências:

    # Clone the repository
    git clone https://github.com/aws-samples/sample-sagemaker-mlflow-rest-apis.git
    
    # Navigate to project directory and install dependencies
    cd sample-sagemaker-mlflow-rest-apis
    npm ci

    Em seguida, é necessário fazer o bootstrap do ambiente para o AWS CDK. Esse passo pode ser ignorado se a conta e a região AWS já estiverem configuradas para o CDK:

    npx cdk bootstrap aws://<ACCOUNT_ID>/<REGION>

    A solução é composta por quatro stacks CDK:

    • Networking stack — cria a VPC e os componentes de rede.
    • SageMaker AI domain stack — configura o domínio SageMaker.
    • SageMaker MLflow stack — implanta o servidor de rastreamento ou o app serverless do MLflow.
    • Flask application stack — implanta o serviço proxy MLflow.

    Para implantar todas as stacks de uma vez, utilize um dos comandos abaixo conforme o modo desejado.

    Para implantação baseada em tracking server:

    npx cdk deploy --all --require-approval=never -c mlflowType=tracking

    Para implantação baseada em app serverless:

    npx cdk deploy --all --require-approval=never -c mlflowType=serverless

    Etapa 2: Instalação e configuração do Flask MLflow Proxy Service

    Após a implantação da infraestrutura, é necessário conectar à instância EC2. O ID da instância pode ser obtido na saída do CDK ou na seção de outputs da stack sagemaker-infra-flaskapp-{mlflowType} no AWS CloudFormation. A conexão deve ser feita pelo AWS Systems Manager Session Manager, seguindo o guia de conexão do Session Manager.

    Com a sessão aberta, instale o Python 3.13 e as dependências:

    # Switch to root user
    sudo su -
    cd /root
    
    # Install Python and dependencies
    chmod +x install_python13.sh
    ./install_python13.sh

    O script foi desenvolvido para sistemas baseados em Ubuntu. Para outras distribuições Linux, é necessário instalar manualmente o Python 3.12+, PIP3 e Virtualenv usando o gerenciador de pacotes do sistema.

    Em seguida, instale e inicie o serviço proxy MLflow:

    chmod +x setup_mlflow_proxy_app.sh
    ./setup_mlflow_proxy_app.sh

    Para verificar o status do serviço:

    systemctl status mlflowproxy

    Caso o serviço não esteja em execução, os logs podem ser consultados com o seguinte comando:

    journalctl -u mlflowproxy

    Etapa 3: Validação do acesso à REST API do MLflow

    Com a solução implantada, é possível interagir com as REST APIs do MLflow por meio do ALB. Os exemplos abaixo utilizam o protocolo HTTP (sem segurança). Para ambientes de produção, a AWS recomenda o uso de HTTPS. As chamadas podem ser feitas com curl ou qualquer outra ferramenta de preferência — os comandos funcionam da mesma forma tanto para o modo tracking server quanto para o modo serverless.

    Primeiro, obtenha o nome DNS do ALB com o seguinte comando na sua estação de trabalho:

    aws cloudformation describe-stacks --stack-name sagemaker-infra-flaskapp-{mlflowType} --query 'Stacks[0].Outputs[?OutputKey==`ALBUrl`].OutputValue' --output text

    Com o DNS em mãos, substitua <ALB DNS>, <EXP ID>, <RUN ID> e <RUN NAME> pelos valores correspondentes nos comandos abaixo.

    Criar um experimento:

    curl -X POST http://<ALB DNS>/ajax-api/2.0/mlflow/experiments/create -H "Content-Type: application/json" -d '{"name": "mlflow-experiment"}'

    Buscar experimentos:

    curl -X POST http://<ALB DNS>/ajax-api/2.0/mlflow/experiments/search -H "Content-Type: application/json" -d '{"max_results": 5}'

    Obter um experimento:

    curl -X GET 'http://<ALB DNS>/ajax-api/2.0/mlflow/experiments/get?experiment_id=0'

    Criar uma execução dentro de um experimento:

    curl -X POST http://<ALB DNS>/ajax-api/2.0/mlflow/runs/create -H "Content-Type: application/json" -d '{"experiment_id": <EXP ID>, "run_name": "<RUN NAME>"}'

    Listar artefatos de uma execução:

    curl -X GET "http://<ALB DNS>/ajax-api/2.0/mlflow/artifacts/list?run_id=<RUN ID>"

    Definir uma tag em uma execução:

    curl -X POST "http://<ALB DNS>/ajax-api/2.0/mlflow/runs/set-tag" -H "Content-Type: application/json" -d '{"run_id": "<RUN ID>", "key": "model_type","value": "api-test"}'

    Excluir uma execução:

    curl -X POST http://<ALB DNS>/ajax-api/2.0/mlflow/runs/delete -H "Content-Type: application/json" -d '{"run_id": "<RUN ID>"}'

    Também é possível abrir a interface do MLflow para visualizar as alterações realizadas pelos comandos acima. Para instruções sobre como acessar a interface, consulte como iniciar a interface do MLflow usando uma URL pré-assinada.

    Limpeza dos recursos

    Para evitar cobranças contínuas, os recursos criados pela solução devem ser removidos. Para destruir as stacks gerenciadas pelo CDK, execute o comando adequado ao modo de implantação utilizado.

    Para tracking server:

    npx cdk destroy --all -c mlflowType=tracking

    Para app serverless:

    npx cdk destroy --all -c mlflowType=serverless

    As stacks de rede e do domínio SageMaker são compartilhadas entre os modos de implantação e só serão removidas quando o último par de stacks MLflow/Flask for excluído. Além disso, alguns recursos podem exigir exclusão manual por conta de políticas de retenção ou dependências:

    • Buckets Amazon S3: acesse o console do S3, identifique os buckets criados pela solução, esvazie-os e exclua-os.
    • Grupos de logs do Amazon CloudWatch: no console do CloudWatch, localize e exclua os grupos de logs associados à solução.

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

    Ao levar essa solução para um ambiente produtivo, a AWS recomenda uma série de medidas adicionais de segurança:

    • Configure o monitoramento com Amazon CloudWatch para acompanhar a saúde da aplicação proxy, detectar anomalias e configurar alertas para atividades suspeitas.
    • Implemente limitação de taxa (rate limiting) no serviço proxy Flask para proteção contra ataques de negação de serviço (DoS). O AWS WAF (firewall de aplicação web) pode ser usado junto ao ALB para implementar regras baseadas em taxa.
    • Implante um ALB interno (não voltado para a internet) para restringir o acesso ao proxy apenas à rede privada, permitindo tráfego somente de dentro da VPC ou de redes conectadas via VPC Peering ou AWS Transit Gateway.
    • Habilite o encerramento HTTPS no nível do ALB para comunicação segura entre clientes e a aplicação. O AWS Certificate Manager (ACM) pode ser usado para provisionar e gerenciar certificados SSL/TLS. Para detalhes sobre a configuração, consulte a documentação de listeners HTTPS do Application Load Balancer.

    Conclusão

    A solução apresentada pela AWS oferece uma forma prática de integrar o Amazon SageMaker MLflow com sistemas corporativos existentes, sem abrir mão dos padrões de segurança e infraestrutura já estabelecidos. O serviço proxy Flask atua como uma ponte entre o mundo HTTPS das aplicações empresariais e as APIs autenticadas da AWS, reduzindo a complexidade de implementação e permitindo que as equipes de ML continuem operando com seus fluxos de trabalho atuais.

    Os principais benefícios da abordagem incluem integração com controles de segurança corporativos já existentes, mínimas alterações nos fluxos de trabalho de ML, menor complexidade de implantação, integração via REST API e compatibilidade com serviços de proxy corporativos.

    Para aprofundar o conhecimento sobre o tema, a AWS disponibiliza a documentação do Amazon SageMaker MLflow, além de materiais sobre servidores de rastreamento MLflow e MLflow apps.

    Fonte

    Streamline external access to Amazon SageMaker MLflow using a REST API proxy (https://aws.amazon.com/blogs/machine-learning/streamline-external-access-to-amazon-sagemaker-mlflow-using-a-rest-api-proxy/)