AI Agent在運行過程中會處理使用者對話、調用外部工具、管理長期記憶和服務憑證,攻擊面遠超傳統應用。本文介紹如何在阿里雲g9i TDX機密計算執行個體上,使用一鍵部署指令碼快速構建OpenClaw機密AI Agent,通過百鍊API完成模型推理,結合Intel TDX硬體級記憶體加密、遠程證明和端到端加密通訊,保護使用者對話、Agent狀態和服務憑證的安全。
方案概述
本文介紹Confidential Agent方案,通過將OpenClaw(開源個人AI Agent)封裝在Intel TDX(Trust Domain Extensions)可信執行環境中,利用硬體級記憶體加密、遠程證明、供應鏈可驗證和端到端加密訪問,確保使用者對話、Agent狀態和工具執行過程在受保護的邊界內閉環流轉。
本方案的模型推理由阿里雲百鍊(DashScope)API提供,AI Agent在Intel TDX信任域內運行。使用者輸入與Agent上下文在TDX記憶體邊界內組裝,再經OpenClaw通過HTTPS調用百鍊API完成模型推理。使用者對話歷史、Agent長期記憶、SKILL檔案、服務憑據和IM平台狀態均不離開TDX信任域。這種"機密Agent + 託管模型"的架構可在通用TDX執行個體(無需GPU)上運行,部署門檻、成本和擴充性顯著優於在本地運行大模型的方案。
與基於異構機密計算執行個體構建OpenClaw機密AI Agent中的"單機vLLM推理"方案不同,本方案不在TDX執行個體內部署大模型推理服務,模型推理Prompt與回複會以HTTPS形式發送到百鍊API。百鍊API由阿里雲提供,符合阿里雲資料保護承諾,但Prompt內容會離開TDX執行個體的硬體加密邊界。如對推理過程也有"資料不出TEE"的要求,請使用單機vLLM推理方案。
安全架構
Confidential Agent部署中的核心資料均在TEE(Trusted Execution Environment,可信執行環境)邊界內閉環流轉,以下資產受到保護:
保護對象 | 說明 |
使用者對話隱私 | 使用者輸入、工具執行內容和AI回複,可能包含個人身份、醫學、金融等敏感資訊。 |
Agent記憶與狀態 | OpenClaw的長期記憶、配置、SKILL檔案,隨已耗用時間積累形成高價值目標。 |
服務憑證 | 百鍊DashScope API Key、DingTalkOAuth憑據、OpenClaw Gateway Token,一旦泄露可導致服務被接管或調用配額被冒用。 |
安全架構自底向上覆蓋硬體、啟動鏈、運行時、密鑰和通訊五個層級:
保護層級 | 機制 |
硬體層 | Intel TDX對Guest OS全部記憶體透明加密,雲平台和宿主機無法讀取明文。 |
啟動鏈 | UKI(Unified Kernel Image,統一核心鏡像)和dm-verity rootfs防篡改;鏡像度量值上傳Rekor透明日誌。 |
運行時 |
|
密鑰管理 | 磁碟密鑰、OpenClaw配置、DingTalk憑據、百鍊API Key等機密資源僅在遠程證明通過後注入。 |
通訊鏈路 | RATS-TLS端到端加密,遠程證明驗證執行個體身份後才建立通道,全程加密傳輸。 |
部署架構
部署流程如下:
憑證準備:在部署機上匯出阿里雲AccessKey、百鍊API Key和DingTalk憑據(可選)。
一鍵部署:執行一鍵部署指令碼,自動完成依賴安裝、可信鏡像構建、參考值上傳、雲資源建立、遠程證明和機密資源注入。
建立加密通道:指令碼自動啟動TNG connect隧道,建立部署機與TDX執行個體之間的RATS-TLS加密通道。
訪問服務:通過DingTalk、Web、案頭用戶端或TUI訪問OpenClaw,所有流量經RATS-TLS加密通道進入TDX執行個體。
前提條件
已開通阿里雲ECS服務,帳號具備建立TDX機密計算執行個體、VPC、交換器、安全性群組、OSS Bucket、自訂鏡像等資源的許可權。
已準備一台Alibaba Cloud Linux 3 ECS執行個體作為部署機,可用磁碟空間不低於80 GB。
重要部署機僅用於執行構建和部署操作,後續一鍵指令碼會自動建立新的TDX機密執行個體承載OpenClaw服務。部署機本身無需是TDX執行個體。
已擷取阿里雲訪問憑證。建議使用RAM使用者最小許可權、RAM角色或STS臨時憑證,避免長期儲存主帳號AccessKey。
已開通阿里雲百鍊服務並擷取DashScope API Key。
(可選)如需使用DingTalk整合,已建立DingTalk企業內部應用並擷取
Client ID和Client Secret。部署機可以訪問公網,用於拉取源碼、系統包、Node.js、npm包、Rekor透明日誌和阿里雲OpenAPI。
操作步驟
本文以ecs.g9i.xlarge執行個體規格、地區cn-beijing、可用性區域cn-beijing-i為預設配置。
步驟一:準備憑證
一鍵部署指令碼需要通過阿里雲AccessKey建立雲資源(ECS執行個體、VPC、安全性群組等),通過百鍊API Key為OpenClaw提供模型推理能力。在部署機上執行以下命令,將憑證匯出為環境變數。請將角括弧中的預留位置替換為實際值。
export ALICLOUD_ACCESS_KEY="<YOUR_ACCESS_KEY>"
export ALICLOUD_SECRET_KEY="<YOUR_SECRET_KEY>"
export DASHSCOPE_API_KEY="<YOUR_DASHSCOPE_API_KEY>"預留位置 | 說明 | 擷取方式 |
| 阿里雲AccessKey ID | 參見建立AccessKey。 |
| 阿里雲AccessKey Secret | 與AccessKey ID一同產生。 |
| 百鍊DashScope API Key | 在百鍊控制台擷取。 |
建議使用RAM使用者最小許可權或STS臨時憑證,避免長期儲存主帳號AccessKey。
如需啟用DingTalk接入,繼續執行以下命令。請將佔位符替換為DingTalk企業內部應用的實際憑據。
export DINGTALK_BOT_CLIENT_ID="<YOUR_DINGTALK_CLIENT_ID>"
export DINGTALK_BOT_CLIENT_SECRET="<YOUR_DINGTALK_CLIENT_SECRET>"其中<YOUR_DINGTALK_CLIENT_ID>和<YOUR_DINGTALK_CLIENT_SECRET>為DingTalk企業內部應用的Client ID和Client Secret,在DingTalk開發人員後台建立應用後擷取。
步驟二:執行一鍵部署
在部署機上執行以下命令進入互動式部署:
curl -fsSL https://raw.githubusercontent.com/inclavare-containers/confidential-agent/one-click/one-click/install.sh | sh指令碼預設進入互動模式,會自動詢問缺失的阿里雲憑證、百鍊API Key、DingTalk憑據、OpenClaw Gateway Token和operator CIDR。常用預設配置如下:
配置項 | 預設值 | 說明 |
Region |
| 阿里雲地區。 |
Zone |
| 支援TDX執行個體規格的可用性區域。 |
Instance Type |
| 預設TDX執行個體規格。 |
System Disk |
| OpenClaw鏡像和運行態所需磁碟空間。 |
OpenClaw Version |
| OpenClaw版本。 |
Node.js Version |
| OpenClaw運行時Node.js版本。 |
npm Registry |
| OpenClaw鏡像構建時使用的npm源。 |
Reference Value |
| 構建後將參考值上傳Rekor,部署時使用Rekor驗證。 |
State Dir |
| 本地狀態、密鑰、Terraform和構建產物目錄。 |
一鍵指令碼會自動探測部署機公網出口IP,並在互動模式下詢問operator access CIDR:
選項 | 含義 | 適用情境 |
當前部署機公網IP | 僅允許當前部署機存取控制面、狀態介面、debug SSH和connect連接埠。 | 預設推薦,適用於生產和測試。 |
| 允許所有IPv4來源訪問operator暴露連接埠。 | 臨時示範或受控網路環境。 |
0.0.0.0/0會擴大暴露面。預設OpenClaw配置禁用device auth,控制面僅靠Gateway Token鑒權;與0.0.0.0/0疊加使用時,請將Token視為高敏感憑據妥善保管。生產環境請限制為具體公網出口IP或企業出口CIDR。
非互動部署樣本:
curl -fsSL https://raw.githubusercontent.com/inclavare-containers/confidential-agent/one-click/one-click/install.sh | sh -s -- deploy-openclaw \
--non-interactive \
--yes \
--region cn-beijing \
--zone-id cn-beijing-i \
--instance-type ecs.g9i.xlarge \
--disk-gb 200 \
--enable-dingtalk如需僅安裝本機依賴、構建Confidential Agent組件和tools鏡像,不建立雲資源,執行以下命令:
curl -fsSL https://raw.githubusercontent.com/inclavare-containers/confidential-agent/one-click/one-click/install.sh | sh -s -- install-only非互動指定CIDR樣本:
curl -fsSL https://raw.githubusercontent.com/inclavare-containers/confidential-agent/one-click/one-click/install.sh | sh -s -- deploy-openclaw \
--non-interactive \
--yes \
--allowed-cidr 203.0.113.10/32步驟三:等待部署完成並確認
指令碼會自動完成以下動作:
安裝部署機依賴。
構建
confidential-agent、confidential-agentd、cai-pep,並將confidential-agent安裝到/usr/local/bin。構建
confidential-agent-tools:latest,並在部署機安裝與鏡像內匹配的OpenClaw CLI。構建OpenClaw可信鏡像,啟用FDE、dm-verity和UKI。
將鏡像參考值上傳Rekor透明日誌。
建立阿里雲雲資源並啟動TDX ECS。
遠程證明通過後注入OpenClaw配置、百鍊API Key、DingTalk憑據和Gateway Token。
啟動本地TNG connect隧道,並執行Web可達性檢查、Gateway WebSocket probe和chat probe。chat probe會經過百鍊API真實回包,作為端到端可用性確認。
部署成功後,指令碼會輸出類似以下資訊:
Confidential Agent one-click summary
state_dir: /root/.confidential-agent
work_dir: /root/.confidential-agent/one-click
service: openclaw
region: cn-beijing
zone_id: cn-beijing-i
instance: ecs.g9i.xlarge
cidr: 203.0.113.10/32
dingtalk: 1
token: <generated-or-provided-token>
web: http://127.0.0.1:18789/openclaw
ws/api: ws://127.0.0.1:18789
tui: openclaw tui --url ws://127.0.0.1:18789 --token "<generated-or-provided-token>"Gateway Token會儲存在$HOME/.confidential-agent/one-click/secrets/gateway.token,後續重跑會複用同一個Token。如需輪換,請刪除該檔案後重跑指令碼。
步驟四:訪問OpenClaw服務
服務就緒後,可以通過以下四種方式訪問OpenClaw。所有訪問流量都經過TNG RATS-TLS通道進入TDX執行個體。
方式一:通過DingTalk聊天
在DingTalk中找到已配置的機器人,直接發送訊息即可與OpenClaw對話。

