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 解決失控迴圈耗盡資源。系列中三篇文章各處理其中一項:
- 從 Docker Container 共享 Kernel 風險談 AI 時代的 MicroVM 沙盒演進:以 runc 執行的容器與宿主機共用同一個 Kernel,升級 runc 只能關閉單一漏洞;要讓 Agent 自主執行指令,就要換成擁有獨立 Guest Kernel 的 MicroVM。
- 打造 AI Agent 零信任 Egress 防線:真實金鑰不進容器。容器內只放 Phantom Token,金鑰只存在跨接雙網路的 Egress Proxy,而且只在目標網域符合白名單時才替換。
- 重溫 Linux ulimit 與 Docker Cgroups,為 AI Agent 打造物理級熔斷器:先看懂作用邊界。
nproc以 UID 計算,會跨容器連帶影響,行程數應交給--pids-limit;CPU 時間限制則下放到執行不可信腳本的子 shell。
(三)保護 AI Agent 容器不需要全新的工具?
因為這三道防線用到的 Proxy、ulimit、cgroups 與憑證保管,都是既有的 Docker 與 Linux 機制,多年前本部落格已有文章提到;差別只在於設定的方向:
- Proxy:《Docker 環境下的 Proxy 配置》的目的是讓內網的 Docker 主機連得出去;Egress Proxy 則是把金鑰與流量攔在門內。
- ulimit:《Docker 引擎 ulimits 設定》處理的是限制不足造成的叢集問題;面對行為未知的 Agent,則要把限制收緊,並改用以容器為邊界的 cgroups。
- 憑證保管:《Credentials Store for Docker Client》談密碼不該以明文留在設定檔,《當環境變數變成整個平台的信任根》談環境變數不是金鑰的信任根;Phantom Token 是這兩個原則在 Agent 容器上的延伸。
- 控制迴圈:《Loop Engineering 是新詞,控制迴圈是老朋友》把 AI Agent 視為控制迴圈,三道防線對應的正是迴圈失控時的三種後果:突破隔離、帶走機密、耗盡資源。
AI Agent 不需依賴一整套全新的基礎設施,而是把熟悉的 Linux 原語,重新設定在正確的方向與正確的邊界上。
留言
張貼留言