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
Hermes Desktop no Linux com Bubblewrap
Mantenha a interface oficial em uma janela própria, sem entregar a pasta pessoal, o X11 ou os serviços da sua sessão ao aplicativo.
Como compilar agentes sem entregar o desktop às dependências
Fixe a fonte, analise o grafo de pacotes e compile sem rede em Docker. O isolamento continua necessário depois que o aplicativo estiver pronto.
Como ligar um agente à RN com a rede restrita
Use um canal com destino fixo, uma chave própria e o contrato correto. Entenda a diferença entre controle de acesso e barreira de privacidade.