O Problema de Autenticação para Agentes de IA

Agentes de IA — sejam baseados em LLMs como Claude ou modelos customizados — estão cada vez mais sendo usados para automatizar tarefas: responder a mensagens de chat, atualizar quadros Kanban, comentar em issues do GitHub, e muito mais. Mas quando você executa esses agentes em um sandbox (uma microVM para segurança e isolamento), enfrenta um desafio fundamental: como autenticar o agente sem expor segredos?

Os métodos tradicionais têm desvantagens:

  • Tokens de API injetados via variáveis de ambiente são simples, mas inseguros — um sandbox comprometido pode exfiltrar o token. Você precisa de rotação e expiração, o que adiciona sobrecarga operacional.
  • Tokens de identidade de workload (OIDC) melhoram a segurança atestando a identidade do agente, mas muitos serviços não têm suporte OIDC de primeira classe, forçando você a construir serviços customizados de troca de tokens.
  • Proxies customizados oferecem máxima flexibilidade, mas são difíceis de configurar — interceptar todo o tráfego de egresso, escrever regras dinâmicas e manter a performance não é trivial.

Os novos outbound Workers da Cloudflare para Sandboxes e Containers visam resolver isso de forma elegante. Eles são proxies de egresso programáticos que rodam na mesma máquina que o sandbox, são escritos em JavaScript simples e se integram perfeitamente com o ecossistema Workers.

Vamos mergulhar em como eles funcionam e por que são importantes para o desenvolvimento assistido por IA. Para contexto sobre a tendência mais ampla de codificação assistida por IA, confira nossa análise sobre Vibe Coding e suas armadilhas.

Cloudflare Sandbox outbound Workers zero trust credential injection diagram Developer Related Image

Como os Outbound Workers Funcionam: Exemplos de Código

Os outbound Workers interceptam todas as requisições HTTP(S) que saem do sandbox. Você define um handler — uma simples função JavaScript — que pode logar, modificar ou bloquear requisições. Aqui está o padrão básico:

class MySandboxedApp extends Sandbox {
  static outbound = (req, env, ctx) => {
    // Loga todas as requisições de saída
    console.log(`Requisição de saída: ${req.method} ${req.url}`);

    // Bloqueia requisições que não sejam GET
    if (req.method !== 'GET') {
      return new Response('Não Permitido', { status: 405 });
    }

    // Prossegue com a requisição
    return fetch(req);
  };
}

Injeção de Credenciais Zero Trust

A funcionalidade matadora: injetar segredos sem que o agente nunca os veja. Use outboundByHost para mirar domínios específicos:

class OpenCodeInABox extends Sandbox {
  static outboundByHost = {
    "meu-vcs-interno.dev": (request, env, ctx) => {
      const headersWithAuth = new Headers(request.headers);
      headersWithAuth.set("x-auth-token", env.SECRET);
      return fetch(request, { headers: headersWithAuth });
    }
  };
}

O agente no sandbox nunca tem acesso a env.SECRET — o proxy adiciona o token em tempo real. Isso é zero trust: nenhum token é concedido à workload não confiável.

Você também pode tomar decisões por container usando o ID do container:

static outboundByHost = {
  "meu-vcs-interno.dev": async (request, env, ctx) => {
    // KV é criptografado em repouso e em trânsito
    const authKey = await env.KEYS.get(ctx.containerId);
    const requestWithAuth = new Request(request);
    requestWithAuth.headers.set("x-auth-token", authKey);
    return fetch(requestWithAuth);
  }
};

Mudanças Dinâmicas de Política

Os outbound Workers podem ser alterados em tempo de execução. Por exemplo, permitir NPM e GitHub apenas durante a instalação de dependências, depois bloquear o egresso:

class MySandboxedApp extends Sandbox {
  static outboundHandlers = {
    async allowHosts(req, env, { params }) {
      const url = new URL(request.url);
      const permitido = params.allowedHostnames.includes(url.hostname);
      if (permitido) {
        return await fetch(newRequest);
      } else {
        return new Response(null, { status: 403 });
      }
    },
    async noHttp(req) {
      return new Response(null, { status: 403 });
    }
  };
}

async function configurarSandboxes(req, env) {
  const sandbox = await env.SANDBOX.getByName(userId);
  // Passo 1: Permitir apenas GitHub e NPM
  await sandbox.setOutboundHandler("allowHosts", {
    allowedHostnames: ["github.com", "npmjs.org"]
  });
  await sandbox.gitClone(userRepoURL);
  await sandbox.exec("npm install");
  // Passo 2: Bloquear completamente
  await sandbox.setOutboundHandler("noHttp");
}

Esse padrão minimiza a superfície de ataque — abra a rede apenas para o necessário, depois feche.

Developer configuring outbound Workers proxy for AI agent authentication on Cloudflare dashboard System Abstract Visual

Limitações e Considerações

Embora os outbound Workers sejam poderosos, não são uma bala de prata:

  • Complexidade do MITM TLS: Para inspecionar corpos de requisições HTTPS (para logging ou modificação), você precisa de interceptação TLS. A Cloudflare lida com isso usando CAs efêmeras por sandbox, mas isso adiciona overhead e requer configuração adequada de confiança de certificado.
  • Overhead de performance: Embora o proxy rode na mesma máquina, toda requisição de saída agora passa por um handler JavaScript. Para cenários de alta taxa de transferência, faça benchmarks cuidadosos.
  • Vendor lock-in: Esse recurso é específico da plataforma Cloudflare. Se você precisa de portabilidade, considere abstrair a camada de proxy.
  • Complexidade de debug: Quando as requisições falham, rastrear o problema através do proxy pode ser mais difícil do que depurar uma chamada direta.

Próximos Passos para Aprendizado

  • Mão na massa: Experimente o Guia de Introdução aos Sandboxes da Cloudflare para construir seu primeiro outbound Worker.
  • Aprofundamento: Explore os pacotes @cloudflare/sandbox e @cloudflare/workers-sandbox para recursos avançados como troca dinâmica de handlers.
  • Leitura relacionada: Se você é novo em padrões de desenvolvimento assistido por IA, nossa prévia do Python 3.15 Alpha 3 cobre melhorias na linguagem que podem simplificar ferramentas de agentes.

Multiple sandbox containers with outbound Workers intercepting egress traffic for security IT Technology Image

Conclusão

Os outbound Workers para Sandboxes da Cloudflare oferecem uma solução pragmática para o desafio de autenticação no desenvolvimento de agentes de IA. Combinando princípios de zero trust (sem exposição de tokens), flexibilidade (handlers JavaScript) e integração profunda com o ecossistema Workers (KV, R2, Durable Objects), eles permitem que desenvolvedores construam egresso seguro, observável e dinamicamente controlável para workloads em sandbox.

À medida que os agentes de IA se tornam mais autônomos, padrões de segurança como este se tornarão essenciais. Comece a experimentar com outbound Workers hoje — seu futuro agente agradecerá.

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.