Ir para o conteúdo
Voltar

Como limitar um agente de IA com Docker

Separe os arquivos do agente, limite recursos e feche a rede. Veja o perfil aplicado ao Hermes e o papel da Rota Nacional.

Rota Nacional · Publicado · Revisado

Comece pelo acesso que o agente precisa

Um agente pode executar comandos, instalar ferramentas e ler arquivos. Uma dependência contaminada recebe os mesmos acessos do processo que a carrega. Colocar esse processo em um container ajuda quando as montagens, a rede e os privilégios também são restritos.

Na instalação local do Hermes usada nesta série, o agente recebeu um volume próprio. A pasta pessoal do usuário, as chaves SSH e o socket do Docker ficaram de fora. O Desktop se conectou por um canal privado. Isso foi uma instalação de desktop validada, não um teste de invasão.

Prepare a imagem e os dados

  • Obtenha a imagem do projeto oficial. Confira a versão e fixe seu digest SHA-256. Uma etiqueta de versão pode mudar; o digest identifica o conteúdo.
  • Crie um volume exclusivo para configuração, histórico e arquivos de trabalho. Não monte a raiz do host nem sua pasta pessoal.
  • Confira o usuário efetivo depois da inicialização. No Hermes validado, o processo do agente ficou com UID 1000. O início oficial ajusta dono e permissões antes de abandonar o usuário root.
  • Revise o entrypoint da versão escolhida antes de remover capacidades. Um perfil que impede a inicialização precisa de ajuste documentado, sem recorrer a --privileged.

Aplique os limites no lançamento

Use --rm --init para controlar o ciclo do container. Feche a rede com --network none. Não publique portas com -p. Defina limites de memória, CPU e processos. No caso validado, o agente recebeu --memory 4g --cpus 4 --pids-limit 512.

Comece com --cap-drop ALL e --security-opt no-new-privileges. Preserve o seccomp padrão do Docker. A imagem do Hermes precisou de CHOWN, SETUID, SETGID e DAC_OVERRIDE no início oficial. Essa exceção pertence àquela imagem; não é um perfil universal para agentes.

Um container sem rede também não alcança a RN. O artigo sobre rede desta série explica o canal Unix com destino externo fixo. Abrir a rede inteira apenas para habilitar o modelo muda a proteção do desenho.

Prove o que ficou inacessível

  • Confira o UID do processo e a ausência da pasta pessoal e do socket Docker.
  • Tente alcançar a rede local e um endereço externo a partir do container. Ambos devem falhar no perfil sem rede.
  • Confira o canal autorizado da RN com TLS e validação do certificado. Não desative essa validação para fazer a conexão funcionar.
  • Feche a interface e confira o encerramento do agente. Reabra e confira a preservação dos dados.

Saiba o que o container ainda pode fazer

O agente pode alterar seu volume e usar a credencial que você cadastrar nele. Docker compartilha o kernel do host. Uma falha nessa camada pode romper o isolamento. Para código com risco maior ou dados que exigem outra fronteira, avalie uma máquina virtual ou um equipamento separado.

A RN centraliza o acesso aos modelos. Ela não transforma comandos de shell em operações seguras. Use uma chave própria da organização e confira as políticas antes de habilitar conversas. A instalação desta série não fez chamadas a modelos: o cadastro da chave ficou para o usuário.

Perguntas frequentes

Posso montar o socket Docker para o agente criar containers?

Esse acesso permite controlar o daemon e pode dar acesso ao host. O perfil desta série não o compartilha. Se a tarefa precisa criar containers, projete uma capacidade separada e restrita.

O volume exclusivo impede perda de dados?

Ele limita quais dados ficam expostos. O agente ainda pode apagar ou alterar o próprio volume. Faça cópias e prove a recuperação.

Continue a leitura

Procurando outra coisa?AjudaContato