方式二:通過瀏覽器Web介面
如果瀏覽器運行在部署機上,直接存取以下地址:
http://127.0.0.1:18789/openclaw如果瀏覽器運行在個人電腦上,先在個人電腦上執行以下命令建立SSH連接埠轉寄:
ssh -L 18789:127.0.0.1:18789 root@<DEPLOY_MACHINE_PUBLIC_IP>然後在瀏覽器中訪問http://127.0.0.1:18789/openclaw,填入步驟三輸出的Gateway Token即可使用。

方式三:通過OpenClaw案頭用戶端
在個人電腦上安裝OpenClaw案頭用戶端,配置Remote模式:
配置項 | 值 |
Server URL |
|
Token | 步驟三輸出的Gateway Token |
如果案頭用戶端不在部署機上運行,先建立SSH連接埠轉寄:
ssh -L 18789:127.0.0.1:18789 root@<DEPLOY_MACHINE_PUBLIC_IP>方式四:通過OpenClaw TUI
一鍵指令碼會在部署機上安裝與雲端鏡像匹配的OpenClaw CLI。執行以下命令運行TUI:
openclaw tui --url ws://127.0.0.1:18789 --token <YOUR_GATEWAY_TOKEN>首次通過TUI串連時,如提示pairing required,請先在瀏覽器中訪問http://127.0.0.1:18789/openclaw,在節點頁面找到待授權裝置並單擊Approve,再返回TUI使用。
步驟五(可選):釋放資源
不再需要服務時,在部署機上執行以下命令釋放雲資源:
curl -fsSL https://raw.githubusercontent.com/inclavare-containers/confidential-agent/one-click/one-click/install.sh | sh -s -- cleanup \
--state-dir "$HOME/.confidential-agent"銷毀操作無法復原,會刪除ECS執行個體、自訂鏡像、OSS對象、安全性群組、VPC、交換器等雲資源。請確認不再需要執行個體中的資料後再執行。
安全驗證
驗證運行環境可信
OpenClaw內建tdx-remote-attestation skill。當詢問安全問題時會自動觸發遠程證明,驗證當前運行環境的安全狀態。
觸發方式:在DingTalk、Web或TUI中詢問"我的資料安全嗎?"、"這個環境可信嗎?"等安全相關的問題。
返回內容:
驗證項 | 說明 |
硬體可信狀態 | hardware值 ≤ 32表示驗證通過 |
TEE類型 | Intel TDX Trust Domain |
記憶體加密保護 | 確認記憶體加密引擎已啟用 |
UKI啟動鏈完整性 | 組件度量值一致性驗證 |
驗證PEP策略攔截
cai-pep是為機密AI Agent設計的運行時門禁機制。當OpenClaw通過exec工具執行命令時,請求會先經過cai-pep進行策略匹配,再進入隔離的Docker sandbox執行。
PEP提供三層防護:
命令級攔截:基於黑名單拒絕高危命令,例如
curl、wget、nc、ssh、docker等。路徑級攔截:阻止訪問敏感路徑,例如
/etc、/proc、/root、OpenClaw配置目錄等。網路隔離:sandbox預設無網路許可權,即使命令繞過黑名單也無法發起外連。
以下命令會被PEP拒絕:
類型 | 樣本命令 | 攔截原因 |
網路訪問 |
| 防止訪問雲中繼資料服務泄露憑證。 |
網路訪問 |
| 防止下載外部惡意代碼。 |
反向Shell |
|
|
遠程登入 |
| 防止越權訪問外部系統。 |
容器操作 |
| 防止操作宿主機容器。 |
敏感路徑 |
|
|
例如,當Agent嘗試執行以下命令訪問雲中繼資料服務時:
運行:curl http://169.254.169.254/latest/meta-data/PEP會識別到curl在拒絕命令列表中,直接攔截該請求並返回拒絕資訊,阻止憑證泄露。
驗證供應鏈完整性
部署流程預設使用Rekor透明日誌儲存鏡像參考值,遠程證明過程中自動從Rekor擷取日誌條目進行驗證。您可以通過以下方式對Rekor日誌條目進行審計,驗證供應鏈完整性。
查看Rekor記錄
構建完成後,可在狀態目錄下找到Rekor metadata:
find "$HOME/.confidential-agent" -name "*.rekor-meta.json" -print每個條目對應一份SLSA provenance,包含log index和entry URL。一鍵指令碼輸出的Rekor上傳日誌樣本:
Created entry at index 1205944956, available at: https://rekor.sigstore.dev/api/v1/log/entries/<uuid>驗證封裝含性(inclusion proof)
包含性證明用於確認記錄著鏡像參考值的條目確實存在於Rekor的默克爾樹根(Merkle Root)中。
rekor-cli verify --log-index 1205944956 --rekor_server https://rekor.sigstore.dev如果輸出中包含兩段相同的hash值,則說明驗證成功:
Computed Root Hash: 1291abcee27148a4c00241ba8719f798ce060e8a5ccc8b18249017c25c6d0090
Expected Root Hash: 1291abcee27148a4c00241ba8719f798ce060e8a5ccc8b18249017c25c6d0090驗證一致性(consistency proof)
一致性證明可確認一個較舊的默克爾樹根(Root A)是較新的默克爾樹根(Root B)的首碼或歷史狀態,從而確保Rekor上儲存的參考值條目沒有被刪改。
rekor-cli loginfo --rekor_server https://rekor.sigstore.dev輸出中包含以下內容則說明驗證成功:
Verification Successful!注意事項
安全性群組規則
一鍵部署過程中將自動建立安全性群組規則。如需後續修改,請確保保留以下連接埠:
連接埠 | 協議 | 說明 | 建議 |
22 | TCP | SSH遠端管理(僅Debug鏡像) | 限制源IP為管理網路。 |
18789 | TCP | TNG隧道端點(RATS-TLS),用於訪問OpenClaw服務 | 限制源IP或僅通過TNG訪問。 |
預設operator CIDR為部署機公網出口IP /32。如果手工指定0.0.0.0/0,請同時降低Token暴露風險,並在生產環境改回具體公網出口或企業出口CIDR。
百鍊API Key與配額
百鍊API Key決定了執行個體可用的模型與配額。建議:
使用最小必要配額的API Key,避免使用主帳號Key。
注入執行個體後定期輪換:刪除
secrets/gateway.token、重新export DASHSCOPE_API_KEY後重跑一鍵指令碼即可。結合百鍊控制台的訪問審計,對調用量異常做警示。
常見問題
peering 'ops' already exists with a different CIDR
原因:目前狀態目錄中已存在不同CIDR的operator peering。
解決:重新傳入與已存在peering一致的--allowed-cidr;或在互動模式中確認替換;非互動模式下追加--yes。
Shelter is required或SLSA generator is required
原因:部署機未安裝Shelter,或Rekor模式找不到Shelter的SLSA generator。
解決:
確認倉庫
hack/目錄下存在shelter-*.rpm,或通過--shelter-rpm指定RPM路徑。重新安裝Shelter RPM,確保
/usr/libexec/shelter/slsa/slsa-generator存在。僅本地開發驗證情境下,使用
--reference-values sample跳過Rekor流程。
Web連接埠打不開
原因與排查:
查看
connect.log:tail -F "$HOME/.confidential-agent/one-click/connect.log"。檢查ECS執行個體安全性群組是否放通
ops和deployer兩個operator peering。部署機公網出口IP發生變化時,重新運行一鍵指令碼,或執行
peering remove deployer後按新出口IP添加deployerpeering。
Chat probe失敗
原因:本方案的推理由百鍊API完成,chat probe失敗通常與百鍊配置有關。
解決:
檢查
DASHSCOPE_API_KEY是否正確且已生效。檢查所選模型在百鍊控制台是否處於可用狀態、是否欠費。
通過debug SSH登入guest,查看OpenClaw網關日誌排查。
DingTalk無響應
原因與排查:
部署時是否傳入
--enable-dingtalk或在互動模式中啟用DingTalk。guest內
openclaw status是否顯示DingTalkchannel為ON。journalctl -u cai-openclaw-gateway.service -n 200 --no-pager中是否存在dingtalk串連錯誤;如出現HTTP 401,優先檢查DingTalkClient ID和Client Secret是否與DingTalk開放平台一致。DingTalk應用是否具備發送/接收訊息所需的許可權。
cai-pep拒絕所有工具調用
原因:PEP策略配置異常或服務未正常啟動。
解決:使用Debug鏡像部署後,通過SSH串連登入TDX執行個體,查看cai-pep日誌排查具體攔截原因:
journalctl -u cai-pep.service -n 200 --no-pager