Docker × AI Agent 系列小結:Kernel 隔離、Egress 與資源熔斷

English Abstract: This post wraps up the three-part Docker × AI Agent series. Each article added one defensive layer for containers that run autonomous AI agents: kernel isolation with MicroVM sandboxes, network and credential isolation with an internal-only Docker network and an egress proxy, and resource circuit breaking with cgroups and ulimit. It summarizes the three layers side by side and traces how each one builds on earlier Autocruise posts on Docker proxy configuration, Docker engine ulimits, and Docker credential stores.

近期連續三篇 Docker × AI Agent 系列文,應對的是同一個課題:當容器裡執行的不再是行為固定的微服務,而是會自行產生程式碼、呼叫 Shell 的 AI Agent,「在容器就安全」這個假設要怎麼修正。三篇文章各自補上一道防線,構築成防禦縱深,本文把它們整理在一起,作為此系列的索引。

(一)在 Docker 容器中執行 AI Agent,需要哪三道防線?

在 Docker 容器中執行 AI Agent,需要同時具備 Kernel 隔離、網路與憑證隔離、資源熔斷三道防線,分別對應 Agent 突破隔離、帶走機密與耗盡資源三種風險。

防線 處理的風險 關鍵設定
Kernel 隔離 共用宿主機 Kernel、runc 漏洞、掛載 docker.sock sbx MicroVM、K8s RuntimeClass
網路與憑證隔離 /proc/self/environ、DNS 隧道、.env 外洩 internal: true、Egress Proxy、Phantom Token
資源熔斷 Fork Bomb、無窮迴圈、檔案描述子耗盡 --pids-limit、--ulimit nofile、子 shell ulimit -t

(二)MicroVM 沙盒、Egress Proxy 與 cgroups 各自解決什麼問題?

MicroVM 沙盒解決共用 Kernel 的逃逸風險,Egress Proxy 解決金鑰外洩,cgroups 與 ulimit 解決失控迴圈耗盡資源。系列中三篇文章各處理其中一項:

  1. 從 Docker Container 共享 Kernel 風險談 AI 時代的 MicroVM 沙盒演進:以 runc 執行的容器與宿主機共用同一個 Kernel,升級 runc 只能關閉單一漏洞;要讓 Agent 自主執行指令,就要換成擁有獨立 Guest Kernel 的 MicroVM。
  2. 打造 AI Agent 零信任 Egress 防線:真實金鑰不進容器。容器內只放 Phantom Token,金鑰只存在跨接雙網路的 Egress Proxy,而且只在目標網域符合白名單時才替換。
  3. 重溫 Linux ulimit 與 Docker Cgroups,為 AI Agent 打造物理級熔斷器:先看懂作用邊界。nproc 以 UID 計算,會跨容器連帶影響,行程數應交給 --pids-limit;CPU 時間限制則下放到執行不可信腳本的子 shell。

(三)保護 AI Agent 容器不需要全新的工具?

因為這三道防線用到的 Proxy、ulimit、cgroups 與憑證保管,都是既有的 Docker 與 Linux 機制,多年前本部落格已有文章提到;差別只在於設定的方向:

AI Agent 不需依賴一整套全新的基礎設施,而是把熟悉的 Linux 原語,重新設定在正確的方向與正確的邊界上。

留言

熱門文章

Docker 環境下的 Proxy 配置