Cloudflare Sandbox AI 程式碼執行讓助手能夠轉換檔案或執行計算,而不必將生成程式碼直接放入主應用。關鍵決策是執行環境能夠存取什麼。程式碼可以使用你提供的檔案、憑據、網路路徑與工具。
在為負載選擇的執行邊界內執行生成程式碼,明確限制輸入、網路存取和應用能力。將有重大影響的操作保留在環境之外,使用返回產物前先驗證。在擴大存取前,使用惡意程式碼和正常程式碼測試隔離、資源處理與清理。
設想分析師要求助手合併允許使用的 CSV 匯出並生成圖表。助手需要這些輸入檔案和寫入輸出的位置,不需要公司的整個儲存帳戶,也不需要能修改來源系統的憑據。
本文為這項任務描述建議架構,不聲稱隔離能夠消除所有風險,也不認為同一種沙箱環境適合所有語言與相依套件。
定義 Cloudflare Sandbox AI 程式碼執行邊界
Cloudflare 的 Sandboxes 概覽 區分了容器環境與 Dynamic Workers。適合的環境取決於執行要求。應根據目前文件選擇,不要假定較舊 Sandbox SDK 示例仍描述今天的介面。
針對分析師的轉換任務,列出所需語言、程式庫、輸入格式、輸出型別和網路目標。如果任務只需對提供檔案進行本地計算,額外外部存取就需要獨立理由。
負責協調的 Worker 應決定哪個作業屬於哪個已認證使用者。執行程式碼的環境只能接收任務允許的材料,而不是可用來發現更多內容的帳戶級憑據集合。
| 能力 | 示例是否需要? | 需要定義的邊界 |
|---|---|---|
| 讀取選定輸入匯出 | 是 | 僅已授權作業輸入 |
| 寫入結果檔案 | 是 | 專用輸出位置 |
| 存取公共網際網路 | 並非必然需要 | 僅有理由時允許指定目標 |
| 讀取生產憑據 | 否 | 服務權限保留在作業之外 |
| 修改來源業務記錄 | 否 | 獨立且經過複核的應用操作 |
按執行需求選擇環境
Cloudflare 的環境選擇指南 是比較可用方案的起點。確認任務實際需要的語言、相依套件和生命週期要求是否受支援。
工具鏈確實需要時,完整命令環境可能有用,但也引入需要考慮的檔案、程序與相依套件行為。任務只需有限轉換時,更窄的執行範圍可能更易複核。
不要僅因為最強環境讓首次演示更容易,就選擇它。採購問題應是:該環境能否透過團隊能夠解釋和維護的控制,完成允許的任務。
所選平臺支援時,應固定執行映像或相依套件設定。隨結果記錄設定,讓後續失敗能關聯到實際執行程式碼的環境。
將機密資訊和業務權限保留在應用中
Cloudflare 的憑據與網路指南 解釋了相關控制範圍。明確所選環境如何存取已批准服務,並在測試設定中直接驗證其行為。
對於分析師作業,協調應用可以獲取已授權匯出並作為輸入交付,生成程式只處理這些副本。如果需要另一資料來源,應向應用提出請求,繼續由應用執行身分和權限檢查。
不要交出廣泛儲存憑據,再依賴提示詞規定允許使用哪個資料夾。實際權限來自憑據與執行邊界,而不是模型指令寫得多禮貌。
輸出也遵循同一原則。作業可以提出檔案或結果,由獨立應用元件決定是否發布、傳送郵件或匯入。這樣能防止生成程式碼將轉換請求變成未經複核的業務操作。
將輸入和輸出檔案都視為不可信
執行前,按商定策略驗證輸入型別與大小。保留輸入清單,使團隊能確定究竟哪些檔案進入作業。沒有經過驗證的隔離設計,就不要將不同使用者輸入混在共享工作區。
輸出檔案同樣需要檢查。副檔名正確的檔案,也可能包含意外格式、隱藏內容或誤導性計算。在將其作為完成結果展示前,確認產物型別、允許位置與語義檢查。
對於財務圖表,應將總計與來源資料比較,並解釋排除項。圖片渲染整潔,不能證明底層計算正確。對於壓縮包或文件匯出,應檢查實際包含哪些檔案與資料。
| 產物階段 | 建議檢查 | 防止什麼 |
|---|---|---|
| 輸入接納 | 已授權來源與預期格式 | 意外跨使用者資料處理 |
| 工作區準備 | 任務專用路徑與有限內容 | 重用其他作業材料 |
| 輸出收集 | 預期型別、路徑及大小策略 | 將意外檔案作為交付成果 |
| 語義驗證 | 總計、引用或任務專用斷言 | 看似合理卻錯誤的結果 |
| 發布 | 明確應用權限 | 生成程式碼自行分發資料 |
在允許的測試環境中測試惡意程式碼
驗收集應包含讀取所提供工作區之外的內容、聯絡未經批准目標,以及過度消耗資源的嘗試。使用合成資料與專用測試環境,避免測試本身暴露生產材料。
測試實際設定的控制。架構圖沒有畫網際網路連線,不能證明出站存取被阻止。記錄存取嘗試的結果,以及環境返回的原因。
Cloudflare 的沙箱安全指南 是環境邊界的主要參考。應用控制仍需獨立測試,包括認證、作業路由與輸出發布。
也要測試普通故障:相依套件匯入錯誤、無效 CSV、永不結束的程序,以及超出應用策略大小的輸出。維運人員需要明確故障類別,以及安全結束或檢查作業的方法。
讓生命週期與清理可以觀察
定義作業何時開始、哪些事件讓其結束,以及結束後保留什麼。區分執行環境、保留的結果產物與維運證據。結束程序不一定刪除已複製到另一儲存服務的檔案。
如果會恢復或重用工作區,應明確哪些任務資料可能再次出現。當路由或清理假設錯誤時,方便的持久工作區會變成跨任務資料問題。
記錄作業歸屬、來源清單、執行設定、完成原因及收集的輸出。只保留任務及商定複核策略所需內容。
演練失敗作業之後的取消與清理。確認下一任務不能檢查上一任務輸入,同時應用仍能解釋故障,無須不必要地保留每個檔案副本。
估算受控執行服務
開發成本包含協調、身分、輸入準備、執行控制、產物驗證與維運,遠不止執行一次命令所需的程式碼。
要求 GBP 方案報價,明確支援的任務型別與語言。範圍有限的 CSV 轉換服務,比允許在公司系統中執行任意程式的通用助手更適合作為首個明確範圍。
持續成本取決於所選環境、執行時間、儲存、模型使用與故障處理。應核實該環境目前平臺費率,不要把容器估算套入 Dynamic Workers 設計,也不要假設空閒、失敗或恢復工作都是免費的。
試點應產生有用產物,並證明其周圍的邊界。演示有效作業、被阻止能力、取消、清理和被拒輸出。負責人可以據此判斷能否安全新增其他任務型別。
我們可以透過 AI 整合試點 界定該服務。請提供輸入示例、必需工具,以及沒有獨立授權助手絕不能執行的操作,索取沙箱執行方案 。
常見問題
沙箱會自動讓 AI 生成程式碼安全嗎? 不會。隔離是有用邊界,但程式碼能夠使用環境所獲能力與資料。應定義並測試檔案、憑據、網路存取、資源策略與輸出處理。
應該向生成程式碼提供生產 API 金鑰嗎? 避免給予廣泛服務權限。將憑據保留在能夠檢查存取的應用層,只暴露任務需要的有限操作。核實所選平臺支援的憑據與網路控制。
所有任務都需要 Linux 容器嗎? 不需要。根據語言、相依套件和執行要求選擇環境。Cloudflare 文件介紹不同方案,有限任務可能只需要較窄的執行範圍。
助手可以自動發布生成檔案嗎? 只有另行約定的應用策略允許時才可以。建立產物與分發產物是不同操作。匯入、發郵件或公開之前,先驗證輸出並檢查發布權限。
隔離測試應包含什麼? 在專用環境中使用合成資料,測試未授權檔案存取、未批准網路目標、資源過度使用、取消和工作區清理。保留已設定控制的證據,而不只依賴架構圖。
任務之間可以重用工作區嗎? 只有經過明確隔離和保留設計時才可以。重用能夠保留有用上下文,也可能保留其他任務的資料。依賴它之前,應測試路由、恢復內容和清理。
什麼決定實施成本? 支援語言、相依套件需求、輸入準備、能力控制、產物驗證與支援要求決定工作量。從有限任務開始,索取包含故障測試和維運交接的 GBP 方案。