Blog

  • Execute IDEs Interativos no Amazon EKS com SageMaker AI para Turbinar seus Fluxos de IA

    O problema: IDEs fora do cluster

    Quem trabalha com fluxos de Inteligência Artificial no Amazon Elastic Kubernetes Service (EKS) conhece bem o atrito: os cientistas de dados precisam de ambientes interativos como JupyterLab e Code Editor, mas rodar esses ambientes geralmente significa sair do cluster onde os pipelines vivem. Isso implica migrar para um JupyterHub dedicado ou trabalhar em um laptop local — e, com isso, perder acesso aos nós de GPU, ao armazenamento compartilhado e às roles do Gerenciamento de Identidade e Acesso da AWS (IAM) que os pipelines dependem.

    Para fechar essa lacuna, a Amazon SageMaker AI lançou o SageMaker AI Spaces add-on para Amazon EKS. Ele permite rodar ambientes gerenciados de JupyterLab e Code Editor diretamente no cluster que a equipe já opera. Configurar um JupyterHub standalone com acesso a GPU, armazenamento e autenticação costuma levar de 3 a 5 dias para um time de plataforma. Com o add-on, um cientista de dados consegue subir um Space completamente configurado em cerca de 5 minutos.

    Visão geral da solução

    A solução opera em um único cluster EKS, organizada em três camadas:

    Consolidar cargas de trabalho interativas e de treinamento em um único cluster mantém os nós de GPU ocupados entre jobs. Segundo a AWS, isso pode elevar a utilização de GPU em até 30% em comparação com uma frota dedicada de notebooks, além de evitar o custo de um ambiente GPU sempre ligado — que pode chegar a milhares de dólares por mês.

    Pré-requisitos

    Para seguir o passo a passo, são necessários: uma conta AWS com a Interface de Linha de Comando da AWS (AWS CLI) 2.x ou superior configurada para a região alvo, kubectl 1.30 ou superior e Helm v3. Também é preciso ter uma zona hospedada pública no Route 53 para um domínio próprio (referenciado como <YOUR_DOMAIN> ao longo do guia) e permissões IAM para criar roles, políticas, add-ons EKS, entradas de acesso, associações de Pod Identity, certificados ACM e chaves KMS. O add-on Spaces deve ser a versão 0.1.4 ou superior, pois versões anteriores suportavam apenas o Amazon SageMaker HyperPod.

    Atenção aos custos: este guia cria recursos que geram cobranças na AWS: um ALB voltado para a internet, volumes EBS e um cluster EKS. O nível avançado do SSM (Systems Manager) adiciona aproximadamente US$ 0,00695/hora por pod de Space. Siga a seção de limpeza ao finalizar.

    Criando o cluster EKS

    A criação do cluster segue o guia de introdução ao EKS padrão, mas com quatro requisitos específicos para o Spaces. O EKS Auto Mode deve estar desabilitado, pois o add-on exige nós EC2 clássicos no Kubernetes 1.30 ou superior. É preciso usar uma Nuvem Privada Virtual (VPC) com sub-redes públicas e privadas em pelo menos duas Zonas de Disponibilidade, com um gateway NAT servindo as sub-redes privadas, e o acesso ao endpoint do cluster deve ser configurado como público e privado.

    Durante a criação, os seguintes add-ons devem ser adicionados: EKS Pod Identity Agent, Amazon EBS CSI Driver, Cert Manager e External DNS. O Amazon SageMaker Spaces e o AWS Load Balancer Controller são instalados em etapas posteriores. O grupo de nós gerenciado deve usar Amazon Linux 2023, instâncias m5.xlarge ou maiores, com 2 nós nas sub-redes privadas.

    Um passo frequentemente esquecido é a marcação (tagging) das sub-redes da VPC, necessária para que o AWS Load Balancer Controller possa descobri-las. Isso deve ser feito antes de instalar o add-on Spaces, caso contrário o controlador pode posicionar o ALB em sub-redes privadas, tornando os Spaces inacessíveis.

    export VPC_ID=$(aws eks describe-cluster \
      --name $CLUSTER_NAME --region $REGION \
      --query 'cluster.resourcesVpcConfig.vpcId' --output text)
    
    ALL_SUBNETS=$(aws ec2 describe-subnets --region $REGION \
      --filters "Name=vpc-id,Values=${VPC_ID}" \
      --query 'Subnets[*].SubnetId' --output text)
    
    aws ec2 create-tags --region $REGION --resources ${ALL_SUBNETS} \
      --tags Key=kubernetes.io/cluster/$CLUSTER_NAME,Value=shared
    
    PUBLIC_SUBNETS=$(aws ec2 describe-subnets --region $REGION \
      --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
      --query 'Subnets[*].SubnetId' --output text)
    
    aws ec2 create-tags --region $REGION --resources ${PUBLIC_SUBNETS} \
      --tags Key=kubernetes.io/role/elb,Value=1
    
    PRIVATE_SUBNETS=$(aws ec2 describe-subnets --region $REGION \
      --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=false" \
      --query 'Subnets[*].SubnetId' --output text)
    
    aws ec2 create-tags --region $REGION --resources ${PRIVATE_SUBNETS} \
      --tags Key=kubernetes.io/role/internal-elb,Value=1

    Configurando a base do ambiente

    Com o cluster em execução, o kubectl é apontado para ele e confirmado que os pods dos add-ons estão saudáveis. O External DNS precisa de permissões no Route 53 para gerenciar registros DNS. A role é criada com uma política de privilégio mínimo e vinculada via Pod Identity:

    aws iam create-role --role-name ExternalDNSRole \
      --assume-role-policy-document file://pod-identity-trust.json
    
    aws iam put-role-policy --role-name ExternalDNSRole \
      --policy-name ExternalDNSRoute53Policy \
      --policy-document '{
      "Version":"2012-10-17",
      "Statement":[
        {"Effect":"Allow","Action":["route53:ChangeResourceRecordSets"],
         "Resource":"arn:aws:route53:::hostedzone/*"},
        {"Effect":"Allow","Action":["route53:ListHostedZones","route53:ListResourceRecordSets","route53:ListTagsForResource"],
         "Resource":"*"}
      ]}'
    
    aws eks create-pod-identity-association \
      --cluster-name $CLUSTER_NAME --region $REGION \
      --namespace external-dns --service-account external-dns \
      --role-arn arn:aws:iam::${ACCOUNT_ID}:role/ExternalDNSRole
    
    kubectl rollout restart deployment -n external-dns external-dns

    Nota de segurança: o escopo de cada role de Pod Identity deve ser limitado às ações e recursos mínimos necessários. Prefira ARNs explícitos em vez de wildcards, e confirme que apenas a service account pretendida pode assumir a role.

    Instalando o AWS Load Balancer Controller

    O AWS Load Balancer Controller é responsável por provisionar o ALB que expõe a interface dos Spaces. A instalação é feita via Helm, após criar a política IAM, a role e a associação de Pod Identity:

    curl -sS -o /tmp/lbc-iam-policy.json \
      https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/main/docs/install/iam_policy.json
    
    aws iam create-policy --policy-name AWSLoadBalancerControllerIAMPolicy \
      --policy-document file:///tmp/lbc-iam-policy.json
    
    aws iam create-role --role-name AWSLoadBalancerControllerRole \
      --assume-role-policy-document file://pod-identity-trust.json
    
    aws iam attach-role-policy --role-name AWSLoadBalancerControllerRole \
      --policy-arn arn:aws:iam::${ACCOUNT_ID}:policy/AWSLoadBalancerControllerIAMPolicy
    
    aws eks create-pod-identity-association \
      --cluster-name $CLUSTER_NAME --region $REGION \
      --namespace kube-system --service-account aws-load-balancer-controller \
      --role-arn arn:aws:iam::${ACCOUNT_ID}:role/AWSLoadBalancerControllerRole
    
    helm repo add eks https://aws.github.io/eks-charts
    helm repo update eks
    
    helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
      -n kube-system \
      --set clusterName=$CLUSTER_NAME \
      --set serviceAccount.create=true \
      --set serviceAccount.name=aws-load-balancer-controller \
      --set region=$REGION \
      --set vpcId=$VPC_ID
    
    kubectl rollout status deployment -n kube-system aws-load-balancer-controller --timeout=180s

    Atenção: no chart v3.2 ou superior, o controlador falha se tentar detectar a VPC automaticamente via metadados EC2, que o EKS bloqueia para pods. Por isso, os parâmetros vpcId e region devem ser passados explicitamente.

    Criando o certificado, a chave KMS e configurando o SSM

    O add-on Spaces exige um certificado TLS, uma chave KMS para criptografia de JWT e configurações do SSM para acesso remoto. O certificado ACM deve cobrir o domínio raiz e um wildcard, usando validação DNS:

    CERT_ARN=$(aws acm request-certificate \
      --domain-name "<YOUR_DOMAIN>" \
      --subject-alternative-names "*<YOUR_DOMAIN>" \
      --validation-method DNS \
      --region $REGION \
      --query CertificateArn --output text)
    
    aws acm describe-certificate --certificate-arn "$CERT_ARN" \
      --region $REGION \
      --query 'Certificate.DomainValidationOptions[].ResourceRecord'

    Nota de segurança: a validação DNS verifica a propriedade do domínio e aciona a renovação automática do ACM. Os CNAMEs de validação devem permanecer no Route 53 — removê-los interrompe a renovação.

    Em seguida, cria-se a chave KMS para criptografia de JWT (o padrão da CLI já é simétrica ENCRYPT_DECRYPT):

    KMS_KEY_ARN=$(aws kms create-key --region $REGION \
      --description "SageMaker Spaces JWT encryption" \
      --query 'KeyMetadata.Arn' --output text)
    
    aws kms create-alias --region $REGION \
      --alias-name alias/sagemaker-spaces-jwt \
      --target-key-id "$KMS_KEY_ARN"

    Por fim, ativa-se o nível avançado de instâncias gerenciadas do SSM, necessário para que o túnel SSH-over-SSM do VS Code funcione (custo aproximado de US$ 0,00695/hora por pod de Space):

    aws ssm update-service-setting --region $REGION \
      --setting-id arn:aws:ssm:$REGION:${ACCOUNT_ID}:servicesetting/ssm/managed-instance/activation-tier \
      --setting-value advanced

    Instalando o add-on Spaces

    Antes de instalar o add-on, são criadas as roles IAM para o controlador do Spaces e para o middleware de autenticação. A role SSM managed-instance é usada por cada pod de Space na frota do SSM:

    aws iam create-role --role-name SageMakerSpacesSSMManagedNodeRole \
      --assume-role-policy-document '{
      "Version":"2012-10-17",
      "Statement":[{"Effect":"Allow","Principal":{"Service":"ssm.amazonaws.com"},"Action":"sts:AssumeRole"}]
    }'
    
    aws iam attach-role-policy --role-name SageMakerSpacesSSMManagedNodeRole \
      --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    A role do controlador Spaces precisa de permissões SSM, PassRole e KMS. Após criar o arquivo de política spaces-controller-policy.json com os valores corretos de <REGION>, <ACCOUNT_ID> e <KMS_KEY_ARN>, a role é criada e as service accounts são vinculadas via Pod Identity:

    aws iam create-role --role-name SageMakerSpacesControllerRole \
      --assume-role-policy-document file://pod-identity-trust.json
    
    aws iam put-role-policy --role-name SageMakerSpacesControllerRole \
      --policy-name SageMakerSpacesControllerPolicy \
      --policy-document file://spaces-controller-policy.json
    
    for SA in jupyter-k8s-controller-manager jupyter-k8s-authmiddleware; do
      aws eks create-pod-identity-association \
        --cluster-name $CLUSTER_NAME --region $REGION \
        --namespace jupyter-k8s-system --service-account $SA \
        --role-arn arn:aws:iam::${ACCOUNT_ID}:role/SageMakerSpacesControllerRole
    done

    Com as roles prontas, define-se o arquivo addon-config.yaml com o domínio, ARN do certificado, ARN da chave KMS e nome da role de nó gerenciado, e então instala-se o add-on:

    aws eks create-addon \
      --cluster-name $CLUSTER_NAME --region $REGION \
      --addon-name amazon-sagemaker-spaces \
      --configuration-values file://addon-config.yaml \
      --resolve-conflicts OVERWRITE

    O add-on leva cerca de três minutos para atingir o status ACTIVE. Quando pronto, o controlador, duas réplicas do middleware de autenticação e dois roteadores Traefik devem estar em execução no namespace jupyter-k8s-system.

    Concedendo acesso e criando o primeiro Space

    Com o add-on saudável, o acesso de usuário é concedido via entrada de acesso EKS com escopo para um único namespace. No console do EKS, navega-se até a aba Access do cluster e cria-se uma entrada de acesso vinculando o usuário ou role IAM à política AmazonSagemakerHyperpodSpacePolicy para o namespace padrão.

    Nota de segurança: prefira acesso com escopo de namespace em vez de políticas globais no cluster, para que os usuários não possam modificar recursos fora do seu namespace.

    Para criar o primeiro Space JupyterLab, define-se um arquivo workspace.yaml:

    apiVersion: workspace.jupyter.org/v1alpha1
    kind: Workspace
    metadata:
      name: my-space
      namespace: default
    spec:
      templateRef:
        name: sagemaker-jupyter-template
        namespace: jupyter-k8s-system
      appType: jupyterlab
      accessType: OwnerOnly
      accessStrategy:
        name: hyperpod-access-strategy
        namespace: jupyter-k8s-system
      image: public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
    kubectl apply -f workspace.yaml
    kubectl get workspace -n default -w

    A inicialização pela primeira vez leva cerca de cinco minutos, pois o cluster faz o pull da imagem SageMaker Distribution (aproximadamente 4 GB) e registra o pod no SSM.

    Acessando via browser e via VS Code

    Acesso pelo navegador

    O controlador de Spaces emite uma URL pré-assinada de curta duração com o token criptografado do usuário. Para gerar uma:

    kubectl create -f - -o yaml <<EOF
    apiVersion: connection.workspace.jupyter.org/v1alpha1
    kind: WorkspaceConnection
    metadata:
      namespace: default
      generateName: my-space-conn-
    spec:
      workspaceName: my-space
      workspaceConnectionType: web-ui
    EOF

    O campo status.workspaceConnectionUrl na resposta contém a URL para acessar o JupyterLab no browser.

    Nota de segurança: as URLs pré-assinadas carregam o JWT criptografado pelo KMS com expiração de 5 minutos, aplicada pelo campo exp. Esse valor não é configurável na versão atual do add-on. Não registre nem compartilhe essas URLs por canais não criptografados. Para acesso duradouro, use o VS Code remoto.

    Acesso via VS Code

    Para uma experiência de IDE local, o VS Code se conecta ao pod do Space por meio de um túnel SSM, sem necessidade de browser, domínio ou ALB. É preciso instalar o VS Code, a extensão AWS Toolkit e o plugin do Session Manager localmente.

    Para gerar a URL de conexão do VS Code, cria-se o mesmo recurso WorkspaceConnection, mas com workspaceConnectionType: vscode-remote. A resposta retorna um deep link vscode:// em vez de uma URL HTTPS. Ao colar esse link no browser, ele solicita a abertura no VS Code, e o AWS Toolkit estabelece um túnel SSH-over-SSM até o Space, com o VS Code se conectando ao sistema de arquivos remoto.

    Para configurações em sub-redes privadas e alternativas via SDK, a AWS disponibiliza a documentação sobre acesso remoto aos SageMaker AI Spaces.

    Autenticação corporativa com OIDC

    O acesso descrito até aqui usa usuários e roles IAM. Para permitir que a equipe faça login com credenciais corporativas, é possível registrar um provedor OpenID Connect (OIDC) no cluster e vincular o Controle de Acesso Baseado em Funções (RBAC) do Kubernetes aos grupos do provedor de identidade. O Kubernetes então autoriza as pessoas por associação a grupos, sem necessidade de um principal IAM por usuário.

    O projeto open source jupyter-deploy disponibiliza um template aws-eks-oidc que configura isso automaticamente. O Dex roda no cluster como provedor OIDC, o Amazon EKS confia nele como provedor de identidade, e um console web oferece gerenciamento self-service de workspaces para a equipe.

    O Amazon Cognito funciona por meio do conector genérico OIDC no Dex e requer dois mapeamentos de claims que o GitHub não exige. O EKS lê o nome de usuário do claim preferred_username, que o Cognito não emite — por isso é necessário mapeá-lo a partir do email. O Cognito também publica a associação a grupos como cognito:groups em vez de groups. Se o mapeamento de nome de usuário for omitido, as requisições chegam ao servidor de API sem usuário resolvível, e o console reporta uma sessão expirada em vez de um erro de autorização.

    O template vincula sua role RBAC a um grupo chamado <org>:<team>, portanto é necessário criar um grupo no Cognito com exatamente esse nome e adicionar os usuários a ele. A equipe então faz login pela página gerenciada do Cognito.

    Limpeza dos recursos

    Para evitar cobranças contínuas, os recursos devem ser removidos na ordem inversa:

    kubectl delete workspace my-space -n default
    
    aws eks delete-addon --cluster-name $CLUSTER_NAME --region $REGION \
      --addon-name amazon-sagemaker-spaces
    
    helm uninstall aws-load-balancer-controller -n kube-system
    
    for a in aws-ebs-csi-driver external-dns cert-manager eks-pod-identity-agent kube-proxy; do
      aws eks delete-addon --cluster-name $CLUSTER_NAME --region $REGION --addon-name $a
    done

    Também devem ser removidos: as roles IAM, políticas e associações de Pod Identity criadas (ExternalDNSRole, AWSLoadBalancerControllerRole, AWSLoadBalancerControllerIAMPolicy, SageMakerSpacesControllerRole, SageMakerSpacesSSMManagedNodeRole), o certificado ACM, a chave KMS (com agendamento mínimo de 7 dias para exclusão) e os registros no Route 53. O nível avançado do SSM deve ser revertido para evitar cobranças por instância em toda a conta:

    aws ssm update-service-setting --region $REGION \
      --setting-id arn:aws:ssm:$REGION:${ACCOUNT_ID}:servicesetting/ssm/managed-instance/activation-tier \
      --setting-value standard

    Por fim, o grupo de nós e o cluster EKS devem ser deletados, assim como a VPC, caso tenha sido criada especificamente para este guia.

    Conclusão

    O add-on SageMaker AI Spaces para Amazon EKS representa uma mudança significativa na forma como equipes de dados gerenciam seus ambientes de desenvolvimento. Ao consolidar IDEs interativos no mesmo cluster que já roda os pipelines, a AWS elimina a necessidade de gerenciar dois ambientes separados e reduz o tempo de configuração de dias para minutos. Para evoluir ainda mais a solução, a AWS sugere adicionar o AWS WAF, federar provedores de identidade adicionais, separar as roles IAM do controlador e do middleware de autenticação, ou definir cotas de recursos por namespace.

    Para abordagens relacionadas, vale conferir os artigos sobre IDEs interativos no SageMaker HyperPod e sobre aceleração de treinamento e inferência com SageMaker HyperPod e SageMaker Studio.

    Fonte

    Run interactive IDEs on Amazon EKS with SageMaker AI to power up your AI workflows (https://aws.amazon.com/blogs/machine-learning/run-interactive-ides-on-amazon-eks-with-sagemaker-ai-to-power-up-your-ai-workflows/)

  • AWS conclui auditoria PASF 2026 na região Europa (Londres)

    Renovação da acreditação PASF para dados policiais no Reino Unido

    A Amazon Web Services (AWS) concluiu com sucesso a renovação da sua acreditação junto ao programa Instalações Seguras Garantidas pela Polícia (PASF, do inglês Police-Assured Secure Facilities) para a região Europa (Londres). A confirmação foi emitida pelo Serviço Digital da Polícia (PDS, do inglês Police Digital Service) em 28 de maio de 2026.

    Essa renovação mantém a continuidade de uma acreditação que a AWS sustenta desde 2017 nessa região, demonstrando um histórico consistente de conformidade com os requisitos de segurança exigidos pelo setor de segurança pública do Reino Unido.

    O que é o PASF e por que ele importa

    O PASF é um processo de auditoria consolidado, utilizado pelas forças policiais do Reino Unido para verificar se instalações como data centers e outros ambientes que processam ou armazenam dados policiais atendem a padrões elevados de segurança. Trata-se de um mecanismo voltado especificamente para dados classificados como Official-Sensitive, categoria que engloba informações sensíveis relacionadas à atividade policial.

    Para ser acreditada, uma instalação precisa cumprir três etapas principais:

    • Atender a um conjunto de requisitos de controles de segurança;
    • Passar por uma inspeção presencial nas instalações;
    • Participar de uma entrevista de auditoria com representantes da instalação.

    Com a renovação confirmada, as organizações de segurança pública e as forças policiais do Reino Unido que utilizam a AWS podem continuar operando suas aplicações na região Europa (Londres) com a segurança de que o ambiente está em conformidade com as exigências do PASF.

    Como acessar a confirmação da acreditação

    A carta de confirmação da renovação está disponível no AWS Artifact, o repositório central da AWS para documentos de conformidade e relatórios de auditoria. Além disso, as forças policiais e organizações de segurança pública do Reino Unido também podem obter informações sobre o status de conformidade da AWS diretamente por meio do Serviço Digital da Polícia.

    Conformidade e programas de segurança da AWS

    Para quem quiser entender mais sobre os programas de conformidade e segurança mantidos pela AWS, a empresa disponibiliza uma visão geral completa na página de Programas de Conformidade da AWS. Lá é possível consultar as diversas certificações e acreditações que a AWS mantém em diferentes regiões e setores regulados ao redor do mundo.

    Essa renovação é um indicativo relevante para equipes de TI e compliance que atendem clientes ou projetos ligados à segurança pública britânica: a infraestrutura da AWS na região Europa (Londres) segue apta para hospedar cargas de trabalho que exigem o padrão PASF.

    Fonte

    AWS completes the 2026 Police-Assured Secure Facilities (PASF) audit in Europe (London) (https://aws.amazon.com/blogs/security/aws-completes-the-2026-police-assured-secure-facilities-pasf-audit-in-europe-london/)

  • Três novos modelos de IA chegam ao Amazon SageMaker JumpStart: cache semântico, raciocínio em código e OCR multilíngue

    Novos modelos ampliam o portfólio do SageMaker JumpStart

    A AWS anunciou a disponibilidade de três novos modelos de fundação no Amazon SageMaker JumpStart: o langcache-embed-v3-small (da Redis), o Mellum2-12B-A2.5B-Thinking (da JetBrains) e o LightOnOCR-2-1B (da LightOn). A adição reforça o catálogo de modelos prontos para implantação na plataforma, cobrindo três frentes bastante distintas: cache semântico, raciocínio focado em código e reconhecimento óptico de caracteres (OCR) em documentos.

    O que cada modelo faz

    langcache-embed-v3-small — cache semântico para aplicações LLM

    Desenvolvido pela Redis, o langcache-embed-v3-small foi criado especificamente para otimizar o cache semântico em aplicações que utilizam Modelos de Linguagem de Grande Escala (LLM). O modelo mapeia sentenças e parágrafos em um espaço vetorial denso, projetado para identificar consultas semanticamente equivalentes — mesmo que escritas de formas diferentes. Na prática, isso permite que o sistema reconheça perguntas parecidas e entregue respostas já armazenadas em cache, reduzindo chamadas redundantes ao LLM e acelerando o tempo de resposta em cargas de trabalho de inferência de alto volume.

    Mellum2-12B-A2.5B-Thinking — raciocínio e geração de código

    A JetBrains — conhecida pelo ecossistema de IDEs como IntelliJ e PyCharm — traz ao JumpStart o Mellum2-12B-A2.5B-Thinking, um modelo voltado para geração de código, depuração, raciocínio em múltiplas etapas e fluxos de trabalho de codificação agêntica. Sua arquitetura utiliza Mistura de Especialistas (MoE — Mixture of Experts) com 64 especialistas, sendo 8 ativados por token. Isso significa que, de seus 12 bilhões de parâmetros totais, apenas 2,5 bilhões são ativados por passagem direta, tornando a inferência mais eficiente. O modelo suporta um contexto de 131.072 tokens e emite rastreamentos explícitos de raciocínio em cadeia de pensamento (CoT — Chain of Thought) antes de apresentar a resposta final — característica útil para cenários de roteamento, Geração Aumentada por Recuperação (RAG — Retrieval-Augmented Generation), sub-agentes e implantações privadas.

    LightOnOCR-2-1B — OCR multilíngue ponta a ponta

    Da LightOn, o LightOnOCR-2-1B é um modelo de visão e linguagem com 1 bilhão de parâmetros que realiza a conversão de documentos — PDFs, digitalizações e imagens — diretamente em texto limpo e ordenado, sem depender de pipelines tradicionais de OCR, que costumam ser frágeis e difíceis de manter. O modelo suporta múltiplos idiomas e alcança desempenho de ponta no benchmark OlmOCR-Bench, sendo aproximadamente 9 vezes menor e significativamente mais rápido do que abordagens concorrentes.

    Como acessar os modelos no SageMaker JumpStart

    Com o SageMaker JumpStart, a AWS permite que os clientes implantem qualquer um desses modelos com poucos cliques, diretamente pelo console do SageMaker ou via SDK Python do SageMaker, dentro de sua própria conta AWS. Para mais detalhes sobre como implantar e utilizar modelos de fundação na plataforma, a AWS disponibiliza a documentação oficial do Amazon SageMaker JumpStart.

    Fonte

    langcache-embed-v3-small, Mellum2-12B-A2.5B-Thinking, and LightOnOCR-2-1B models now available on Amazon SageMaker JumpStart (https://aws.amazon.com/about-aws/whats-new/2026/01/langcache-embed-v3-small-mellum2-12B-A2.5B-thinking-lightOnOCR-2-1B-on-sagemaker-jumpstart/)

  • Modelos FLUX.2-small-decoder e gemma-4-12B-it chegam ao Amazon SageMaker JumpStart

    Dois novos modelos disponíveis no SageMaker JumpStart

    A AWS anunciou a chegada de dois novos modelos de fundação ao Amazon SageMaker JumpStart: o FLUX.2-small-decoder, desenvolvido pela Black Forest Labs, e o gemma-4-12B-it, do Google. A adição amplia o portfólio de modelos prontos para implantação disponíveis aos clientes AWS, cobrindo desde geração eficiente de imagens até compreensão multimodal avançada.

    FLUX.2-small-decoder: geração de imagens mais rápida e com menos memória

    O FLUX.2-small-decoder é um decoder VAE destilado, projetado para funcionar como substituto direto (drop-in replacement) do decoder padrão nas pipelines de geração de imagens FLUX.2. Na prática, ele entrega:

    • Velocidade de decodificação aproximadamente 1,4× mais rápida
    • Consumo de VRAM (memória de vídeo) 1,4× menor
    • Perda de qualidade mínima ou inexistente

    Os ganhos são ainda mais expressivos em resoluções mais altas, já que o decoder precisa processar um volume maior de pixels. Isso o torna uma escolha interessante para cargas de trabalho de geração de imagens em escala de produção, onde eficiência e custo operacional fazem diferença real.

    gemma-4-12B-it: multimodalidade compacta e poderosa

    Já o gemma-4-12B-it se destaca pela capacidade de compreensão multimodal unificada, processando entradas de texto, imagem e áudio em um único modelo. Alguns pontos técnicos relevantes:

    • Arquitetura encoder-free: todas as modalidades fluem diretamente para um único transformer decoder, sem encoders separados por tipo de entrada
    • Desempenho próximo ao modelo 26B MoE (Mistura de Especialistas) do Google, com menos da metade do consumo de memória
    • Compatível com apenas 16 GB de RAM, facilitando implantações corporativas
    • Suporte nativo a function calling e fluxos de trabalho agênticos

    Essa combinação de leveza e capacidade torna o gemma-4-12B-it uma opção atrativa para equipes que precisam de experiências multimodais e agênticas sem exigir infraestrutura de alto custo.

    Como implantar pelo SageMaker JumpStart

    Com o SageMaker JumpStart, a implantação de qualquer um desses modelos pode ser feita com poucos cliques diretamente pelo console do SageMaker, ou via SDK Python do SageMaker para quem prefere automação. Basta acessar o catálogo de modelos do JumpStart na conta AWS e selecionar o modelo desejado.

    Para mais detalhes sobre como implantar e utilizar modelos de fundação no SageMaker JumpStart, a AWS disponibiliza a documentação oficial do Amazon SageMaker JumpStart.

    Fonte

    FLUX.2-small-decoder and gemma-4-12B-it models now available on Amazon SageMaker JumpStart (https://aws.amazon.com/about-aws/whats-new/2026/01/flux.2-small-decoder-gemma-4-12B-it-on-sagemaker-jumpstart/)

  • GLM-5.2 FP8, NVIDIA Nemotron-Nano-12B-v2 e GLM-OCR chegam ao Amazon SageMaker JumpStart

    Novos modelos de fundação disponíveis no SageMaker JumpStart

    A AWS anunciou a disponibilidade de três novos modelos de fundação no Amazon SageMaker JumpStart: o GLM-5.2 FP8 e o GLM-OCR, ambos da Z.ai, e o NVIDIA-Nemotron-Nano-12B-v2, da NVIDIA. A chegada desses modelos amplia o portfólio de opções disponíveis para clientes que desenvolvem soluções de inteligência artificial na infraestrutura da AWS.

    Cada um dos três modelos traz um conjunto de capacidades especializadas, cobrindo desde tarefas agênticas de longo horizonte até compreensão avançada de documentos. Veja o que cada um oferece.

    GLM-5.2 FP8: foco em engenharia agêntica e contexto de longo horizonte

    O GLM-5.2 FP8 foi desenvolvido para tarefas de longo horizonte e fluxos de trabalho de engenharia agêntica — incluindo o ciclo completo de desenvolvimento de software, desde a definição de requisitos até o deploy. Em relação ao seu antecessor, o GLM-5.1, o modelo representa um salto significativo nesse tipo de tarefa.

    Um dos destaques é a janela de contexto de 1 milhão de tokens, disponível pela primeira vez de forma realmente utilizável. Isso permite que o modelo processe contextos de nível de projeto, execute tarefas de longa duração com consistência, siga padrões de engenharia e conclua fluxos de desenvolvimento completos em uma única execução.

    NVIDIA-Nemotron-Nano-12B-v2: eficiência e raciocínio em um modelo compacto

    O NVIDIA-Nemotron-Nano-12B-v2 se destaca pela combinação entre raciocínio unificado e alto throughput de inferência — características que o tornam adequado para aplicações empresariais que exigem tanto precisão quanto eficiência operacional.

    O modelo utiliza uma arquitetura híbrida que combina Mamba-2 e Transformer, com janela de contexto de 128 mil tokens. Antes de apresentar a resposta final, ele gera traços de raciocínio intermediários. Com apenas 12 bilhões de parâmetros, o Nemotron-Nano-12B-v2 entrega acurácia comparável ou superior à de modelos abertos de referência, com throughput de inferência até 6 vezes maior.

    GLM-OCR: compreensão de documentos complexos em tempo real

    O GLM-OCR foi projetado para entender documentos do mundo real com alta precisão e baixa latência. O modelo lida com uma variedade ampla de materiais: PDFs digitalizados, anotações manuscritas, artigos acadêmicos com fórmulas, tabelas multicolunares, documentação de código e textos multilíngues.

    Com apenas 0,9 bilhão de parâmetros, esse modelo multimodal reconstrói estruturas, tabelas e fórmulas em formatos limpos como Markdown, JSON ou LaTeX. Sua latência é baixa o suficiente para uso em serviços em tempo real e dispositivos de borda — o que o torna especialmente útil em pipelines de processamento em larga escala e extração de notas fiscais.

    Como começar a usar no SageMaker JumpStart

    Com o SageMaker JumpStart, qualquer um desses modelos pode ser implantado com poucos cliques, diretamente pelo catálogo de modelos no console do SageMaker ou via SDK Python do SageMaker. Para mais detalhes sobre como implantar e utilizar modelos de fundação no SageMaker JumpStart, consulte a documentação oficial do Amazon SageMaker JumpStart.

    Fonte

    GLM-5.2 FP8, NVIDIA-Nemotron-Nano-12B-v2 and GLM-OCR models now available on Amazon SageMaker JumpStart (https://aws.amazon.com/about-aws/whats-new/2026/01/glm-5.2-fp8-nemotron-nano-12b-v2-glm-ocr-on-sagemaker-jumpstart/)

  • Relatório AWS CyberVadis 2026 já está disponível para due diligence de fornecedores terceiros

    AWS conclui avaliação CyberVadis 2026 com pontuação máxima

    A Amazon Web Services (AWS) concluiu sua avaliação anual de segurança pela CyberVadis e obteve a pontuação máxima — classificação Mature (Maduro) — em todas as áreas avaliadas. O relatório e o scorecard do AWS CyberVadis 2026 já estão disponíveis para que clientes possam utilizá-los em seus processos de due diligence de fornecedores terceiros.

    Por que isso importa para clientes AWS?

    Com a adoção crescente de serviços de nuvem em múltiplos setores e indústrias, a AWS passou a ser um componente crítico nos ambientes de terceiros de muitas organizações. Clientes em setores regulados — como o financeiro — precisam atender a padrões rigorosos impostos por reguladores e auditores no que diz respeito à due diligence efetiva sobre seus fornecedores e parceiros tecnológicos.

    Para atender a essa demanda, muitas empresas recorrem a serviços de gestão de risco de terceiros, como o CyberVadis, a fim de gerenciar melhor os riscos do seu ecossistema de parceiros e aumentar a eficiência operacional. O relatório AWS CyberVadis 2026 reduz diretamente a carga de trabalho dessas equipes, eliminando a necessidade de solicitações manuais de acesso para avaliação anual da AWS.

    O que é a avaliação CyberVadis?

    O CyberVadis é um processo abrangente de avaliação de risco de terceiros que combina a velocidade e escalabilidade da automação com a validação realizada por analistas especializados. Essa abordagem dinâmica substitui as planilhas estáticas tradicionais, integrando as respostas da AWS com análises e modelos sofisticados de risco para entregar uma visão aprofundada da postura de segurança da organização avaliada.

    A metodologia de avaliação do CyberVadis cobre 20 tópicos que abrangem todo o ciclo de vida da cibersegurança, distribuídos em quatro fases:

    • Identify (Identificar)
    • Protect (Proteger)
    • Detect (Detectar)
    • React (Reagir)

    Entre os tópicos avaliados estão Privacidade de Dados, Gestão de Acesso e Segurança de Infraestrutura. Os critérios de avaliação são baseados em padrões internacionais de segurança da informação, incluindo ISO 2700x, NIST Cybersecurity Framework, Cybersecurity for ICS, PCI DSS, NIS2 e GDPR.

    Como acessar o relatório?

    Os clientes AWS podem utilizar os resultados do CyberVadis para mapear a avaliação da AWS em relação aos frameworks e padrões de mercado mais utilizados, obtendo visibilidade imediata sobre a cobertura de controles de segurança.

    O relatório completo da Avaliação AWS 2026 pode ser obtido de duas formas:

    Para conhecer outros programas de conformidade e segurança da AWS, acesse a página de AWS Compliance Programs.

    Fonte

    2026 AWS CyberVadis report now available for due diligence on third-party suppliers (https://aws.amazon.com/blogs/security/2026-aws-cybervadis-report-now-available-for-due-diligence-on-third-party-suppliers/)

  • CloudTroop Weekly #024 — 2026-w32





    CloudTroop Weekly #024 — 2026-w32

    9 de agosto de 2026

    Resumo da Semana

    A semana foi dominada por segurança em dois eixos: infraestrutura tradicional e workloads de IA. No lado clássico, S3, IAM Identity Center e Network Firewall ganharam controles mais robustos e simples de operar. No lado de IA, a AWS entregou peças que faltavam para produção responsável: AgentCore com limites financeiros e rate limiting para agentes autônomos, Bedrock Guardrails integrado ao Security Lake para visibilidade em SOC, e DynamoDB com busca vetorial nativa eliminando um banco inteiro da arquitetura. O recado é claro: IA agêntica em produção exige governança na camada de infraestrutura, não só no código.

    O que muda na prática

    • Agentes autônomos na AWS agora podem ter limites de custo acumulado e sequenciamento de ações controlados via AgentCore, sem alterar uma linha de código da aplicação.
    • Certificados TLS com validade máxima de 47 dias chegam em 2029: quem ainda renova manualmente precisa planejar a migração para ACME agora, antes que vire incidente.
    • DynamoDB com busca vetorial em GA muda o critério de escolha arquitetural para RAG: manter um banco vetorial separado passa a ser custo e complexidade desnecessários na maioria dos casos.

    Ações da semana

    • Abra o Security Hub e verifique se a categoria de segurança de cadeia de suprimentos (Supply Chain) já está disponível no seu ambiente; se sim, habilite e revise os findings antes que dependências maliciosas passem despercebidas no seu pipeline.
    • Mapeie quais aplicações usam certificados TLS gerenciados manualmente no ACM e abra um card no backlog para avaliar a adoção do protocolo ACME, priorizando ambientes com maior volume de certificados.

    Top 10 da Semana

    1

    Protocolo ACME chega ao ACM: automatize certificados antes que virem problema

    Com validade máxima de certificados caindo para 47 dias em 2029, automação via ACME deixa de ser opcional e passa a ser requisito operacional urgente.

    Para quem: Engenheiros de plataforma, SREs e equipes de segurança que gerenciam TLS em escala.

    Segurança, PKI

    2

    Guia AWS: detecte e corrija permissões excessivas no S3 em 5 fases

    Buckets S3 mal configurados continuam sendo a principal causa de exposição de dados na AWS, e este fluxo cobre ambientes single e multi-account com monitoramento contínuo.

    Para quem: Arquitetos de segurança e engenheiros cloud responsáveis por governança de dados.

    Segurança, S3

    3

    DynamoDB ganha busca vetorial nativa em GA: RAG sem banco separado

    Elimina a necessidade de manter um banco vetorial dedicado para casos de uso de RAG e recomendação, reduzindo complexidade arquitetural e custo operacional.

    Para quem: Arquitetos de soluções e engenheiros que constroem aplicações de IA generativa com necessidade de baixa latência.

    IA, Banco de Dados

    4

    AgentCore: políticas temporais e rate limiting controlam agentes de IA em produção

    Pela primeira vez é possível aplicar limites financeiros acumulados e sequenciamento de ações em agentes autônomos na camada de infraestrutura, sem alterar código.

    Para quem: Engenheiros de plataforma de IA e arquitetos que colocam agentes autônomos em produção.

    IA Agêntica, Segurança

    5

    AWS Continuum integra segurança ao Claude Code, Codex e Kiro em preview

    Colapsa detecção, priorização e correção de vulnerabilidades em um único fluxo dentro do ambiente de desenvolvimento, reduzindo o tempo entre descoberta e remediação.

    Para quem: Desenvolvedores, engenheiros de segurança e líderes técnicos que adotam assistentes de código com IA.

    DevSecOps, IA

    6

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

    Ataques via dependências maliciosas estão em alta e agora é possível detectá-los e bloqueá-los antes que entrem nas aplicações, diretamente no Security Hub.

    Para quem: Equipes de AppSec, DevSecOps e engenheiros responsáveis por pipelines de CI/CD.

    Segurança, Supply Chain

    7

    IAM Identity Center habilita multi-Region com um clique para novas instâncias

    Elimina etapas manuais de configuração KMS e aumenta a resiliência de acesso em falhas regionais, impactando diretamente a continuidade operacional de toda a organização.

    Para quem: Administradores de identidade e arquitetos de segurança em ambientes multi-account e multi-Region.

    IAM, Resiliência

    8

    Bedrock Guardrails integrado ao Security Lake via OCSF para correlação de ameaças de IA

    Permite correlacionar violações de guardrails de IA com eventos de identidade e rede em uma única camada de consulta, fechando um gap crítico de visibilidade em SOCs.

    Para quem: Analistas de segurança, engenheiros de SOC e arquitetos que operam workloads de IA generativa.

    IA, Segurança, SIEM

    9

    Guia AWS de Salvaguardas Técnicas HIPAA: referência para workloads de saúde

    Cobre as mudanças propostas pelo NPRM de 2025 e serve como referência prática para adequação de ambientes com ePHI às novas exigências regulatórias.

    Para quem: Arquitetos de nuvem, engenheiros de segurança e equipes de compliance em organizações do setor de saúde.

    Compliance, Saúde

    10

    AWS Network Firewall ganha proxy explícito nativo em preview público

    Unifica políticas de segurança entre proxy e firewall transparente em um único produto, eliminando a necessidade de ferramentas separadas para inspeção de tráfego HTTP/S.

    Para quem: Engenheiros de rede e arquitetos de segurança que gerenciam perímetros de saída em VPCs.

    Rede, Segurança


  • Amazon Cognito agora disponível como skill no Agent Toolkit for AWS

    O que foi anunciado

    A AWS anunciou que o Amazon Cognito está agora disponível como uma skill central — identificada como aws-auth — dentro do Agent Toolkit for AWS. Com essa integração, agentes de codificação baseados em Inteligência Artificial (IA) passam a ter capacidade nativa de configurar, proteger e depurar o Amazon Cognito seguindo fluxos de trabalho alinhados às boas práticas da AWS.

    Na prática, isso significa que desenvolvedores podem implementar fluxos seguros de autenticação para usuários, agentes de IA e microsserviços com muito mais agilidade, delegando parte do trabalho repetitivo e técnico aos próprios agentes.

    O que a skill aws-auth cobre

    A skill aws-auth do Amazon Cognito abrange um conjunto abrangente de funcionalidades de autenticação e autorização, incluindo:

    • Configuração de user pools (grupos de usuários) e clientes de aplicação
    • Login gerenciado e fluxos OAuth 2.0
    • Gerenciamento de tokens e autorizadores JWT (JSON Web Token)
    • Cadastro de passkeys e WebAuthn
    • Proteção contra ameaças
    • Conexão de gatilhos Lambda
    • Configuração de identity pools (grupos de identidade)

    É uma cobertura bastante ampla, indo desde o básico de autenticação até recursos mais avançados de segurança e federação de identidade.

    Integração com o AWS MCP Server e uso standalone

    Quando utilizada em conjunto com o AWS MCP Server, a skill permite que os agentes executem comandos da Interface de Linha de Comando (CLI) da AWS com guardrails baseados em IAM (Gerenciamento de Identidade e Acesso) e registro de auditoria via CloudTrail. Isso garante rastreabilidade e controle sobre as ações executadas pelos agentes.

    Para quem prefere uma abordagem mais direta, a skill também funciona de forma independente, apenas via CLI da AWS, sem necessidade de integração com o servidor MCP.

    Como começar

    A skill aws-auth do Amazon Cognito já está disponível como parte do Agent Toolkit for AWS. Para quem quiser explorar o recurso, a AWS disponibiliza dois pontos de entrada:

    Para aprofundamento no Amazon Cognito em si, a referência recomendada é o Guia do Desenvolvedor do Amazon Cognito.

    Por que isso importa

    Autenticação e autorização são etapas críticas em qualquer aplicação, e também são áreas onde erros de configuração costumam gerar vulnerabilidades sérias. Ao trazer o Cognito como uma skill nativa para agentes de IA, a AWS está apostando que parte dessas configurações pode ser feita de forma mais consistente e segura quando guiada por fluxos de trabalho pré-validados — reduzindo a margem de erro humano e acelerando o desenvolvimento.

    Fonte

    Amazon Cognito now available as a skill in the Agent Toolkit for AWS (https://aws.amazon.com/about-aws/whats-new/2026/08/aws-auth-agent-skill/)

  • Uma Década de Identidade Corporativa na Nuvem com o AWS Managed Microsoft AD

    Dez anos resolvendo um problema real de identidade

    Em 2015, a AWS lançou o AWS Directory Service para Microsoft Active Directory, entregando o Active Directory (AD) da Microsoft como um serviço totalmente gerenciado na nuvem. A promessa era direta: as equipes deveriam gastar menos tempo administrando infraestrutura de diretório e mais tempo focadas em suas aplicações e negócios.

    Uma década depois, o AWS Managed Microsoft AD se consolidou como a espinha dorsal de identidade de milhares de empresas ao redor do mundo. O que começou como uma solução para rodar workloads Windows na nuvem hoje sustenta autenticação no SQL Server, desktops virtuais com o Amazon WorkSpaces e compartilhamentos de arquivos com o Amazon FSx para Windows File Server em escala global.

    O contexto do problema original era bem claro: ao migrar workloads Windows para a Amazon Web Services (AWS), as empresas dependiam do AD da Microsoft, que segundo algumas estimativas detinha 90% do mercado de serviços de diretório nas empresas Fortune 1000. Rodar SharePoint, SQL Server, aplicações .NET ou praticamente qualquer workload Windows significava rodar AD — e rodar AD bem exigia planejamento de capacidade, alta disponibilidade entre múltiplos sites, patching contínuo, backups, recuperação de desastres e expertise cada vez mais difícil de encontrar.

    A resposta da AWS foi construir um serviço que entregasse o AD real da Microsoft — não uma alternativa compatível, mas o produto genuíno — como serviço gerenciado. A implantação dos domain controllers, a alta disponibilidade multi-AZ, os backups automatizados, o patching e o monitoramento passaram a ser responsabilidade da AWS. O cliente provisiona um diretório em 25 a 30 minutos e começa a usar imediatamente.

    Uma década de evolução: os marcos principais

    Ao longo de dez anos, o serviço evoluiu substancialmente em resposta ao feedback dos clientes. Veja os principais marcos:

    • 2015: Lançamento do AWS Managed Microsoft AD (Enterprise Edition) em cinco regiões AWS, baseado no Windows Server 2012 R2. Suporte a trust relationships com AD on-premises, domain join para instâncias do Amazon Elastic Compute Cloud (Amazon EC2) e integração com o Amazon WorkSpaces.
    • 2017: Introdução da Standard Edition, otimizada para pequenas e médias empresas, com uma opção mais econômica para deployments de resource forest e workloads menores.
    • 2018: Suporte a extensões de schema, permitindo que clientes estendam o schema do diretório para aplicações que precisam de atributos personalizados. Também foi adicionado suporte a Contas de Serviço Gerenciadas por Grupo (gMSA) para containers Windows.
    • 2019: Lançamento da replicação multi-região para a Enterprise Edition, permitindo replicar o diretório automaticamente entre regiões AWS para melhor desempenho e recuperação de desastres. Adicionado também o compartilhamento de diretório entre contas AWS e integração com o AWS Organizations.
    • 2020: Introdução de configurações granulares de diretório para segurança e conformidade, permitindo configurar canais seguros para protocolos e cifras. O serviço passou a ser elegível para HIPAA, incluído no escopo do PCI DSS e com autorização FedRAMP.
    • 2021: Adição de métricas do CloudWatch para domain controllers, ajudando na otimização de decisões de escalonamento. Lançamento da integração com o AWS Transfer Family para autenticação SFTP/FTPS/FTP.
    • 2022: Atualização para Windows Server 2019 disponível, com atualizações iniciadas pelo cliente e migração automática para todos os diretórios a partir de 2023.
    • 2023: Lançamento do AWS Private CA Connector para Active Directory, permitindo substituir autoridades certificadoras corporativas autogerenciadas pelo AWS Private CA para enrollment automático de certificados em objetos ingressados no domínio, sem agentes locais ou servidores proxy.
    • 2024: Lançamento de APIs CRUD para usuários e grupos, permitindo que administradores de TI gerenciem usuários e grupos do AD diretamente pelo Console de Gerenciamento AWS, pela Interface de Linha de Comando AWS (AWS CLI) e por APIs, sem precisar implantar bastion hosts ou abrir portas de rede.
    • 2025: Disponibilidade geral do AWS Managed Microsoft AD (Hybrid Edition), permitindo estender um domínio AD existente para a AWS mantendo o controle administrativo. Introdução de upgrades de edição self-service via API UpdateDirectorySetup, eliminando a necessidade de abrir tickets de suporte ao escalar da Standard para a Enterprise Edition.

    Identidade como base para mais de 20 serviços AWS

    Ao longo da última década, mais de 20 serviços AWS adicionaram integração nativa com o AWS Managed Microsoft AD, tornando-o um componente fundamental para os workloads corporativos na nuvem.

    Serviços de banco de dados

    Para muitos clientes, a autenticação em banco de dados é um dos principais motivadores para adotar o AWS Managed Microsoft AD. Ao combinar o Amazon Relational Database Service (Amazon RDS) para SQL Server com o serviço de diretório gerenciado, as equipes ganham os benefícios de ambos os serviços totalmente gerenciados: desenvolvedores e DBAs usam suas credenciais AD existentes para acessar bancos de dados SQL Server, sem precisar gerenciar contas separadas. Além do SQL Server, a autenticação Windows está disponível para Amazon RDS para Oracle, PostgreSQL, MySQL e DB2, além de Amazon Aurora MySQL e Aurora PostgreSQL.

    Serviços de armazenamento de arquivos

    O Amazon FSx para Windows File Server oferece compartilhamentos de arquivos Windows totalmente gerenciados com integração nativa ao AWS Managed Microsoft AD. Clientes usam usuários e grupos do AD para controlar o acesso a file shares, aplicar ACLs do Windows e usar recursos como namespaces DFS, com a mesma experiência de gerenciamento que já conhecem on-premises.

    O AWS Storage Gateway suporta autenticação AD para file shares SMB, habilitando arquiteturas de armazenamento híbrido. Já o AWS Transfer Family adicionou integração com AD em 2021, permitindo autenticar usuários SFTP, FTPS e FTP contra o AWS Managed Microsoft AD sem alterar as credenciais dos usuários finais.

    Computação de usuário final

    Os serviços de computação para usuário final foram dos primeiros a integrar com o AWS Managed Microsoft AD:

    Segurança e identidade

    O AWS IAM Identity Center (anteriormente AWS Single Sign-On) usa o AWS Managed Microsoft AD como fonte de identidade, sincronizando usuários e grupos para fornecer acesso single sign-on em contas e aplicações AWS. O AWS Client VPN autentica usuários contra o AD, oferecendo acesso remoto seguro com credenciais corporativas. Além disso, o acesso ao Console de Gerenciamento AWS pode ser federado via AD, permitindo que usuários assumam funções do Gerenciamento de Identidade e Acesso AWS (IAM) com suas credenciais existentes.

    Computação e containers

    Instâncias do Amazon EC2 (Windows e Linux) suportam domain join automático na inicialização. Instâncias Windows podem ser gerenciadas por Group Policy, e instâncias Linux autenticam usuários via SSSD ou integração com Realm. O Amazon Elastic Container Service (Amazon ECS) suporta autenticação AD para containers Windows via gMSA, permitindo que aplicações containerizadas se autentiquem em recursos integrados ao AD.

    Aplicações de negócios

    O Amazon QuickSight oferece inteligência de negócios com provisionamento de usuários baseado em AD. O Amazon Connect usa o AD para autenticação de agentes de contact center.

    Escolhendo a edição certa

    Atualmente, o AWS Managed Microsoft AD está disponível em três edições, cada uma pensada para casos de uso específicos.

    Standard Edition

    Otimizada para pequenas e médias empresas, ou para empresas que implantam um modelo de resource forest em uma única região AWS. Com 1 GB de armazenamento de objetos de diretório, suporta até 30.000 objetos (aproximadamente 5.000 usuários). É uma boa opção para deployments de resource forest com trust para AD on-premises, ambientes de desenvolvimento e teste, e aplicações de região única.

    Clientes que começam com a Standard Edition não ficam presos nela: com a nova funcionalidade de upgrade self-service (lançada em outubro de 2025), é possível migrar para a Enterprise Edition programaticamente via API UpdateDirectorySetup, sem tickets de suporte ou coordenação de janelas de manutenção.

    Enterprise Edition

    Projetada para organizações com populações de usuários maiores, deployments complexos ou presença global. Com 17 GB de armazenamento, suporta até 500.000 objetos de diretório. Os principais diferenciais incluem replicação multi-região automática (usuários e aplicações se conectam a domain controllers locais, reduzindo latência e garantindo recuperação de desastres), compartilhamento de diretório com até 500 contas AWS via AWS Organizations, e instâncias de domain controller maiores para workloads exigentes.

    Hybrid Edition

    Lançada em 2025, a Hybrid Edition adota uma abordagem fundamentalmente diferente: em vez de criar um novo domínio AD na AWS, ela estende o domínio AD existente do cliente para a nuvem. Os domain controllers gerenciados pela AWS ingressam no domínio existente — sem novo nome de domínio, sem trust relationships para configurar. Os administradores AD mantêm seus direitos administrativos completos e continuam usando as ferramentas que já conhecem, enquanto as mudanças replicam para a AWS em tempo real. Identidades de segurança, Group Policies e permissões são transferidas de forma transparente, sem necessidade de migração.

    A Hybrid Edition é ideal para clientes que querem os benefícios operacionais da infraestrutura de domain controllers gerenciada pela AWS sem mudar a arquitetura do AD ou abrir mão do controle administrativo.

    Resumo de escolha por caso de uso

    • Novo domínio AD para workloads AWS em região única: Standard Edition
    • Resource forest com trust para AD on-premises: Standard Edition
    • Replicação multi-região para deployments globais: Enterprise Edition
    • Suporte a mais de 30.000 objetos de diretório: Enterprise Edition
    • Estender domínio AD existente para AWS: Hybrid Edition
    • Manter controle administrativo total sobre o AD: Hybrid Edition

    Decisões de design que resistiram ao tempo

    Olhando para trás, algumas decisões tomadas em 2015 se mostraram fundamentais para o sucesso do serviço:

    • Alta disponibilidade por padrão: todo diretório AWS Managed Microsoft AD é implantado com no mínimo dois domain controllers em Zonas de Disponibilidade separadas. Os clientes não precisam projetar arquitetura de HA — ela já vem embutida.
    • AD real da Microsoft: a decisão de rodar o AD genuíno do Windows Server, e não uma alternativa compatível, significa que as ferramentas de administração padrão funcionam, scripts e automações existentes funcionam, e aplicações que dependem de comportamentos específicos do AD geralmente funcionam sem modificação.
    • Integração nativa com serviços AWS: ao construir integrações nativas entre o AWS Managed Microsoft AD e outros serviços AWS, tornou-se possível usar um único diretório em todo o ambiente AWS.
    • Cliente mantém o controle: enquanto a AWS gerencia a infraestrutura, o cliente gerencia o conteúdo do diretório — usuários, grupos, OUs e políticas — usando ferramentas familiares.
    • Espaço para crescer: o modelo de edições (e agora os upgrades self-service) permite que clientes comecem com o que precisam hoje e escalem conforme os requisitos evoluem.

    O que vem pela frente

    O lançamento da Hybrid Edition em 2025 representa uma expansão significativa do que é possível, dando aos clientes nova flexibilidade para arquitetar sua infraestrutura de identidade em ambientes híbridos e multi-cloud. A AWS sinaliza que o roadmap continua sendo moldado pelo feedback dos clientes que dependem do serviço diariamente, com novas capacidades em desenvolvimento.

    Recursos para se aprofundar

    Fonte

    A decade of enterprise identity in the cloud with AWS Managed Microsoft AD (https://aws.amazon.com/blogs/security/a-decade-of-enterprise-identity-in-the-cloud-with-aws-managed-microsoft-ad/)

  • Segurança no Amazon S3: como identificar e corrigir permissões excessivas nos seus buckets

    O problema das permissões excessivas no S3

    Buckets do Amazon Simple Storage Service (Amazon S3) com configurações permissivas demais são um risco silencioso. Políticas de bucket ou Listas de Controle de Acesso (ACLs) muito abertas podem passar despercebidas por meses — até que um dado sensível seja exposto. A boa notícia é que a AWS documentou um fluxo de trabalho completo para identificar e remediar esse problema de forma estruturada.

    O guia é voltado para engenheiros de segurança, arquitetos de nuvem e times de DevOps que gerenciam ambientes AWS com cargas de trabalho no S3 — tanto em conta única quanto em ambientes multi-account via AWS Organizations.

    Visão geral da solução: cinco fases

    A abordagem proposta pela AWS organiza o trabalho em cinco fases sequenciais:

    • Fase 1 – Configuração e pré-requisitos: preparar o ambiente, designar uma conta central de segurança, implantar o AWS Config em todas as contas e habilitar o AWS Security Hub com administrador centralizado.
    • Fase 2 – Detecção e identificação: implantar regras do AWS Config e uma função Lambda de auditoria que escaneia cada bucket verificando três pontos: configuração de bloqueio de acesso público, status da política do bucket e concessões via ACL.
    • Fase 3 – Remediação: aplicar políticas restritivas de bucket, automatizar correções via AWS Lambda ou distribuir configurações padronizadas com AWS CloudFormation StackSets.
    • Fase 4 – Monitoramento contínuo: agendar scans recorrentes via Amazon EventBridge, habilitar o IAM Access Analyzer para S3 e configurar alertas automáticos para novas violações.
    • Fase 5 – Limpeza de recursos: revisar e remover os recursos criados durante a auditoria que não são mais necessários.

    Pré-requisitos

    Antes de começar, é necessário ter uma conta AWS com permissões para criar funções Lambda, papéis do AWS Identity and Access Management (IAM) e tópicos do Amazon Simple Notification Service (Amazon SNS). Também é preciso ter o AWS Command Line Interface (AWS CLI) ou o SDK instalado localmente. Em ambientes multi-account, o AWS Organizations já deve estar configurado. Familiaridade básica com políticas IAM e Python facilita a customização da solução.

    Detecção: como o scanner funciona

    O coração da solução é uma função Lambda escrita em Python usando a biblioteca Boto3. Ela percorre todos os buckets da conta e verifica três condições:

    • Bloqueio de acesso público: todos os quatro parâmetros do Public Access Block devem estar habilitados (BlockPublicAcls, BlockPublicPolicy, IgnorePublicAcls e RestrictPublicBuckets).
    • Status da política do bucket: se a política estiver marcada como pública, o bucket é sinalizado.
    • Concessões via ACL: se o ACL conceder acesso a AllUsers (acesso público anônimo) ou AuthenticatedUsers (qualquer conta AWS), o bucket é considerado de risco.

    A AWS disponibiliza dois scripts de exemplo. O primeiro (Script v1) é ideal para alertas imediatos via SNS quando problemas são detectados:

    import boto3
    import json
    
    def lambda_handler(event, context):
        s3 = boto3.client('s3')
        sns = boto3.client('sns')
        risky_buckets = []
        errors = []
    
        try:
            buckets = s3.list_buckets()['Buckets']
        except Exception as e:
            return {'statusCode': 500, 'body': f'Failed to list buckets: {str(e)}'}
    
        for bucket in buckets:
            bucket_name = bucket['Name']
            issues = []
    
            try:
                # Check Public Access Block — all four settings should be enabled
                try:
                    pab = s3.get_public_access_block(Bucket=bucket_name)
                    config = pab['PublicAccessBlockConfiguration']
                    if not all([
                        config.get('BlockPublicAcls'),        # Block new public ACLs
                        config.get('BlockPublicPolicy'),      # Block new public bucket policies
                        config.get('IgnorePublicAcls'),       # Ignore existing public ACLs
                        config.get('RestrictPublicBuckets')   # Restrict access to public buckets
                    ]):
                        issues.append('Public Access Block not fully enabled')
                except s3.exceptions.NoSuchPublicAccessBlockConfiguration:
                    issues.append('No Public Access Block configured')
    
                # Check bucket policy — flag if policy status is public
                try:
                    policy_status = s3.get_bucket_policy_status(Bucket=bucket_name)
                    if policy_status['PolicyStatus']['IsPublic']:
                        issues.append('Bucket policy allows public access')
                except s3.exceptions.NoSuchBucketPolicy:
                    pass  # No bucket policy is acceptable
    
                # Check bucket ACL
                acl = s3.get_bucket_acl(Bucket=bucket_name)
                for grant in acl.get('Grants', []):
                    grantee = grant.get('Grantee', {})
                    uri = grantee.get('URI', '')
                    # 'AllUsers' = anonymous public access
                    # 'AuthenticatedUsers' = any AWS account (still overly permissive)
                    if grantee.get('Type') == 'Group' and ('AllUsers' in uri or 'AuthenticatedUsers' in uri):
                        issues.append('Bucket ACL grants public access')
                        break
    
                if issues:
                    risky_buckets.append({'bucket': bucket_name, 'issues': issues})
    
            except Exception as e:
                errors.append(f'{bucket_name}: {str(e)}')
    
        # Send alert if risky buckets found
        if risky_buckets:
            message = f'Found {len(risky_buckets)} buckets with public access:\n\n'
            for item in risky_buckets:
                message += f"  {item['bucket']}: {', '.join(item['issues'])}\n"
            sns.publish(
                TopicArn='arn:aws:sns:<REGION>:<ACCOUNT_ID>:<TOPIC_NAME>',
                Subject='S3 Public Access Alert',
                Message=message
            )
    
        return {
            'statusCode': 200,
            'body': json.dumps({
                'risky_buckets': risky_buckets,
                'errors': errors,
                'total_checked': len(buckets)
            })
        }

    O segundo (Script v2) gera relatórios em CSV e JSON para análise histórica e integração com ferramentas de BI:

    import boto3
    import csv
    import json
    import os
    
    def lambda_handler(event, context):
        s3 = boto3.client('s3')
        buckets = s3.list_buckets()['Buckets']
        full_access_buckets = []
    
        for bucket in buckets:
            bucket_name = bucket['Name']
            try:
                bucket_policy = s3.get_bucket_policy(Bucket=bucket_name)['Policy']
                policy = json.loads(bucket_policy)
                for statement in policy['Statement']:
                    if (statement['Effect'] == 'Allow' and
                            statement['Principal'] == '*' and
                            'Action' in statement and
                            's3:*' in statement['Action']):
                        full_access_buckets.append({'BucketName': bucket_name})
                        break
            except s3.exceptions.ClientError as e:
                if e.response['Error']['Code'] != 'NoSuchBucketPolicy':
                    print(f'Error checking bucket policy for {bucket_name}: {e}')
    
        # Output CSV
        csv_output = os.path.join('/tmp', 'full_access_buckets.csv')
        with open(csv_output, 'w', newline='') as csvfile:
            writer = csv.DictWriter(csvfile, fieldnames=['BucketName'])
            writer.writeheader()
            writer.writerows(full_access_buckets)
    
        # Output JSON
        json_output = os.path.join('/tmp', 'full_access_buckets.json')
        with open(json_output, 'w') as jsonfile:
            json.dump(full_access_buckets, jsonfile, indent=2)
    
        # Upload to Amazon S3
        output_bucket = '<OUTPUT_BUCKET_NAME>'
        s3.upload_file(csv_output, output_bucket, 'full_access_buckets.csv')
        s3.upload_file(json_output, output_bucket, 'full_access_buckets.json')
    
        return {
            'statusCode': 200,
            'body': json.dumps(f'CSV and JSON files uploaded to {output_bucket}')
        }

    Importante: esses scripts são exemplos de referência e não estão prontos para produção. Revise o tratamento de erros, logging e permissões antes de qualquer implantação.

    Extensão para múltiplas contas

    Os scripts acima escaneiam apenas a conta atual. Para cobrir contas-membro em uma organização, é necessário adicionar a lógica de AssumeRole. A função abaixo assume o papel IAM de auditoria em cada conta-membro e retorna um cliente S3 com credenciais temporárias:

    import boto3
    import os
    
    def get_member_s3_clients():
        """
        Assumes the cross-account audit role in each member account and returns
        a list of (account_id, s3_client) tuples.
        """
        sts = boto3.client('sts')
        member_accounts = os.environ.get('<MEMBER_ACCOUNTS>', '').split(',')
        cross_account_role_name = os.environ.get('<CROSS_ACCOUNT_ROLE_NAME>')
        external_id = os.environ.get('<EXTERNAL_ID>')
    
        clients = []
        for account_id in member_accounts:
            account_id = account_id.strip()
            if not account_id:
                continue
            try:
                assumed_role = sts.assume_role(
                    RoleArn=f'arn:aws:iam::{account_id}:role/{cross_account_role_name}',
                    RoleSessionName='S3AuditSession',
                    ExternalId=external_id
                )
                # Create S3 client with assumed credentials
                s3_client = boto3.client(
                    's3',
                    aws_access_key_id=assumed_role['Credentials']['AccessKeyId'],
                    aws_secret_access_key=assumed_role['Credentials']['SecretAccessKey'],
                    aws_session_token=assumed_role['Credentials']['SessionToken']
                )
                clients.append((account_id, s3_client))
            except Exception as e:
                print(f'Failed to assume role in account {account_id}: {e}')
    
        return clients

    Para iterar sobre as contas-membro no handler principal, substitua a chamada s3.list_buckets() por um loop sobre os clientes retornados por get_member_s3_clients(). O papel de execução da Lambda na conta central de segurança precisa ter permissão sts:AssumeRole para os ARNs dos papéis cross-account.

    Remediação: corrigindo o problema

    Bloqueio de acesso público no nível da conta

    Antes de ajustar políticas individuais de bucket, a AWS recomenda habilitar o bloqueio de acesso público no nível da conta. Isso impede que qualquer bucket da conta se torne público, independentemente de políticas ou ACLs individuais. O comando AWS CLI abaixo aplica essa configuração — substitua <ACCOUNT_ID> pelo ID da sua conta:

    aws s3control put-public-access-block \
      --account-id <ACCOUNT_ID> \
      --public-access-block-configuration \
      BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true

    Em ambientes multi-account, essa configuração pode ser distribuída via CloudFormation StackSets ou por meio de Políticas de Controle de Serviço (SCPs) do AWS Organizations. Antes de habilitar, verifique se alguma carga de trabalho depende de acesso público ao bucket — como hospedagem de sites estáticos ou compartilhamento de datasets públicos.

    Políticas de bucket restritivas

    Para negar acesso público de leitura e escrita em um bucket específico, a AWS apresenta o seguinte exemplo de política — ajuste o ARN do recurso, as ações e as condições conforme sua necessidade:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Deny",
          "Principal": "*",
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:DeleteObject"
          ],
          "Resource": "arn:aws:s3:::<BUCKET_NAME>/*",
          "Condition": {
            "StringEquals": {
              "s3:x-amz-acl": ["public-read", "public-read-write"]
            }
          }
        }
      ]
    }

    Para restringir o acesso apenas a usuários e papéis IAM específicos, o exemplo a seguir demonstra como estruturar a política — substitua <ACCOUNT_ID>, <USERNAME> e <ROLE_NAME>:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowObjectAccess",
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::<ACCOUNT_ID>:user/<USERNAME>",
              "arn:aws:iam::<ACCOUNT_ID>:role/<ROLE_NAME>"
            ]
          },
          "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
          "Resource": "arn:aws:s3:::<BUCKET_NAME>/*"
        },
        {
          "Sid": "AllowBucketAccess",
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::<ACCOUNT_ID>:user/<USERNAME>",
              "arn:aws:iam::<ACCOUNT_ID>:role/<ROLE_NAME>"
            ]
          },
          "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
          "Resource": "arn:aws:s3:::<BUCKET_NAME>"
        }
      ]
    }

    Verificação e monitoramento contínuo

    Após aplicar as correções, a AWS recomenda um processo de verificação antes de partir para o monitoramento contínuo:

    • Re-executar a função Lambda de auditoria para confirmar que os buckets sinalizados não aparecem mais na lista de risco.
    • Verificar no Security Hub se o status de conformidade mudou de FAILED para PASSED nos controles relacionados ao S3.
    • Validar com o IAM Access Analyzer se as descobertas de acesso externo foram resolvidas.
    • Testar as aplicações para garantir que cargas de trabalho legítimas continuam funcionando corretamente.

    Para monitoramento contínuo, a função Lambda de auditoria pode ser agendada via Amazon EventBridge com regras de agendamento — por exemplo, diariamente às 6h UTC ou semanalmente às segundas-feiras. Além disso, o IAM Access Analyzer pode ser habilitado para monitorar continuamente políticas de bucket, ACLs e pontos de acesso, identificando buckets acessíveis de fora da sua conta ou organização.

    Considerações de custo

    Os principais geradores de custo nessa solução são o AWS Config e o Security Hub, que escalam com o número de contas e recursos monitorados. Lambda, EventBridge, SNS e S3 tendem a adicionar custos mínimos para a maioria dos ambientes. A AWS recomenda começar com um piloto em uma ou duas contas para validar os custos antes de escalar. Consulte as páginas de preços dos serviços e use a Calculadora de Preços da AWS para estimar os valores no seu ambiente específico. Para o IAM Access Analyzer, verifique a página de preços do IAM Access Analyzer para entender quais funcionalidades têm custo associado.

    Boas práticas para manter a postura de segurança

    • Comece pelos controles no nível da conta: habilite o S3 Block Public Access na conta. Em ambientes multi-account, aplique via SCPs do AWS Organizations.
    • Automatize a detecção: use o IAM Access Analyzer para detectar acesso externo e agende a Lambda de auditoria com EventBridge para capturar novos problemas regularmente. Compare os resultados com a linha de base anterior para identificar desvios.
    • Padronize entre contas: use CloudFormation StackSets para distribuir a mesma configuração segura para todas as contas da organização — papéis IAM, regras do AWS Config e configurações de bloqueio de acesso público.
    • Medidas adicionais: revise e rotacione periodicamente as credenciais de papéis IAM cross-account e os External IDs; implemente criptografia server-side (SSE-S3 ou SSE-KMS) para dados em repouso; habilite logs de acesso ao S3 e eventos de dados do AWS CloudTrail para trilhas de auditoria.

    Limpeza de recursos

    Ao concluir a auditoria, revise e remova os recursos criados que não são mais necessários: funções Lambda e papéis IAM, regras do EventBridge, tópicos e assinaturas do SNS, buckets S3 com arquivos de saída da auditoria, regras e gravadores do AWS Config (se não forem mais necessários para conformidade) e o Security Hub (se habilitado exclusivamente para essa auditoria). Antes de deletar, verifique se os recursos não são utilizados por outras cargas de trabalho e retenha os resultados necessários.

    Para saber mais

    A AWS disponibiliza documentação complementar para aprofundamento:

    Fonte

    Securing your Amazon S3 buckets: Identifying and remediating over-permissioned access (https://aws.amazon.com/blogs/security/securing-your-amazon-s3-buckets-identifying-and-remediating-over-permissioned-access/)