Blog

  • Roteamento regional para portais de acesso AWS: como implementar domínios personalizados no IAM Identity Center

    O problema: múltiplas URLs para um único portal

    O AWS IAM Identity Center oferece um portal de acesso web que centraliza o acesso dos colaboradores às contas AWS e aplicações corporativas. Com o lançamento da replicação multi-região do IAM Identity Center, as organizações passaram a ter instâncias do serviço em múltiplas regiões AWS — o que é ótimo para resiliência e latência, mas cria um desafio prático: cada região gera sua própria URL de acesso ao portal.

    Gerenciar uma lista crescente de URLs regionais, comunicar aos usuários qual delas usar e ainda garantir failover em caso de incidente regional é uma dor de cabeça operacional real. A AWS publicou um guia técnico que resolve exatamente isso: criar um domínio personalizado único (por exemplo, aws.minhaempresa.com) que funciona como ponto de entrada consistente, redirecionando automaticamente cada usuário para o endpoint regional mais saudável e de menor latência.

    Formatos de URL suportados pelo IAM Identity Center

    Antes de entender a solução, vale conhecer os formatos de URL disponíveis na partição padrão da AWS. O formato recomendado pela AWS é https://{idcInstanceId}.portal.{region}.app.aws — ele suporta dual-stack (IPv4 e IPv6) e é compatível com replicação multi-região. Os formatos baseados em awsapps.com não estão sempre disponíveis em regiões mais novas e não suportam as capacidades multi-região. Em regiões replicadas adicionais, o alias personalizado não é suportado e o domínio pai awsapps.com não está disponível.

    Um ponto importante: cada URL regional resolve apenas para a instância daquela região específica — não há failover automático entre regiões pelo próprio serviço. Para rotear usuários entre regiões de forma dinâmica, é necessário implementar a abordagem de domínio personalizado descrita no guia.

    A solução: uma camada de roteamento e redirecionamento

    A arquitetura proposta constrói uma camada leve de roteamento na frente dos endpoints regionais do IAM Identity Center. Os componentes envolvidos são:

    O fluxo de funcionamento é direto: quando um usuário acessa aws.minhaempresa.com, o Route 53 avalia os registros de latência e encaminha o tráfego para o ALB na região saudável de menor latência. O ALB encerra o TLS usando um certificado gerenciado pelo ACM e emite um redirecionamento 302 para a URL do portal do Identity Center naquela região. O navegador do usuário segue o redirecionamento e carrega o portal diretamente — o ALB não fica no caminho do tráfego de autenticação subsequente.

    Vale destacar: o domínio personalizado em si não aparece na barra de endereços do navegador após o redirecionamento. A solução opera fora do Identity Center — na camada de DNS e balanceador de carga.

    Três fases progressivas de implementação

    O guia é estruturado em três fases independentes, que podem ser adotadas de acordo com a maturidade e necessidade de cada organização.

    Fase 1: Redirecionamento para um único endpoint regional

    A primeira fase estabelece a infraestrutura base: uma zona hospedada no Route 53, um certificado TLS gerenciado pelo ACM e um ALB voltado para a internet que emite redirecionamentos 302 para a URL do portal regional do Identity Center.

    Os passos principais são: criar uma zona hospedada pública no Route 53 para o domínio personalizado (ex: aws.minhaempresa.com); delegar o subdomínio a partir do domínio pai adicionando um registro NS; solicitar um certificado ACM para o domínio na região primária do IAM Identity Center; criar um grupo de segurança para o ALB permitindo tráfego HTTP e HTTPS de entrada em IPv4 e IPv6; criar o ALB com listeners nas portas 80 e 443, configurando redirecionamentos 302 — sendo o listener HTTPS apontando para a URL do portal regional do Identity Center; e por fim criar registros DNS no Route 53 apontando para o ALB com política de roteamento por latência.

    Um detalhe técnico importante destacado no guia: é obrigatório usar o código de status 302 – Found (e não 301). Usar 301 faz com que o navegador armazene em cache a URL de redirecionamento, o que impediria que failovers funcionassem corretamente até o cache expirar.

    Para validar a configuração, basta executar:

    curl -I https://aws.minhaempresa.com

    A resposta esperada é um HTTP/2 302 com o cabeçalho location apontando para a URL do portal do Identity Center na região configurada.

    Fase 2: Roteamento automático para o endpoint regional mais próximo

    A segunda fase estende a solução para suportar a replicação multi-região do IAM Identity Center. O objetivo é que usuários em diferentes partes do mundo sejam automaticamente direcionados ao portal da região com menor latência de rede a partir de sua localização.

    Para isso, é necessário repetir os passos da Fase 1 em cada região adicional onde o IAM Identity Center foi replicado: solicitar um certificado ACM na nova região, criar o grupo de segurança e o ALB (com a regra de redirecionamento apontando para o endpoint daquela região específica) e criar os registros DNS regionais e de roteamento por latência no Route 53 para cada região adicional.

    Com isso, o Route 53 passa a ter registros de latência para todas as regiões ativas, e cada usuário é automaticamente direcionado ao ALB mais próximo, que por sua vez redireciona para o portal do Identity Center correspondente.

    Fase 3: Failover regional gerenciado com ARC Region switch

    A terceira fase introduz o Controlador de Recuperação de Aplicações da Amazon (ARC) para orquestrar failovers regionais de forma gerenciada, ensaiável e controlada. Sem essa fase, uma impairment regional exigiria atualizações manuais de DNS para redirecionar o tráfego.

    O ARC Region switch fornece health checks do Route 53 diretamente como parte de um plano de Region switch. Esses health checks gerados são associados aos registros de latência do Route 53, e o ARC controla o estado (saudável ou não saudável) deles durante a execução do plano.

    O processo envolve: criar um plano de Region switch no console do ARC com abordagem de recuperação ativa-ativa, selecionando as regiões onde o IAM Identity Center está replicado; configurar os workflows de Ativação e Desativação para cada região, associando os registros DNS do Route 53 com seus respectivos identificadores; e por fim associar os health checks gerados pelo ARC aos registros de latência A e AAAA no Route 53.

    Para validar o setup, o guia orienta a executar um failover controlado: desativar a região primária via ARC e confirmar via curl que o redirecionamento passou a apontar para a região secundária. Para o failback, basta ativar novamente a região primária no plano do ARC.

    Deploy automatizado com CloudFormation

    Como alternativa aos passos manuais, a AWS disponibiliza templates do CloudFormation para cada fase, além de um script bash (deploy.sh) que automatiza o deploy das três fases em sequência. Os templates estão disponíveis para download:

    Para usar o script de deploy unificado, o pacote de deployment deve ser baixado e descompactado. Antes de executar, é necessário configurar os parâmetros do ambiente no arquivo deploy.sh: domínio de nível superior (TLD), ID da zona hospedada do TLD, subdomínio do Identity Center, ID da instância do IAM Identity Center, região primária e regiões adicionais.

    wget https://aws-security-blog-content.s3.us-east-1.amazonaws.com/public/sample/3536-regional-routing-for-aws-access-portals/Vanity-domains-cfn.zip
    unzip Vanity-domains-cfn.zip
    cd Vanity-domains-cfn
    ./deploy.sh

    Integração com provedores de identidade externos

    Após a configuração, o domínio personalizado pode ser integrado diretamente ao provedor de identidade da organização — como Okta ou Microsoft Entra ID — como uma aplicação de bookmark ou URL de chiclet. Dessa forma, usuários que acessam o painel do provedor de identidade são sempre redirecionados ao endpoint do IAM Identity Center mais próximo via roteamento por latência. Em caso de impairment regional, administradores executam um Region switch no ARC e os usuários são automaticamente redirecionados ao endpoint ativo, sem nenhuma alteração na URL do bookmark ou na experiência do usuário final.

    Pré-requisitos para implementação

    Antes de iniciar, a AWS lista os seguintes requisitos: um domínio de nível superior existente (ex: minhaempresa.com); uma instância organizacional do AWS IAM Identity Center configurada; para as Fases 2 e 3, a replicação multi-região do IAM Identity Center configurada com pelo menos duas regiões; e permissões de Gerenciamento de Identidade e Acesso da AWS (IAM) em uma conta de rede dedicada ou de serviços compartilhados para gerenciar Route 53, ACM, Amazon EC2, ALB e ARC.

    Recursos adicionais

    Fonte

    Regional routing for AWS access portals: Implementing custom vanity domains for IAM Identity Center (https://aws.amazon.com/blogs/security/regional-routing-for-aws-access-portals-implementing-custom-vanity-domains-for-iam-identity-center/)

  • Detectando e prevenindo crypto mining no seu ambiente AWS

    O problema do crypto mining não autorizado na nuvem

    Quando alguém obtém acesso indevido a recursos de nuvem para minerar criptomoedas, o impacto vai muito além do desperdício de processamento. A Amazon Web Services (AWS) detalha em um guia recente que organizações afetadas podem enfrentar aumentos de custo que vão de centenas a milhares de dólares, degradação de performance em workloads legítimas e, em casos mais graves, incidentes de segurança como exposição de dados ou implantação de ransomware.

    O que torna esse problema ainda mais preocupante é que as técnicas usadas pelos atacantes evoluem constantemente, dificultando a detecção. Muitas organizações só descobrem a invasão depois de receberem uma fatura inesperada ou quando a degradação de recursos começa a afetar as operações. E quando um atacante entra pela porta do crypto mining, ele pode instalar backdoors, comprometer credenciais e se mover lateralmente pela infraestrutura AWS.

    Sinais que indicam atividade de mineração

    A AWS aponta alguns indicadores que as equipes de segurança devem monitorar ativamente:

    • Conexões com endereços IP desconhecidos ou uso de portas associadas a pools de mineração, como a porta 3333
    • Uso elevado e sustentado de CPU ou GPU sem justificativa nas operações normais do negócio
    • Padrões de tráfego de rede incomuns, especialmente picos de saída para IPs não reconhecidos
    • Processos ou aplicações não autorizadas rodando nos recursos

    Como o Amazon GuardDuty detecta mineração de criptomoedas

    O Amazon GuardDuty é o serviço central para detecção desse tipo de ameaça. Ele usa algoritmos de aprendizado de máquina (Machine Learning) alimentados por dados globais de ameaças coletados pela AWS, detecção de anomalias baseada em linhas de base comportamentais e inteligência de ameaças integrada com parceiros de segurança.

    Tipos de alertas específicos para crypto mining

    As capacidades de detecção de crypto mining do GuardDuty incluem os seguintes tipos de findings:

    O GuardDuty também monitora os Flow Logs da Amazon Virtual Private Cloud (Amazon VPC) em busca de padrões suspeitos de rede, analisa consultas DNS para domínios relacionados à mineração e examina eventos do AWS CloudTrail para identificar chamadas de API suspeitas.

    Quando o recurso de Runtime Monitoring está ativado, o GuardDuty implanta agentes leves que oferecem visibilidade mais profunda sobre processos em execução e comportamento do sistema. Isso habilita findings como CryptoCurrency:Runtime/BitcoinTool.B e Impact:Runtime/CryptoMinerExecuted, que detectam software de mineração operando dentro dos workloads.

    A cobertura se estende a instâncias Amazon EC2, clusters do Amazon Elastic Container Service (Amazon ECS), ambientes Kubernetes e containers standalone. Para ambientes containerizados, findings do Amazon Elastic Kubernetes Service (Amazon EKS) podem indicar quando acessos não autorizados estão sendo usados para operações de mineração.

    Construindo uma proteção em múltiplas camadas

    A AWS reforça que a proteção contra crypto mining se beneficia de várias camadas de segurança — o GuardDuty é um componente importante, mas não o único. Veja o que a AWS recomenda para complementar as capacidades de detecção:

    • Ative o GuardDuty em todas as contas e regiões via AWS Organizations, habilitando também o Runtime Monitoring e a proteção para Amazon EKS.
    • Amazon CloudWatch: configure métricas de uso de recursos e alarmes para picos incomuns de CPU, rede ou GPU que possam indicar mineração.
    • AWS Config: implemente regras para verificar conformidade de configurações de segurança, garantindo que grupos de segurança não permitam acesso amplo à internet e que o IMDSv2 esteja aplicado.
    • AWS Network Firewall: habilite filtragem granular de tráfego de saída, permitindo apenas conectividade necessária e bloqueando acesso à infraestrutura de mineração.
    • AWS Systems Manager: mantenha visibilidade sobre configurações de instâncias. O recurso Inventory rastreia aplicações instaladas para detectar software de mineração; Run Command e State Manager aplicam políticas de segurança em toda a frota.
    • Automação de resposta: crie workflows automáticos usando Amazon EventBridge e Lambda para reagir imediatamente quando o GuardDuty detectar atividades de mineração.

    Boas práticas para proteção abrangente

    Gestão de acesso e autenticação

    A AWS recomenda implementar o princípio do menor privilégio com o Gerenciamento de Identidade e Acesso da AWS (IAM). Para casos de uso de software, use IAM roles dentro da AWS e IAM Roles Anywhere fora da AWS, em vez de chaves de acesso de longa duração. Para identidades humanas, centralize o gerenciamento de usuários pelo AWS IAM Identity Center com Autenticação Multifator (MFA) e controle de acesso baseado em atributos.

    Se não for possível eliminar o uso de chaves de acesso de longa duração, implemente políticas de rotação regular e aplique o menor privilégio em todas as políticas do IAM. Audite permissões regularmente para identificar e remover acessos excessivos.

    Manutenção de sistemas e configurações

    Use o Patch Manager, recurso do Systems Manager, para automatizar a aplicação de patches e manter as Imagens de Máquina da Amazon (AMIs) sempre atualizadas. Estabeleça um ciclo regular de patching, testando em ambientes de não-produção antes de implantar.

    Implemente regras rígidas de entrada em grupos de segurança, permitindo apenas o tráfego necessário. Use filtragem de saída para impedir conexões não autorizadas com pools de mineração e audite regularmente as configurações de grupos de segurança.

    Proteção de dados

    Use o Serviço de Gerenciamento de Chaves da AWS (AWS KMS) para habilitar criptografia de todos os dados em repouso e implemente TLS para dados em trânsito. O AWS KMS utiliza criptografia em envelope por padrão, protegendo as chaves de dados com chaves mestras. Rotacione as chaves de criptografia regularmente.

    Benefícios de uma proteção abrangente

    A AWS descreve os ganhos concretos que organizações podem obter ao implementar esse conjunto de medidas:

    • Redução do tempo de detecção: de dias ou semanas para minutos, permitindo contenção rápida antes que danos significativos ocorram.
    • Respostas automatizadas: workflows automáticos reduzem a necessidade de intervenção manual, liberando as equipes de segurança para iniciativas estratégicas.
    • Controle de custos: identificação e encerramento de consumo não autorizado de recursos, prevenindo aumentos inesperados na fatura.
    • Estabilidade de performance: processos de mineração deixam de monopolizar CPU, memória e rede, mantendo a performance das aplicações legítimas.
    • Visibilidade ampliada: a abordagem de monitoramento ajuda a identificar não só crypto mining, mas outras ameaças de segurança que poderiam passar despercebidas.
    • Confiança da equipe: monitoramento contínuo e alertas automatizados garantem que tentativas de mineração sejam detectadas e tratadas prontamente.

    Mineração de criptomoedas autorizada na AWS

    Um ponto importante destacado pela AWS: mineração de criptomoedas na plataforma requer aprovação prévia por escrito, conforme os Termos de Serviço da AWS (Seção 1.25). Essa exigência existe para proteger tanto os recursos dos clientes quanto a infraestrutura geral da AWS.

    Para solicitar aprovação, o AWS Trust & Safety avalia os pedidos para evitar que atividades de mineração afetem negativamente a performance ou a segurança dos serviços. A solicitação deve incluir:

    • Descrição do propósito da mineração e do caso de negócio
    • Planejamento de infraestrutura e abordagem de gestão de custos
    • Detalhamento das medidas de segurança para prevenir acessos não autorizados
    • Contatos de emergência para comunicação rápida em caso de problemas
    • Número de instâncias e tipo de mineração pretendida

    Operações aprovadas devem seguir diretrizes específicas. A AWS monitora as atividades para verificar que não geram relatórios de abuso, não afetam a performance dos serviços e não desviam da arquitetura e das práticas de segurança definidas. Vale lembrar: créditos AWS e recursos do Free Tier não podem ser usados para mineração.

    Conclusão

    A AWS recomenda uma abordagem abrangente que combine detecção avançada de ameaças com medidas preventivas proativas. O GuardDuty fornece a base de detecção, enquanto os serviços complementares formam um ecossistema robusto de segurança. A segurança é uma responsabilidade compartilhada: a AWS fornece as ferramentas, mas a implementação das práticas e controles de segurança por parte da organização é o que determina o nível real de proteção. Revisão regular das medidas de segurança e treinamento das equipes são essenciais para manter uma defesa eficaz contra crypto mining e outras ameaças no ambiente AWS.

    Fonte

    Detecting and preventing crypto mining in your AWS environment (https://aws.amazon.com/blogs/security/detecting-and-preventing-crypto-mining-in-your-aws-environment/)

  • AWS Atualiza Guia de Governança, Risco e Conformidade para Adoção Responsável de IA no Setor Financeiro

    IA no Setor Financeiro: Oportunidades e Novos Desafios de Governança

    O setor de serviços financeiros (FSI, do inglês Financial Services Industry) está usando IA para transformar a forma como instituições atendem seus clientes. As aplicações são variadas: gerenciamento proativo de portfólios, refinanciamento automático de hipotecas quando as taxas caem, e até negociação de prêmios de seguros em nome dos clientes.

    Mas essa adoção acelerada traz consigo um conjunto de preocupações que não podem ser ignoradas — especialmente no que diz respeito à Governança, Risco e Conformidade (GRC). Para ajudar organizações do setor financeiro a navegarem esses desafios, a AWS acaba de anunciar a versão atualizada do Guia do Usuário AWS para Governança, Risco e Conformidade na Adoção Responsável de IA em Serviços Financeiros.

    O Que o Guia Cobre

    O documento é abrangente e foi estruturado para oferecer considerações práticas em dimensões-chave da adoção responsável de IA:

    • Governança
    • Gestão de riscos
    • Conformidade regulatória
    • Gestão de dados
    • Gestão de modelos
    • Gestão de agentes de IA

    Para cada uma dessas dimensões, o guia mapeia capacidades específicas de serviços AWS que podem ser utilizados pelas organizações. Entre os serviços destacados estão:

    Como Acessar e Recursos Complementares

    O guia está disponível gratuitamente no portal de whitepapers da AWS e é complementar a outros materiais já publicados pela empresa, como:

    À medida que o ambiente regulatório e as boas práticas continuarem evoluindo, a AWS promete publicar atualizações no AWS Security Blog e no AWS Compliance Center.

    Por Que Isso Importa para Equipes Brasileiras

    Para times de tecnologia, conformidade e segurança que atuam no mercado financeiro brasileiro, esse guia é um ponto de partida relevante. O setor financeiro no Brasil está sujeito a regulações rigorosas — e a pressão para adotar IA de forma responsável só tende a crescer. Ter um framework estruturado, com mapeamento direto para serviços de nuvem, facilita tanto o planejamento quanto as conversas com áreas de risco e auditoria.

    Fonte

    Introducing the updated AWS User Guide to Governance, Risk, and Compliance for Responsible AI Adoption (https://aws.amazon.com/blogs/security/introducing-the-updated-aws-user-guide-to-governance-risk-and-compliance-for-responsible-ai-adoption/)

  • Pacotes de Conformidade PCI PIN e P2PE já estão disponíveis para o AWS Payment Cryptography

    A AWS expande conformidade de pagamentos com PCI PIN e PCI P2PE

    A Amazon Web Services (AWS) anunciou a conclusão bem-sucedida das avaliações de conformidade com os padrões Número de Identificação Pessoal da Indústria de Cartões de Pagamento (PCI PIN) e Criptografia Ponto a Ponto da Indústria de Cartões de Pagamento (PCI P2PE) para o serviço AWS Payment Cryptography. Essa conquista representa um avanço significativo no portfólio de conformidade do serviço e traz implicações diretas para empresas brasileiras que processam pagamentos eletrônicos na nuvem.

    O que mudou no portfólio de conformidade

    Com essa nova validação, a AWS passa a ser reconhecida como provedora de componentes em três categorias distintas dentro do ecossistema PCI:

    • Gerenciamento de Chaves (KMCP — Key Management Component Provider)
    • Carregamento de Chaves (KLCP — Key Loading Component Provider)
    • Gerenciamento de Descriptografia (DMCP — Decryption Management Component Provider) — já existente anteriormente

    Além do escopo ampliado de categorias, a cobertura PCI PIN e PCI P2PE foi estendida para duas novas regiões: América do Sul (São Paulo) e Ásia-Pacífico (Sydney). Para o mercado brasileiro, isso é especialmente relevante: significa que workloads de pagamento podem ser operadas diretamente na região de São Paulo com respaldo formal de conformidade PCI.

    O que é o AWS Payment Cryptography

    O AWS Payment Cryptography é um serviço que permite que aplicações de processamento de pagamentos utilizem módulos de segurança de hardware (HSMs — Hardware Security Modules) para pagamentos. Esses HSMs são certificados pelo padrão Segurança de Transações HSM PTS (PCI PIN Transaction Security) e são totalmente gerenciados pela AWS, com gerenciamento de chaves em conformidade com PCI PIN e PCI P2PE.

    Na prática, isso significa que empresas que desenvolvem ou operam soluções de pagamento podem delegar à AWS a responsabilidade pela infraestrutura criptográfica regulada, reduzindo consideravelmente a carga operacional de manter essa conformidade internamente.

    Para quais casos de uso essas certificações são relevantes

    Cada certificação cobre um cenário específico dentro do ecossistema de pagamentos:

    • PCI P2PE — Componente de Descriptografia: permite que aplicações de pagamento utilizem a AWS para descriptografar transações de cartão de crédito provenientes de terminais de pagamento.
    • PCI PIN: obrigatório para aplicações que processam transações de débito baseadas em PIN (senha numérica do cartão).
    • PCI P2PE — Componentes de Gerenciamento e Carregamento de Chaves: habilitam o uso da AWS para troca física de chaves criptográficas e para casos de uso de gerenciamento de chaves, incluindo injeção de chaves.

    Para saber mais sobre o novo recurso de Troca Física de Chaves, a AWS publicou um anúncio no AWS What’s New com detalhes adicionais.

    Documentos incluídos nos pacotes de conformidade

    Os pacotes de conformidade PCI PIN e PCI P2PE para o AWS Payment Cryptography incluem um conjunto abrangente de documentos técnicos e regulatórios:

    • Atestado de Conformidade PCI PIN (AOC — Attestation of Compliance): demonstra que o AWS Payment Cryptography foi validado com êxito contra o padrão PCI PIN, sem nenhuma não-conformidade identificada.
    • Resumo de Responsabilidades PCI PIN: orienta os clientes da AWS sobre suas responsabilidades ao desenvolver e operar ambientes seguros para transações baseadas em PIN.
    • Atestado de Validação PCI P2PE DMCP (AOV — Attestation of Validation): comprova a validação do serviço como Sistema de Gerenciamento de Descriptografia PCI P2PE, sem não-conformidades.
    • Atestado de Validação PCI P2PE KMCP (AOV): comprova a validação como Provedor de Componente de Gerenciamento de Chaves PCI P2PE, sem não-conformidades.
    • Atestado de Validação PCI P2PE KLCP (AOV): comprova a validação como Provedor de Componente de Carregamento de Chaves PCI P2PE, sem não-conformidades.
    • Guia do Usuário do Componente P2PE e Relatório Anual do Componente: descreve o escopo de avaliação do serviço como Componente de Descriptografia, Componente de Carregamento de Chaves e Componente de Gerenciamento de Chaves PCI P2PE, além de ilustrar as responsabilidades de conformidade tanto do serviço quanto dos clientes que o utilizam para processamento de criptografia ponto a ponto.

    Como acessar os documentos de conformidade

    Todos os relatórios — incluindo o Atestado de Conformidade PCI PIN, o Resumo de Responsabilidades Compartilhadas PCI PIN, o Atestado de Validação PCI P2PE e o Guia do Usuário do Componente de Descriptografia P2PE — estão disponíveis para os clientes diretamente pelo AWS Artifact, o repositório centralizado de documentos de conformidade da AWS.

    A avaliação foi conduzida pela Coalfire, uma Avaliadora de Segurança Qualificada (QSA — Qualified Security Assessor) terceirizada e independente, o que reforça a credibilidade das validações obtidas.

    Contexto para equipes de conformidade e segurança

    Para profissionais que lidam com conformidade regulatória em ambientes de pagamento, essa expansão do portfólio PCI do AWS Payment Cryptography representa uma oportunidade concreta de reduzir a complexidade operacional. Ao utilizar componentes já validados pela AWS, as equipes podem concentrar esforços nas responsabilidades que permanecem sob seu controle, em vez de precisar manter e auditar toda a infraestrutura criptográfica de ponta a ponta.

    Para conhecer mais sobre os programas PCI e outros programas de conformidade e segurança disponíveis, a AWS disponibiliza informações na página de Programas de Conformidade da AWS. Dúvidas específicas sobre conformidade podem ser encaminhadas à equipe de Compliance da AWS pela página de Suporte de Conformidade, e questões técnicas podem ser tratadas diretamente pelo AWS Support.

    Fonte

    PCI PIN and P2PE compliance packages for AWS Payment Cryptography are now available (https://aws.amazon.com/blogs/security/pci-pin-and-p2pe-compliance-packages-for-aws-payment-cryptography-are-now-available/)

  • Construindo aplicações de voz em tempo real com Amazon Nova Sonic e WebRTC

    O problema com streaming de voz em tempo real

    Desenvolver aplicações de streaming ao vivo com interação de voz em tempo real é um desafio técnico considerável. Restrições de largura de banda de rede podem causar alta latência e degradação de qualidade em aplicações onde o tempo é crítico. Barreiras de idioma limitam a interação eficaz entre humanos e máquinas em comunicações multilíngues. Escalabilidade e resiliência exigem um equilíbrio difícil entre desempenho e custos de infraestrutura. E a compatibilidade entre navegadores e dispositivos móveis demanda esforço significativo de desenvolvimento, especialmente para startups.

    Para endereçar esses desafios, a AWS documentou uma solução baseada na combinação do Amazon Nova 2 Sonic com o Amazon Kinesis Video Streams WebRTC. O WebRTC é responsável por ajustar dinamicamente o bitrate em redes instáveis, o que ajuda a manter a qualidade do áudio enquanto reduz conexões perdidas. O Nova Sonic, por sua vez, viabiliza diálogos naturais em linguagem humana, permitindo que usuários interajam de forma mais fluida no idioma de sua preferência. Ambos os serviços são totalmente gerenciados pela AWS, escalando automaticamente com alta resiliência.

    Nova Sonic e WebRTC: entendendo cada peça

    Pipelines tradicionais de agentes de voz geralmente envolvem módulos separados para reconhecimento de fala, processamento de linguagem e síntese de voz. O Nova Sonic oferece uma arquitetura unificada de fala-para-fala (speech-to-speech) que viabiliza conversas de voz em tempo real entre usuários e agentes de IA com baixa latência. Com compreensão e geração de fala unificadas, o Nova Sonic entrega uma IA conversacional natural, próxima à interação humana. O modelo oferece diferentes estilos de fala e interfaces de ferramentas para agentes externos, permitindo construir interfaces de voz mais responsivas e com maior consciência contextual.

    Um pipeline de streaming típico é composto por três componentes principais: fonte de mídia, servidor de mídia e consumidor de mídia. Esses componentes se comunicam por protocolos como RTMP, RTSP, HLS, MPEG-DASH e WebRTC.

    A Comunicação em Tempo Real pela Web (WebRTC) é um protocolo público que moderniza o streaming ao vivo ao fornecer conexões diretas ponto a ponto (peer-to-peer) em tempo real, sem necessidade de plugins ou instalações adicionais. Essa abordagem elimina a necessidade de servidores intermediários e reduz significativamente a latência. Entre todos os protocolos de streaming de mídia, o WebRTC entrega a menor latência.

    O WebRTC também inclui recursos nativos como streaming com taxa de bits adaptativa (ABR), correção antecipada de erros (FEC) e gerenciamento de buffer de jitter. Esses recursos ajustam automaticamente o consumo de largura de banda e resolvem problemas de perda de pacotes em conectividade fraca, mantendo conversas fluentes mesmo em condições de rede precárias. A natureza de código aberto do WebRTC e sua ampla compatibilidade com navegadores (Chrome, Firefox, Safari, Edge, Android, iOS, entre outros) aceleram a adoção da solução. Ele também é bem adequado para o processamento em tempo real de fluxos de mídia com funções de IA.

    Arquitetura da solução

    Existem vários cenários em que faz sentido implantar soluções de streaming ao vivo com interação de voz multilíngue:

    • Veículos conectados que auxiliam motoristas com capacidades de tradução em tempo real.
    • Fábricas inteligentes que suportam comunicação entre operadores de diferentes culturas por meio de sistemas de controle de qualidade ativados por voz.
    • Aplicações de robótica que fornecem interações de atendimento ao cliente multilíngue.
    • Dispositivos de casa inteligente que oferecem controle por voz em diferentes idiomas, possibilitando suporte técnico global por meio de tradução de áudio e orientação visual em tempo real.

    A solução documenta como implantar o Nova Sonic em conjunto com o Kinesis Video Streams como um serviço WebRTC gerenciado, incluindo integração de ferramentas com fontes populares como Geração Aumentada por Recuperação (RAG), Protocolo de Contexto de Modelo (MCP) e Strands Agents.

    O fluxo da arquitetura funciona da seguinte forma:

    Comparação com a solução WebSocket

    Comparada à opção de implantação via WebSocket, a solução de fala-para-fala baseada em WebRTC oferece uma camada de rede diferente, mais adequada para dispositivos móveis e de IoT. Esses dispositivos frequentemente exigem conexões de baixa latência sem alta largura de banda de rede. A solução também incorpora uma camada personalizada de Detecção de Atividade de Voz (VAD) para uma experiência de usuário aprimorada.

    Mudança no protocolo de streaming de áudio

    Os dados de voz são transmitidos pelo canal de mídia WebRTC em modo streaming — especificamente pelo track de áudio da conexão peer no formato Protocolo de Transporte em Tempo Real Seguro (SRTP), em vez de mensagens WebSocket. Os recursos WebRTC (como oferta/resposta SDP, DTLS, Protocolo de Controle de Transmissão de Fluxo (SCTP), SRTP e conexão peer) foram implementados usando a biblioteca Python aiortc.

    Mecanismo de detecção de voz humana

    O cliente WebRTC em React captura continuamente o áudio e o envia para o servidor WebRTC em Python. Para suprimir ruídos, aumentar a precisão da fala e reduzir os tokens de áudio para o Nova Sonic, a solução aplica a Detecção de Atividade de Voz (VAD) ao pipeline no lado do servidor, com base na biblioteca Python WebRTCVAD. Construída sobre um Modelo de Mistura Gaussiana (GMM), essa biblioteca é leve, estável e rápida para processamento de áudio em nível de frame WebRTC. Outras bibliotecas como Silero VAD e Pyannote VAD também podem ser utilizadas.

    Adaptação do formato de dados de áudio

    O WebRTC define padrões específicos de formato de áudio e vídeo. Ao enviar e receber dados de áudio por uma conexão WebRTC, é necessário realizar algumas adaptações de formato:

    • [1] Frames estéreo intercalados exigem a extração do canal de áudio esquerdo ou direito;
    • [2] Taxas de amostragem de 48kHz ou outras serão reamostradas para 16kHz, conforme exigido pela API do Nova Sonic;
    • [3] Valores de dados Int16 serão convertidos para Float32 para maior precisão de cálculo.

    Para mais detalhes técnicos, consulte a documentação no GitHub.

    Exemplos práticos da solução

    O repositório no GitHub disponibiliza uma amostra genérica e dois exemplos de cenários específicos: casa inteligente e veículo conectado. Esses padrões podem ser adaptados para suas próprias aplicações.

    Exemplo de casa inteligente

    No cenário de casa inteligente, o usuário abre um diálogo com o Nova Sonic para controlar dispositivos IoT. Para ilustrar um pipeline de comandos completo, a solução utiliza uma Base de Conhecimento do Amazon Bedrock para recuperar tópicos MQTT e gerar respostas de IA. Em seguida, conecta-se ao servidor MCP para AWS IoT Core para entregar as mensagens de comando. Os passos de configuração estão disponíveis no readme do exemplo smart-home no GitHub.

    Exemplo de veículo conectado

    No cenário de veículo conectado, o sistema estabelece monitoramento em tempo real para detectar comportamentos perigosos de uso de celular por motoristas. O sistema utiliza assistentes de voz para perguntar se o motorista precisa de assistência e verificar sua atenção. A equipe de supervisão pode acessar feeds de monitoramento em tempo real em um canal de vídeo independente para confirmar o status de segurança de veículos e motoristas. As conexões WebRTC simultâneas são independentes entre si, com criptografia TLS dedicada. Os passos de configuração estão disponíveis no readme do exemplo connected-vehicle no GitHub.

    Próximos passos

    A solução documentada pela AWS demonstra como construir uma aplicação baseada em WebRTC que combina o Amazon Nova 2 Sonic com o Amazon Kinesis Video Streams WebRTC para endereçar barreiras comuns no streaming ao vivo — como degradação de desempenho em redes instáveis e ausência de inteligência conversacional. A base de código disponível pode ser usada como ponto de partida para construir aplicações de assistente de voz de baixa latência, inteligentes e robustas para dispositivos inteligentes e veículos conectados.

    Para se aprofundar no tema:

    Fonte

    Build real-time voice streaming applications with Amazon Nova Sonic and WebRTC (https://aws.amazon.com/blogs/machine-learning/build-real-time-voice-streaming-applications-with-amazon-nova-sonic-and-webrtc/)

  • Amazon SageMaker Data Agent agora disponível para domínios com IAM Identity Center

    O que foi anunciado

    A AWS anunciou que o Amazon SageMaker Data Agent agora está disponível para domínios do SageMaker Unified Studio configurados com o Centro de Identidade do IAM (IAM Identity Center). Com essa expansão, analistas e engenheiros de dados passam a contar com as capacidades de Inteligência Artificial (IA) do Data Agent diretamente nos ambientes de notebooks e no Query Editor do SageMaker.

    O que o Data Agent faz na prática

    A proposta central do Data Agent é eliminar a necessidade de escrever manualmente código complexo — como joins SQL, agregações e transformações em Python. Em vez disso, o profissional descreve em linguagem natural o que deseja analisar e o agente gera o código adequado, já conectado às fontes de dados configuradas no ambiente.

    As fontes de dados suportadas incluem:

    • Amazon Athena
    • Amazon Redshift
    • Amazon S3
    • AWS Glue Data Catalog

    Principais capacidades

    O Data Agent vai além de simplesmente gerar código. Entre os recursos disponíveis, destacam-se:

    • Contexto conversacional: o agente mantém o histórico da conversa entre células do notebook, tabelas selecionadas e histórico de consultas, propondo planos passo a passo antes de gerar o código.
    • Casos de uso variados: cálculo de taxas de crescimento de receita trimestral, geração de visualizações, transformação de DataFrames e otimização de performance de queries — tudo via linguagem natural.
    • Fix with AI (Corrigir com IA): funcionalidade de depuração inteligente que analisa erros de execução e sugere correções, acelerando o ciclo de desenvolvimento.

    Disponibilidade e como começar

    O recurso já está disponível em todas as regiões comerciais da AWS onde o Amazon SageMaker Unified Studio é suportado.

    Para começar a usar, basta acessar um projeto no SageMaker Unified Studio, abrir um notebook ou o Query Editor e selecionar o painel do Data Agent.

    Para mais detalhes, a AWS disponibiliza a página oficial do Amazon SageMaker Unified Studio e a documentação “Use o SageMaker Data Agent” no guia do usuário do SageMaker Unified Studio.

    Fonte

    Amazon SageMaker Data Agent now available for IAM Identity Center domains (https://aws.amazon.com/about-aws/whats-new/2026/05/amazon-sagemaker-data-agent-idc/)

  • Segurança em agentes de IA: como AWS e Cisco AI Defense protegem implantações MCP e A2A em escala

    O crescimento acelerado dos agentes de IA criou lacunas sérias de segurança

    Desde novembro de 2024, a adoção do Protocolo de Contexto de Modelo (MCP) cresceu de forma expressiva. Empresas passaram a gerenciar dezenas — às vezes centenas — de servidores MCP: ferramentas que ampliam as capacidades de agentes de IA conectando-os a fontes de dados externas e APIs. Em abril de 2025, surgiu o Protocolo Agente-para-Agente (A2A), que permite que agentes autônomos se comuniquem diretamente entre si, sem intervenção humana. Mais recentemente, as Agent Skills (habilidades de agente) passaram a aparecer em toda a infraestrutura corporativa.

    Esse crescimento gerou três lacunas críticas de segurança:

    • As equipes não têm visibilidade sobre quais ferramentas e agentes estão em execução;
    • Revisões manuais de segurança não conseguem acompanhar o ritmo das implantações;
    • Frameworks de conformidade exigem trilhas de auditoria que simplesmente não existem para agentes de IA autônomos.

    Os riscos são concretos: acesso inadvertido a sistemas com dados sensíveis, violações de conformidade sob frameworks como SOX e GDPR — com potencial de penalidades regulatórias — e interrupções operacionais quando ferramentas vulneráveis ou agentes maliciosos são descobertos apenas após a implantação. Equipes de segurança relatam que processos de revisão manual podem adicionar várias semanas a cada implantação de aplicação de IA, criando um backlog que cresce conforme a adoção de IA acelera.

    A parceria entre AWS e Cisco AI Defense

    Para endereçar esses desafios, a AWS e a Cisco AI Defense firmaram uma colaboração estratégica que oferece varredura de segurança automatizada e abrangente para cada servidor MCP, agente de IA e Agent Skill no ambiente corporativo. O centro dessa solução é o AI Registry, projeto open-source apoiado pela AWS, que se integra ao Cisco AI Defense para resolver três problemas centrais.

    Visibilidade e controle do espalhamento de ferramentas

    Organizações que implantam servidores MCP e agentes de IA enfrentam um desafio fundamental de visibilidade. Equipes costumam adicionar servidores e agentes de forma ad-hoc em infraestruturas de nuvem e on-premises, tornando praticamente impossível para as equipes de segurança manter controle sobre o que está disponível, quais agentes se comunicam entre si, quem os utiliza e se representam riscos de segurança.

    O AI Registry resolve isso por meio de registro e descoberta unificados. Cada servidor MCP, agente de IA e Skill é registrado em um único plano de controle, proporcionando visibilidade completa. Além disso, a integração com o Cisco AI Defense adiciona uma camada de proteção ativa sobre essa visibilidade.

    Segurança da cadeia de suprimentos em escala

    Servidores MCP de terceiros e agentes A2A podem conter vulnerabilidades, código malicioso ou padrões inseguros que revisões manuais não conseguem detectar em escala. Quando um novo servidor ou agente é adicionado ao registro, a varredura de segurança acontece automaticamente, antes que o componente possa ser acessado.

    O scanner analisa cada ferramenta MCP, card de agente A2A e Agent Skill, gerando relatórios de segurança detalhados. Se problemas forem encontrados, o componente é automaticamente marcado como desabilitado com uma tag security-pending, exigindo revisão do administrador antes de liberar o acesso. Isso vale tanto para um servidor MCP que fornece acesso a banco de dados quanto para um agente A2A que orquestra fluxos de trabalho em múltiplas etapas pela infraestrutura.

    Eliminando gargalos de revisão de conformidade

    Revisões de segurança tradicionais criam gargalos no processo de implantação. A varredura automatizada — com revisão humana apenas nos casos em que vulnerabilidades são encontradas — viabiliza o onboarding self-service com guardrails de segurança embutidos. O processo que antes era lento e manual passa a ser automatizado, acelerando a incorporação de novos servidores MCP, agentes e Skills, ao mesmo tempo em que mantém o histórico completo de auditoria de segurança para requisitos regulatórios como SOX e GDPR.

    Como o processo de varredura funciona na prática

    O AI Registry atua como plano de controle central onde servidores MCP, agentes de IA e Skills são registrados e descobertos, oferecendo visibilidade completa da infraestrutura de IA. Ao registrar um servidor MCP, o Cisco AI Defense MCP Scanner realiza análise profunda das descrições de ferramentas e esquemas. Ao registrar agentes A2A, o Cisco AI Defense A2A Scanner analisa declarações de capacidade, definições de habilidades e padrões de comunicação. Capacidades similares existem para Agent Skills, por meio de um Skills Scanner que detecta injeção de prompt, exfiltração de dados e padrões de código malicioso.

    O diagrama abaixo ilustra o fluxo completo do processo de registro e varredura de segurança:

    Imagem original — fonte: Aws

    A varredura pode ser iniciada sob demanda para analisar servidores MCP e agentes individualmente, ou para varrer todo o Registry de uma vez. Organizações tipicamente configuram um job Cron independente que usa a API do Registry para varrer periodicamente todo o ambiente e rastrear vulnerabilidades pelos sistemas de gestão de tickets existentes. Os resultados ficam armazenados no datastore do Registry e podem ser visualizados pela interface do Registry ou recuperados via API.

    Múltiplas abordagens de varredura

    A postura de segurança de uma organização é reforçada por múltiplas abordagens de varredura que se aplicam uniformemente a MCP, agentes A2A e Skills:

    • YARA Analyzer: detecção rápida baseada em padrões para ameaças conhecidas como injeção SQL, injeção de comandos e credenciais hardcoded;
    • LLM Analyzer: análise semântica com IA usando modelos de fronteira disponíveis pelo Amazon Bedrock, que examina lógica de ferramentas, comportamento de agentes e declarações de capacidade para identificar ameaças sofisticadas e inéditas;
    • Scanners proprietários da Cisco AI Defense: incluindo o MCP Scanner, A2A Scanner e Skills Scanner, para detecção avançada de ameaças combinando inteligência de ameaças extensiva com análise profunda de código.

    O A2A Scanner analisa especificamente os metadados dos cards de agente para detectar ameaças de cadeia de suprimentos como falsificação de identidade, injeção de prompt em campos de metadados, credenciais hardcoded, endpoints de exfiltração de dados e padrões de SSRF (Server-Side Request Forgery). Ele também verifica violações de conformidade com a especificação A2A e mapeia os achados para níveis de severidade de BAIXO a CRÍTICO.

    Quando problemas são detectados, o sistema desabilita automaticamente os ativos vulneráveis com relatórios de segurança detalhados, exigindo revisão do administrador antes de liberar o acesso. A varredura se integra aos fluxos de desenvolvimento (Integração Contínua/Entrega Contínua — CI/CD) como parte do registro de novos servidores e agentes no AI Registry.

    Arquitetura aberta e integração com fluxos corporativos

    O AI Registry é construído sobre padrões e APIs abertas. Clientes da Cisco AI Defense e da AWS podem consultar o AI Registry via API REST para descobrir servidores MCP e agentes disponíveis, suportando detecção de ameaças programática em escala. O registro usa a mesma especificação de API REST do MCP Registry oficial da Anthropic, garantindo ampla compatibilidade entre ambientes MCP e suporte a federação com outras implantações MCP.

    A integração com fluxos de trabalho corporativos existentes também é suportada:

    • Criação automática de tickets no ServiceNow para servidores ou agentes com problemas;
    • Notificações em tempo real no Slack quando achados de alta severidade são detectados;
    • Encaminhamento de dados de incidentes para sistemas de Gerenciamento de Eventos e Informações de Segurança (SIEM) como Splunk ou Datadog;
    • Relatórios consolidados em dashboards de conformidade para prontidão de auditoria.

    Como começar

    Para clientes AWS

    Clientes AWS podem implantar o AI Registry e configurar a integração com o Cisco AI Defense MCP Scanner para adicionar varredura de segurança ao fluxo de onboarding de ativos de IA. O guia completo de configuração do Security Scanner está disponível no GitHub.

    Além da integração com o AI Registry open-source, é possível usar o Cisco AI Defense em fluxos CI/CD para avaliar ativos de IA antes de registrá-los no AWS Agent Registry — um serviço gerenciado de descoberta que fornece um catálogo centralizado para organizar, curar e descobrir recursos em toda a organização. Essa abordagem permite que equipes avaliem servidores MCP, ferramentas, agentes, agent skills e recursos customizados antes da publicação no registry. Um exemplo de código com a integração do Cisco AI Defense (versão OSS) com o AWS Agent Registry está disponível no repositório oficial do AWS Labs.

    Para clientes Cisco AI Defense

    Clientes da Cisco AI Defense podem configurar o MCP Scanner para apontar para o registry da organização, descobrir servidores MCP e agentes disponíveis pela API do registry, gerar relatórios de segurança abrangentes e integrar os achados aos fluxos de segurança existentes. Os scanners open-source estão disponíveis publicamente:

    Para as capacidades completas do produto, consulte a documentação do Cisco AI Defense.

    Conclusão

    A parceria entre AWS e Cisco AI Defense representa uma resposta concreta a um problema que cresce junto com a adoção de IA nas empresas: como manter visibilidade, segurança e conformidade quando dezenas ou centenas de agentes e servidores são implantados em ritmo acelerado. A combinação do AI Registry com os scanners automatizados da Cisco endereça os três pilares do problema — visibilidade centralizada, varredura de segurança em escala e trilhas de auditoria para conformidade regulatória — sem criar novos gargalos no processo de desenvolvimento.

    Fonte

    Securing AI agents: How AWS and Cisco AI Defense scale MCP and A2A deployments (https://aws.amazon.com/blogs/machine-learning/securing-ai-agents-how-aws-and-cisco-ai-defense-scale-mcp-and-a2a-deployments/)

  • Fine-tuning de LLM com Databricks Unity Catalog e Amazon SageMaker AI

    O desafio de governança no fine-tuning de LLMs

    Realizar fine-tuning de Modelos de Linguagem de Grande Escala (LLMs) em ambientes que combinam serviços de diferentes provedores traz um desafio específico: como manter governança rigorosa sobre os dados sem abrir mão das melhores ferramentas de Aprendizado de Máquina (ML) disponíveis?

    Quando se usa o Amazon SageMaker AI em conjunto com o Databricks Unity Catalog, esse problema fica ainda mais evidente. O Unity Catalog gerencia metadados e permissões, enquanto os dados em si ficam armazenados no Amazon Simple Storage Service (Amazon S3) — quando o ambiente de nuvem escolhido é a AWS. O risco é que os jobs de treinamento do SageMaker AI acessem esses dados no S3 contornando o modelo de autorização granular do Unity Catalog, criando lacunas de auditoria e exposição a riscos de conformidade.

    Em indústrias reguladas, saber exatamente quais dados treinaram quais modelos não é opcional — é um requisito crítico. Sem um padrão de integração estruturado, perde-se visibilidade sobre essa linhagem, e a conformidade fica comprometida.

    Visão geral da solução

    A solução demonstrada pela AWS aborda esse problema integrando três serviços principais: o Unity Catalog para governança centralizada, o Amazon EMR Serverless para pré-processamento com Apache Spark, e o SageMaker AI para o treinamento do modelo. O fluxo completo realiza as seguintes etapas:

    • Leitura dos dados de treinamento a partir de uma tabela gerenciada pelo Unity Catalog, com controles de governança aplicados
    • Pré-processamento dos dados usando EMR Serverless com Apache Spark
    • Fine-tuning do modelo Ministral-3-3B-Instruct via jobs de treinamento do SageMaker AI
    • Rastreamento da linhagem de dados no Unity Catalog, desde os dados brutos até o modelo treinado

    Os componentes e suas funções na arquitetura são os seguintes:

    • Amazon SageMaker AI Studio – JupyterLab Space: orquestração do fluxo e treinamento do modelo
    • Amazon EMR Serverless: pré-processamento de dados com Spark, sem gerenciamento de clusters
    • Databricks Unity Catalog: catálogo de metadados, governança e rastreamento de linhagem
    • Hugging Face: acesso ao modelo pré-treinado
    • Amazon S3: armazenamento de dados e artefatos do modelo
    • AWS Secrets Manager: gerenciamento seguro de credenciais

    No fluxo operacional, o usuário acessa o SageMaker AI Studio, inicia o pré-processamento via job do EMR Serverless — que acessa os dados no S3 gerenciado pelo Unity Catalog usando OAuth armazenado no Secrets Manager — e, após o processamento, o job de treinamento do SageMaker AI busca o modelo no Hugging Face, realiza o fine-tuning e devolve os artefatos ao bucket S3. Por fim, o modelo é registrado no Unity Catalog com linhagem de dados completa.

    Pré-requisitos

    Antes de iniciar, é necessário ter acesso e permissões configuradas para os seguintes serviços AWS: SageMaker AI, EMR Serverless, Amazon S3, AWS Secrets Manager, AWS Identity and Access Management (IAM), Amazon Virtual Private Cloud (Amazon VPC), Amazon CloudWatch Logs e Amazon Elastic Container Registry (Amazon ECR). Também é necessário ter uma VPC com acesso à internet configurado.

    No lado do Databricks, os requisitos são: configurar o Unity Catalog para o Workspace, habilitar acesso externo a dados no Metastore (desativado por padrão) e criar credenciais OAuth (Client ID e secret) para acesso programático ao Databricks.

    Passo a passo da implementação

    O tutorial completo está disponível no notebook LLM_Finetunig_SageMaker_AI_Unity_Catalog.ipynb, que deve ser executado no SageMaker AI Studio. Para isso, acesse o Console do Amazon SageMaker AI, crie um domínio Studio se necessário (usando a configuração rápida), e crie um JupyterLab Space com a instância ml.m5.2xlarge, imagem Sagemaker Distribution 3.8.0 e 5 GB de armazenamento.

    Etapa 1: Configuração AWS

    Nesta etapa, são criados os recursos base: bucket S3 gerenciado pelo Unity Catalog com upload do dataset, secret no AWS Secrets Manager para as credenciais OAuth do Databricks, e as roles de Gerenciamento de Identidade e Acesso (IAM) necessárias para o EMR Serverless e o SageMaker AI.

    O dataset utilizado são os arquivos SEC EDGAR (Sistema Eletrônico de Coleta, Análise e Recuperação de Dados da Comissão de Valores Mobiliários dos EUA) — especificamente formulários 10-K e 10-Q de empresas do S&P 500 de 2023 a 2024, com foco na seção de Fatores de Risco. Os dados são armazenados em formato JSON no S3, com a seguinte estrutura:

    s3://aws-blog-smai-uc-bucket-ACCOUNTID/
    ├── raw/
    │   └── risk_factors/
    │       ├── form_type=10-K/
    │       │   └── fiscal_year=2024/
    │       │       └── cik=0000320193/
    │       │           └── risk_factors.json
    │       └── form_type=10-Q/
    │           └── fiscal_year=2024/
    │               └── quarter=1/
    │                   └── cik=0000320193/
    │                       └── risk_factors.json
    ├── curated/
    │   └── ml/

    Para autenticação, a solução usa OAuth para service principals (OAuth M2M), que gera tokens de curta duração. As credenciais são criadas seguindo a documentação do Databricks e armazenadas no AWS Secrets Manager.

    As políticas de IAM para o EMR Serverless e para o SageMaker AI concedem acesso ao bucket S3 gerenciado pelo Unity Catalog, ao Secrets Manager e ao CloudWatch Logs. A role do SageMaker AI inclui também permissões para o ECR. Veja os exemplos de política abaixo:

    Role do EMR Serverless:

    emr_policy = {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:GetObject",
                    "s3:PutObject",
                    "s3:DeleteObject",
                    "s3:ListBucket"
                ],
                "Resource": [
                    f"arn:aws:s3:::{UC_MANAGED_BUCKET}/*",
                    f"arn:aws:s3:::{UC_MANAGED_BUCKET}"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "secretsmanager:GetSecretValue"
                ],
                "Resource": [
                    f"arn:aws:secretsmanager:{AWS_REGION}:{AWS_ACCOUNT_ID}:secret:databricks/*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                ],
                "Resource": f"arn:aws:logs:{AWS_REGION}:{AWS_ACCOUNT_ID}:*"
            }
        ]
    }

    Role de execução do SageMaker AI:

    sagemaker_policy = {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:GetObject",
                    "s3:PutObject",
                    "s3:DeleteObject",
                    "s3:ListBucket"
                ],
                "Resource": [
                    f"arn:aws:s3:::{UC_MANAGED_BUCKET}/*",
                    f"arn:aws:s3:::{UC_MANAGED_BUCKET}"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "secretsmanager:GetSecretValue"
                ],
                "Resource": [
                    f"arn:aws:secretsmanager:{AWS_REGION}:{AWS_ACCOUNT_ID}:secret:databricks/*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents",
                    "logs:DescribeLogStreams"
                ],
                "Resource": f"arn:aws:logs:{AWS_REGION}:{AWS_ACCOUNT_ID}:*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "ecr:GetAuthorizationToken",
                    "ecr:BatchCheckLayerAvailability",
                    "ecr:GetDownloadUrlForLayer",
                    "ecr:BatchGetImage"
                ],
                "Resource": "*"
            }
        ]
    }

    Etapa 2: Configuração do Databricks Unity Catalog

    Nesta etapa, o bucket S3 é registrado como External Location no Unity Catalog. Em seguida, são criados os objetos de banco de dados: catálogo, schemas e tabela externa. As permissões necessárias são concedidas ao Service Principal — incluindo USE CATALOG, USE SCHEMA, SELECT na tabela de dados brutos e CREATE TABLE nos schemas de curadoria e ML.

    Após a configuração, o cliente Databricks é inicializado e a conexão com o Unity Catalog é testada:

    # Initialize Databricks client
    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(
        host=UNITY_WORKSPACE_URL,
        client_id=DATABRICKS_CLIENT_ID,
        client_secret=DATABRICKS_CLIENT_SECRET
    )
    
    table_info = w.tables.get(f"{UNITY_CATALOG_NAME}.{UNITY_SCHEMA_DATA}.{UNITY_TABLE_NAME}")
    print(f"Table: {table_info.name}")
    print(f"Storage Location: {table_info.storage_location}")
    print(f"Table Format: {table_info.data_source_format}")

    A saída esperada confirma a tabela, sua localização no S3 e o formato Delta:

    Table: risk_factors
    Storage Location: s3:// aws-blog-smai-uc-bucket-ACCOUNTID/raw/risk_factors
    Table Format: DataSourceFormat.DELTA

    Etapa 3: Configuração da aplicação EMR Serverless

    O EMR Serverless é criado em uma VPC com acesso à internet. Isso é necessário porque, como o EMR Serverless não inclui suporte nativo ao Delta Lake (pelo menos até fevereiro de 2026), a aplicação Spark precisa baixar os arquivos JAR do Delta Lake do repositório Maven Central durante a inicialização. Sem acesso à internet, esse download falha e o job não consegue resolver o formato de tabela Delta.

    Etapa 4: Pré-processamento com EMR Serverless

    Um script de pré-processamento lê os fatores de risco do SEC EDGAR da tabela Delta, filtra e limpa os dados, formata o conteúdo como prompt no estilo instrução para fine-tuning e grava os resultados como tabela Delta no S3. Os parâmetros Spark necessários para habilitar o Delta Lake são configurados assim:

    jobDriver={
        'sparkSubmit': {
            'sparkSubmitParameters': ' '.join([
                '--packages io.delta:delta-spark_2.12:3.2.0',
                '--conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension',
                '--conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog'
            ])
        }

    Após a conclusão do job, os dados pré-processados são registrados como tabela Delta no schema de curadoria do Unity Catalog via SDK do Databricks, usando um SQL warehouse serverless.

    Etapa 5: Fine-tuning com SageMaker AI

    Com o dataset preparado, o job de treinamento do SageMaker AI realiza o fine-tuning do modelo Ministral-3-3B-Instruct-2512, disponível no Hugging Face. Trata-se de um modelo compacto de 3 bilhões de parâmetros da Mistral AI, otimizado para seguir instruções com bom desempenho em tarefas de raciocínio.

    O script de treinamento aplica duas técnicas de eficiência de memória: quantização em ponto flutuante de 8 bits (FP8) para reduzir o uso de memória, e Adaptação de Baixa Classificação (LoRA) para treinar apenas 1–2% dos parâmetros em vez dos 3 bilhões completos. Os dados são tokenizados com janela de contexto de 1.024 tokens. O treinamento usa uma instância ml.g5.16xlarge, e os artefatos do modelo são enviados ao bucket S3 ao final do job.

    Etapa 6: Registro do modelo no Unity Catalog

    Após o upload dos artefatos para o S3, o modelo fine-tunado é registrado no schema ML do Unity Catalog usando o MLflow gerenciado pelo Databricks via SDK. Um experimento MLflow é criado para registrar metadados de treinamento — hiperparâmetros, tabela de origem, detalhes do job — e o modelo é versionado com documentação que inclui linhagem dos dados de origem, serviço de treinamento e especificações do modelo.

    Etapa 7: Criação de linhagem de dados no Unity Catalog

    O Unity Catalog captura automaticamente a linhagem de dados para workloads executados dentro do Databricks. Para workloads externos — como jobs do EMR Serverless e jobs de treinamento do SageMaker AI — é possível adicionar metadados e linhagem através da API de Metadados Externos e da API de Linhagem Externa. Essa capacidade de “traga sua própria linhagem de dados” (atualmente em prévia pública desde abril de 2026) oferece uma visão completa da linhagem no Unity Catalog.

    Para o fluxo completo, são criados os seguintes objetos de linhagem:

    • Metadados externos do job EMR Serverless
    • Linhagem upstream: tabela bruta → job EMR Serverless
    • Linhagem downstream: job EMR Serverless → tabela pré-processada
    • Metadados externos do job de treinamento do SageMaker AI
    • Linhagem upstream: tabela pré-processada → job de treinamento
    • Linhagem downstream: job de treinamento → versão do modelo

    Com isso, é possível visualizar o grafo completo de linhagem — dos dados brutos ao modelo fine-tunado — diretamente no console do Unity Catalog.

    Limpeza dos recursos

    Após validar a solução, a AWS recomenda remover os seguintes recursos para evitar cobranças contínuas: aplicação EMR Serverless, buckets e objetos S3, roles e políticas IAM, secrets no AWS Secrets Manager, recursos de VPC e objetos do Unity Catalog (catálogo, schema, tabela e service principal).

    Conclusão

    A integração entre Databricks Unity Catalog e Amazon SageMaker AI apresentada pela AWS demonstra como é possível realizar fine-tuning de LLMs com governança contínua, sem comprometer segurança ou conformidade. Combinando o Unity Catalog para controle de acesso e linhagem, o EMR Serverless para pré-processamento escalável e o SageMaker AI para treinamento, o resultado é um pipeline de ML governado de ponta a ponta — adequado para ambientes de produção e indústrias reguladas.

    O padrão pode ser reutilizado com outros LLMs e datasets maiores, servindo como base para workloads de IA generativa em ambientes multicloud com requisitos rigorosos de auditoria.

    Fonte

    Fine-tune LLM with Databricks Unity Catalog and Amazon SageMaker AI (https://aws.amazon.com/blogs/machine-learning/fine-tune-llm-with-databricks-unity-catalog-and-amazon-sagemaker-ai/)

  • Como o EU AI Act afeta o fine-tuning de LLMs no Amazon SageMaker AI

    O que mudou com o EU AI Act em agosto de 2025

    Em 2 de agosto de 2025, o EU AI Act passou a vigorar com novos requisitos para organizações que trabalham com modelos de inteligência artificial de propósito geral — os chamados modelos GPAI (Inteligência Artificial de Propósito Geral). Uma das exigências centrais afeta diretamente quem realiza fine-tuning de grandes modelos de linguagem (LLMs, na sigla em inglês): é preciso rastrear o consumo computacional do treinamento, medido em operações de ponto flutuante, ou FLOPs (Operações de Ponto Flutuante).

    O motivo é simples: a regulação precisa distinguir quem apenas usa um modelo existente (o chamado usuário downstream) de quem efetivamente cria um novo modelo — e, portanto, assume as responsabilidades legais de um provedor GPAI. Essa distinção depende diretamente de quanto processamento computacional foi consumido durante o fine-tuning.

    A regra de um terço e os limiares de FLOPs

    O EU AI Act adota a chamada “regra de um terço”: se o fine-tuning consumir mais de um terço do processamento computacional usado no pré-treinamento original do modelo, a organização passa a ser tratada como provedora GPAI — com todas as obrigações que isso implica.

    A lógica regulatória por trás desse limite de 30% é que modificações que consomem mais de um terço do processamento original tendem a alterar significativamente o comportamento do modelo, criando efetivamente um novo modelo com riscos distintos.

    Na prática, existem três cenários e limiares aplicáveis:

    • Processamento de pré-treinamento conhecido e ≥ 10²³ FLOPs: o limiar é 30% do processamento real de pré-treinamento.
    • Processamento de pré-treinamento desconhecido ou < 10²³ FLOPs: aplica-se o limiar padrão de 3,3×10²² FLOPs.
    • Modelos de Risco Sistêmico (pré-treinamento ≥ 10²⁵ FLOPs): o limiar é 3,3×10²⁴ FLOPs (se o processamento base for desconhecido).

    Como os provedores de modelos raramente publicam os FLOPs exatos de pré-treinamento, a maioria das organizações se enquadra no segundo cenário — o limiar padrão de 3,3×10²² FLOPs.

    Para orientar a tomada de decisão, vale seguir este fluxo:

    • Você conhece os FLOPs de pré-treinamento do modelo base? Se não, aplique diretamente o limiar padrão de 3,3×10²² FLOPs.
    • Se sim: o pré-treinamento é ≥ 10²⁵ FLOPs? Use o limiar de Risco Sistêmico (3,3×10²⁴ FLOPs).
    • Se não: o pré-treinamento é ≥ 10²³ FLOPs? Use 30% do valor real.
    • Se também não: aplique o limiar padrão de 3,3×10²² FLOPs.

    Como exemplo prático: o fine-tuning do Llama-3-70B — cujo pré-treinamento estimado é de pelo menos 1,5×10²⁴ FLOPs — define o limiar em 4,5×10²³ FLOPs. Superar esse valor significa assumir as obrigações completas de provedor GPAI, que incluem divulgar detalhes da arquitetura e do processo de treinamento, publicar a lista de fontes de dados utilizadas e demonstrar conformidade com a legislação europeia de direitos autorais. O descumprimento pode resultar em multas de até €15 milhões ou 3% do faturamento global anual, o que for maior.

    Por que o rastreamento manual de FLOPs é um problema

    Calcular FLOPs manualmente apresenta três desafios concretos. Primeiro, as fórmulas são complexas e variam dependendo do método de treinamento: fine-tuning completo ou métodos eficientes em parâmetros, como LoRA (Adaptação de Baixo Posto), que atualizam apenas um subconjunto dos parâmetros do modelo. Segundo, determinar o limiar aplicável é difícil porque os valores de processamento de pré-treinamento raramente são publicados pelos provedores. Terceiro, manter um histórico de auditoria — um registro permanente das métricas de conformidade para revisão regulatória — ao longo de múltiplos jobs de treinamento gera sobrecarga operacional considerável.

    Erros nesse cálculo podem mudar completamente a classificação regulatória da organização, com consequências legais e financeiras significativas.

    O Fine-Tuning FLOPs Meter: solução open source da AWS

    Para resolver esses desafios, a AWS disponibilizou o toolkit open source Fine-Tuning FLOPs Meter, integrado ao Amazon SageMaker AI. A ferramenta está disponível no repositório Amazon SageMaker Generative AI recipes e se integra a fluxos de treinamento baseados em Hugging Face.

    O toolkit cobre três estágios do ciclo de fine-tuning:

    • Estimativa pré-treinamento (opcional): um utilitário independente permite comparar os FLOPs esperados entre diferentes métodos (LoRA, Spectrum e fine-tuning completo) antes de lançar o job. Útil para planejamento e para verificar o quão próxima uma configuração está do limiar regulatório.
    • Rastreamento em tempo real (funcionalidade principal): usa um TrainerCallback do Hugging Face para calcular FLOPs durante o treinamento, combinando análise baseada na arquitetura do modelo e monitoramento de hardware via NVML (Biblioteca de Gerenciamento NVIDIA).
    • Trilha de auditoria pós-treinamento: ao final do treinamento, gera automaticamente um arquivo JSON com as métricas completas de conformidade, que pode ser persistido no Amazon Simple Storage Service (Amazon S3) ou no Amazon DynamoDB.

    A ativação do rastreamento exige apenas uma linha no arquivo de configuração YAML da receita:

    compute_flops: true

    Como os FLOPs são calculados

    O toolkit implementa dois métodos de cálculo, ambos executados automaticamente:

    Método analítico (baseado em arquitetura)

    É o método primário para fins de conformidade regulatória. O EU AI Act (Seção A.2.1) descreve a fórmula padrão para transformers densos:

    C ≈ 6 × P × D

    Onde P é o número de parâmetros e D é o número de tokens de treinamento. Essa fórmula assume fine-tuning completo. Para métodos eficientes em parâmetros como LoRA ou Spectrum, o toolkit usa uma fórmula aprimorada:

    F_ft = (4 × N_total + 2 × N_trainable) × tokens_processed

    O detalhamento é o seguinte: 4 × N_total representa o passo forward (2×) mais o cálculo do gradiente no passo backward por todas as camadas (2×), incluindo as congeladas; 2 × N_trainable representa o cálculo do gradiente apenas para os pesos treináveis. Para fine-tuning completo, onde todos os parâmetros são treináveis, a fórmula se reduz a 6 × N × D, equivalente à fórmula da regulação europeia.

    Método baseado em hardware (limite superior conservador)

    Usa monitoramento de GPU via NVML com a fórmula:

    C = N_gpus × L × H × U

    Onde N_gpus é o número de GPUs, L é a duração do treinamento em segundos, H é o desempenho teórico de pico (FLOPs) e U é a utilização. O toolkit usa U = 1.0 (100% de utilização) para produzir um limite superior conservador.

    Lógica de limiar

    A função determine_compliance_threshold() implementa a lógica do EU AI Act:

    EU_AI_ACT_GPAI_THRESHOLD = 1e23 # 10²³ FLOPs
    EU_AI_ACT_DEFAULT_THRESHOLD = 3.3e22 # Um terço de 10²³
    
    if pretrain_flops is None or pretrain_flops < EU_AI_ACT_GPAI_THRESHOLD:
        threshold = EU_AI_ACT_DEFAULT_THRESHOLD # "default_3.3e22"
    else:
        threshold = 0.30 * pretrain_flops # "30pct_of_actual_pretraining"

    Integração com jobs de treinamento no SageMaker AI

    O FLOPs Meter funciona como um TrainerCallback do Hugging Face. Ao iniciar o treinamento, o script verifica o flag compute_flops e, se ativado, inicializa o FlopsMeterCallback com a contagem de parâmetros do modelo e a variável de ambiente opcional PRETRAIN_FLOPS. Um TokenCountingSFTTrainer customizado substitui o SFTTrainer padrão para contar tokens não-padding a cada passo de treinamento.

    Veja o trecho de código de inicialização do callback:

    n_total = sum(p.numel() for p in model.parameters())
    n_trainable = sum(p.numel() for p in model.parameters() if p.requires_grad)
    
    flops_cb = FlopsMeterCallback(
        pad_token_id=tokenizer.pad_token_id,
        pretrain_flops=pretrain_flops,  # from PRETRAIN_FLOPS env var
        sample_nvml=True,
        n_total=n_total,
        n_trainable=n_trainable,
        model_name=model_args.model_name_or_path,
        num_epochs=training_args.num_train_epochs,
    )

    Ao final do treinamento, o callback grava um arquivo flops_meter.json em /opt/ml/output/. O pipeline então faz o upload para o Amazon S3 e persiste os dados no Amazon DynamoDB, criando uma trilha de auditoria permanente.

    Exemplo prático: Llama-3.2-3B no SageMaker AI

    O walkthrough demonstrado pela AWS utiliza o modelo meta-llama/Llama-3.2-3B-Instruct (3,21 bilhões de parâmetros). Como a Meta não publicou os FLOPs exatos de pré-treinamento desse modelo, o caminho do limiar padrão se aplica automaticamente: 3,3×10²² FLOPs.

    A configuração de receita para Llama-3.2-3B com LoRA e rastreamento de FLOPs ativado é:

    model_name_or_path: meta-llama/Llama-3.2-3B-Instruct
    dataset_id_or_path: your-dataset.jsonl
    use_peft: true
    compute_flops: true
    per_device_train_batch_size: 8
    num_train_epochs: 10
    learning_rate: 2e-5
    peft_config:
      r: 8
      lora_alpha: 16
      target_modules: ["q_proj", "v_proj"]

    Para lançar o job de treinamento via SDK Python do SageMaker:

    from sagemaker.modules.configs import Compute, SourceCode
    from sagemaker.modules.train import ModelTrainer
    
    training_instance_type = "ml.g5.4xlarge"
    
    pytorch_image_uri = sagemaker.image_uris.retrieve(
        framework="pytorch",
        region=sess.boto_session.region_name,
        version="2.7.1",
        instance_type=training_instance_type,
        image_scope="training",
    )
    
    source_code = SourceCode(
        source_dir="./sagemaker_code",
        command="bash sm_accelerate_train.sh --config hf_recipes/meta-llama/Llama-3.2-3B-Instruct--vanilla-peft-qlora.yaml",
    )
    
    compute = Compute(
        instance_type=training_instance_type,
        instance_count=1,
        volume_size_in_gb=300,
    )
    
    model_trainer = ModelTrainer(
        training_image=pytorch_image_uri,
        source_code=source_code,
        compute=compute,
        role=role,
        environment={
            "FLOPS_METER_NVML": "1",
        },
    )
    
    model_trainer.train()

    Como os FLOPs de pré-treinamento não são conhecidos para esse modelo, a variável de ambiente PRETRAIN_FLOPS é omitida e o limiar padrão é aplicado automaticamente.

    Documentação de conformidade gerada

    Ao término do treinamento, o toolkit gera um arquivo flops_meter.json com as métricas necessárias para documentação regulatória:

    {
      "Flops_architecture": "1.45e+13",
      "Flops_hardware": "1.52e+15",
      "Flops_original": null,
      "N_total": 1585294704,
      "N_trainable": 680094720,
      "threshold_type": "default_3.3e22",
      "threshold_value": "3.30e+22",
      "pct_of_pretrain": 0.000000439,
      "exceeds_30pct": false,
      "tokens_processed": 2150,
      "model_name": "meta-llama/Llama-3.2-3B-Instruct",
      "num_epochs": 10,
      "training_duration_seconds": 245.30,
      "gpu_name": "NVIDIA A10G",
      "instance_type": "ml.g5.4xlarge",
      "training_job_name": "pipelines-abc123-TrainingStep-xyz789",
      "recipe_config": "hf_recipes/meta-llama/Llama-3.2-3B-Instruct--vanilla-peft-qlora.yaml"
    }

    O campo Flops_architecture deve ser usado como métrica primária de conformidade — ele reflete com precisão a configuração real do treinamento. O campo Flops_hardware fornece um limite superior conservador, útil como margem de segurança para relatórios mais cautelosos. O campo exceeds_30pct é o indicador booleano para avaliação rápida de conformidade.

    O que fazer se o limiar for ultrapassado

    Se o relatório de conformidade mostrar exceeds_30pct: true, a organização é classificada como provedora GPAI sob o EU AI Act. Os próximos passos incluem: documentar a arquitetura do modelo e o processo de treinamento; preparar uma lista pública das fontes de dados de treinamento; demonstrar conformidade com a legislação europeia de direitos autorais; e considerar a consulta a assessoria jurídica especializada em regulações de IA da União Europeia.

    Vale notar que existem obrigações adicionais caso o modelo GPAI seja classificado como de Risco Sistêmico. Uma alternativa técnica é reduzir o escopo do treinamento — menos épocas, dataset menor ou migração para LoRA — para permanecer abaixo do limiar.

    Escala para cargas de trabalho em produção

    O exemplo de demonstração utilizou um dataset pequeno (2.150 tokens). Em produção, o processamento típico envolve milhões de tokens. Para referência: o fine-tuning do Llama-3.2-3B em 1 milhão de tokens com LoRA resulta em aproximadamente 6,7×10¹⁸ FLOPs — bem abaixo do limiar de 3,3×10²². Já o fine-tuning completo no mesmo dataset consome aproximadamente 1,9×10¹⁹ FLOPs, aproximando-se mais do limiar.

    Como regra prática, a preocupação com conformidade começa quando os FLOPs atingem 10²¹ ou mais — cerca de 3% do limiar padrão. A partir desse ponto, recomenda-se executar o utilitário de estimativa pré-treinamento antes de cada job. Para a maioria dos jobs de fine-tuning com LoRA em modelos abaixo de 10 bilhões de parâmetros, o resultado permanece bem abaixo do limiar mesmo com milhões de tokens de treinamento.

    Fonte

    Navigating EU AI Act requirements for LLM fine-tuning on Amazon SageMaker AI (https://aws.amazon.com/blogs/machine-learning/navigating-eu-ai-act-requirements-for-llm-fine-tuning-on-amazon-sagemaker-ai/)

  • Geração automática de schemas para processamento inteligente de documentos

    O problema clássico do ovo e da galinha no processamento de documentos

    Quem já trabalhou com Processamento Inteligente de Documentos (IDP) conhece bem o dilema inicial: antes de extrair informações de documentos, você precisa de um schema que defina o que deve ser extraído. Mas como criar esses schemas quando você tem milhares de documentos sem saber quais tipos existem na coleção? Fazer isso manualmente, em escala, consome tempo e recursos consideráveis, tornando difícil justificar o investimento em iniciativas de IDP.

    Para resolver exatamente esse problema, a AWS apresentou a funcionalidade de descoberta multi-documento no IDP Accelerator. Ela atua como uma etapa de pré-processamento automatizada, analisando documentos desconhecidos, agrupando-os por tipo e gerando schemas prontos para uso.

    O que é o IDP Accelerator

    O IDP Accelerator é uma solução escalável, serverless e de código aberto para processamento automatizado de documentos e extração de informações. Para configurá-lo para tipos específicos de documentos, é necessário um arquivo de configuração que define as classes e os campos a serem extraídos. Um exemplo mínimo está disponível no repositório GitHub do IDP Accelerator.

    O IDP Accelerator já contava com um Módulo de Descoberta capaz de gerar uma configuração de classe a partir de um único documento de exemplo. O problema é que esse recurso exige que o usuário já conheça as classes de documentos e consiga identificar um exemplo representativo para cada uma. A nova funcionalidade multi-documento remove esse pré-requisito, acelerando o caminho para aplicar o IDP Accelerator a coleções de documentos sem rótulo.

    Como a solução funciona

    A nova funcionalidade está integrada ao Módulo de Descoberta existente como uma capacidade “Múltiplos Documentos”, ao lado da opção “Documento Único” já disponível. A orquestração é feita por uma máquina de estados do AWS Step Functions e por funções do AWS Lambda para computação serverless.

    Os documentos são processados a partir de um bucket do Amazon Simple Storage Service (Amazon S3) ou de um arquivo Zip enviado diretamente. Os modelos disponíveis pelo Amazon Bedrock geram os schemas, que são automaticamente integrados ao arquivo de configuração do IDP Accelerator.

    O fluxo completo acontece em três grandes etapas: geração de embeddings, agrupamento de documentos e geração agêntica de schemas — com uma etapa adicional de análise e reflexão ao final.

    Detalhes técnicos do pipeline

    Geração de embeddings

    O processo começa convertendo cada documento em um embedding vetorial — uma representação numérica das características visuais do documento. Para documentos com múltiplas páginas, apenas a primeira página é utilizada.

    A solução usa embeddings visuais em vez de texto extraído por OCR (Reconhecimento Óptico de Caracteres). A razão é que embeddings visuais capturam layout, formatação e pistas estruturais que distinguem tipos de documentos mesmo quando o conteúdo textual é semelhante. O modelo padrão adotado é o Cohere Embed v4, disponível pelo Amazon Bedrock. A etapa de embedding já trata automaticamente questões como compressão de imagem, lógica de retry e controle de taxa de requisições.

    Agrupamento de documentos

    Com os embeddings gerados, a solução precisa descobrir quantos tipos de documentos existem na coleção. Para isso, utiliza o silhouette score (pontuação de silhueta), uma métrica que mede o quão bem separados estão os grupos entre si e o quão compactos são os documentos dentro de cada grupo.

    Usando o algoritmo k-means, o sistema testa valores de k (número de grupos) de 2 a 20 por padrão e seleciona o agrupamento com a maior pontuação de silhueta. Para garantir grupos significativos, cada cluster precisa ter pelo menos dois documentos. Se necessário, o limite superior de k é reduzido abaixo de 20 para satisfazer essa restrição.

    Validação da abordagem de embeddings e clustering

    Para validar a abordagem, a AWS realizou experimentos com o Cohere Embed v4 sobre um subconjunto do dataset OCR-benchmark, disponível no bucket de conjunto de testes implantado com o stack CloudFormation do IDP Accelerator. Esse subconjunto contém 293 documentos distribuídos em 9 tipos: cheque bancário, contrato de locação comercial, extrato de cartão de crédito, nota de entrega, inspeção de equipamento, glossário, formulário de petição, imóvel e escala de turnos.

    O objetivo era verificar se o k-means conseguia identificar corretamente esses agrupamentos usando o modelo de embedding. O resultado foi expressivo: a maior pontuação de silhueta ocorreu exatamente em k=9, correspondendo ao número real de tipos de documentos no dataset.

    Imagem original — fonte: Aws

    Para visualizar os resultados, foi gerado um gráfico t-SNE (Incorporação de Vizinhos Estocásticos Distribuídos em t — t-SNE), uma técnica de visualização que reduz dados de alta dimensionalidade para um espaço bidimensional preservando as relações entre os pontos. O gráfico mostrou os clusters claramente separados, cada um correspondendo a um tipo de documento.

    Imagem original — fonte: Aws

    O agrupamento atingiu um Índice Rand Ajustado (ARI) e uma Informação Mútua Normalizada (NMI) perfeitos, ambos com valor 1.0. O ARI mede o quão bem o agrupamento corresponde aos grupos reais, enquanto o NMI quantifica a informação compartilhada entre os clusters previstos e os reais. Cada cluster mapeou um-para-um para uma classe de documento real com 100% de pureza.

    Esses resultados demonstram que embeddings multimodais de alta qualidade permitem classificação de documentos totalmente não supervisionada — sem nenhum dado de treinamento rotulado. Vale ressaltar, porém, que o desempenho nesse dataset de benchmark não garante resultados similares em outras coleções de documentos, pois as características específicas de cada dataset influenciam diretamente a qualidade dos resultados.

    Geração agêntica de schemas

    Após a identificação dos clusters, o pipeline entra na fase agêntica. Para cada cluster, um Strands Agent é invocado para determinar o tipo de documento e gerar um schema. A escolha pelo Strands Agents se deve à abordagem orientada pelo modelo, que oferece ao LLM a flexibilidade de raciocinar autonomamente sobre cada schema.

    O agente precisa visualizar documentos em diferentes posições dentro do cluster para capturar toda a variedade antes de gerar o schema — por exemplo, um documento próximo ao centro, um na periferia e um a distância intermediária. Uma abordagem determinística e fixa de amostragem não funcionaria aqui, pois a qualidade do agrupamento depende fortemente dos documentos específicos de cada coleção.

    Para isso, o agente conta com duas ferramentas especializadas:

    • Ferramenta de Análise de Cluster — Recupera IDs de documentos ordenados por distância do centróide do cluster, permitindo que o agente amostre estrategicamente ao longo do espectro de variação dentro do cluster.
    • Ferramenta de Visualização de Documento — Busca e comprime imagens de documentos para inspeção visual, tratando automaticamente as restrições de tamanho para a janela de contexto do modelo.

    O prompt de sistema do agente incorpora conhecimento de domínio sobre convenções de JSON Schema e requisitos da configuração do IDP Accelerator. O agente é instruído a:

    • Amostrar documentos estrategicamente, parando cedo se já tiver cobertura suficiente.
    • Gerar JSON Schemas com metadados adequados, definições de tipo e descrições.
    • Incluir anotações específicas do IDP Accelerator como x-aws-idp-document-type e x-aws-idp-evaluation-method. O campo x-aws-idp-evaluation-method é utilizado pela extensão de avaliação baseada no Stickler.
    • Criar definições reutilizáveis ($defs) para estruturas comuns como endereços, itens de linha e informações fiscais.
    • Aplicar métodos de avaliação adequados conforme o tipo de campo: EXACT para strings, NUMERIC_EXACT para números e LLM para objetos complexos ou aninhados.

    Os agentes rodam em paralelo, então não é necessário esperar que um cluster termine para o próximo começar.

    Análise e reflexão dos schemas

    Após cada agente gerar seu schema de forma independente, uma etapa de análise avalia a diferenciação entre os resultados. Ela verifica se os agrupamentos descobertos estão bem separados ou se há sobreposições, e se os schemas gerados são completos e consistentes. O sistema identifica redundâncias ou duplicações entre tipos de documentos e apresenta recomendações concretas, como mesclar clusters ou refinar definições de campos. O resultado final é um relatório de qualidade com uma visão geral legível das classes identificadas, visível nos detalhes do job de descoberta no IDP Accelerator.

    Como executar a descoberta multi-documento

    Passo 1: Criar uma nova configuração

    Acesse a seção de Configuração no console do IDP Accelerator e selecione Visualizar/Editar Configuração. Escolha Schema de Documento > Limpar Tudo para criar uma configuração vazia. Em seguida, selecione Salvar como Versão, forneça um nome descritivo e confirme.

    Passo 2: Executar a descoberta multi-documento

    Com a configuração criada, acesse a seção de Descoberta e selecione a opção Múltiplos Documentos. Escolha a versão de configuração recém-criada e configure a fonte de documentos: selecione Caminho S3 ou Upload Zip, escolha o bucket de origem e especifique o prefixo S3 onde os documentos estão armazenados. Os documentos precisam estar em um dos buckets existentes do IDP Accelerator (Discovery Bucket, Test Bucket ou Input Bucket) para usar a opção de bucket de origem. Clique em Iniciar Descoberta para acionar a máquina de estados.

    Passo 3: Monitorar o job e visualizar os resultados

    Uma nova entrada aparecerá na tabela de jobs de Descoberta Multi-Documento, mostrando o status de execução, a etapa atual e metadados. Após a conclusão, acesse os detalhes do job para visualizar o Relatório de Qualidade. As classes descobertas e seus schemas JSON são automaticamente integrados ao arquivo de configuração.

    Boas práticas para melhores resultados

    Antes de executar o job de descoberta multi-documento em larga escala, vale considerar algumas recomendações:

    • Como o workflow processa apenas a primeira página de cada PDF, certifique-se de que os arquivos de entrada sejam documentos individuais. Pacotes com múltiplos documentos ainda não são suportados.
    • Após obter os resultados iniciais, revise o relatório de qualidade com cuidado para identificar problemas como clusters sobrepostos ou distribuições desiguais de documentos antes de finalizar os schemas.
    • Se a qualidade dos schemas for inconsistente entre clusters, verifique se a coleção tem uma distribuição muito desigual de tipos de documentos. Executar o job em um subconjunto mais balanceado pode ajudar o agente a produzir clusters e schemas mais confiáveis.

    Próximos passos após a descoberta

    O que fazer depois depende do que o workflow encontrou nos documentos:

    • Schemas limpos e baixa sobreposição no relatório: o caminho está livre para executar o IDP em escala. Os schemas já estão automaticamente adicionados ao campo de classes do arquivo de configuração do IDP Accelerator.
    • Relatório indicou clusters sobrepostos: revise as recomendações e use-as para refinar os schemas gerados, o que pode incluir mesclar schemas similares em uma única classe ou ajustar definições de campos para reduzir sobreposição.
    • Qualidade inconsistente entre clusters: verifique a distribuição dos tipos de documentos na coleção e considere executar o job em um subconjunto mais balanceado.

    Conclusão

    A funcionalidade de descoberta multi-documento resolve um desafio clássico no processamento de documentos: você precisa de schemas para processar documentos, mas precisa processar documentos para construir schemas. A solução combina embeddings visuais, agrupamento automático e geração agêntica de schemas com LLMs multimodais, transformando uma coleção opaca de documentos desconhecidos em classes e schemas estruturados, prontos para revisão humana.

    Quem quiser experimentar ou contribuir com a solução pode acessar o repositório GitHub do IDP Accelerator para abrir issues ou pull requests.

    Fonte

    Automate schema generation for intelligent document processing (https://aws.amazon.com/blogs/machine-learning/automate-schema-generation-for-intelligent-document-processing/)