04 - 權限與安全設定
← 03-Project與Thread工作方式 | 00-Index | 下一篇 → 05-實戰提示詞與上手流程
為什麼這章很重要
很多人第一次用 Codex,最容易忽略的不是 prompt,而是 permissions、sandbox、internet access。
如果這些觀念沒先建立,你可能會:
- 給太大權限
- 沒搞清楚 Codex 能動哪些檔案
- 在 cloud task 中開啟過寬的網路能力
- 讓高風險任務缺乏 review
Local 工作時的基本安全邏輯
根據 OpenAI Academy 與產品頁:
- 在 local project 中,Codex 預設只會在你指定的資料夾或 branch 裡工作
- 它通常使用 sandbox 與 permission model 來限制行為
- 若某些操作需要更高權限,例如 network access,會向你請求批准
這代表:Codex 不是預設擁有整台電腦的完全控制權。
新手推薦設定
OpenAI Academy 對剛開始使用的人,建議先注意幾個 settings:
Prevent sleep while runningDetail levelPersonalizationAppearance
其中最實用的是前兩個:
Prevent sleep while running
如果你的電腦睡眠,Codex 可能停止工作。做稍長任務時,這個選項很實用。
Detail level
Coding mode:會顯示較多實際執行細節Default:介面更乾淨,對非工程導向的使用者比較輕鬆
如果你是初學者、但又想理解 Codex 在做什麼,可以先用比較詳細的模式觀察幾次,再決定自己偏好的資訊量。
Cloud task 的 internet access
這是另一個很重要的安全點。
官方文件指出,在 cloud task 的 agent phase,Codex 預設會阻擋 internet access。只有 setup scripts 仍可使用網路安裝相依套件。你可以依 environment 決定是否開啟 agent internet access。
為什麼預設關閉
因為一旦 agent 能隨意上網,風險會提高,例如:
- prompt injection
- code / secrets 外洩
- 下載有漏洞或惡意內容
- 拉進授權不明的內容
官方建議
如果真的要開網路:
- 只開必要的 domains
- 只允許必要的 HTTP methods
- 盡量限制在
GET、HEAD、OPTIONS - review agent output 與工作紀錄
這個原則很像資安裡的 least privilege:只給完成任務所需的最小權限。
Permission 模式:實際情境怎麼選
Codex 的權限大致是一條光譜:從「每個動作都問你」到「放手讓它跑」。模式名稱與細節會隨版本調整,但心智模型很穩定,照情境記就好:
①「讀 + 提案,動手前先問」(最保守,新手起點)
-
行為:Codex 可以讀檔、分析、提計畫,但真的要改檔 / 跑指令前會停下來等你批准。
-
適合:第一次接觸某個 repo、不熟 Codex 會怎麼動手、改錯成本高的內容(醫學筆記、production 設定)。
-
範例 prompt 搭配:
先檢查這個資料夾,告訴我你打算改哪些檔、為什麼。 在我說「可以」之前,不要寫入任何檔案。
②「自動編輯,但限制在工作範圍內」(熟悉後的日常)
- 行為:在 project / 資料夾範圍內可自行讀寫檔案,但碰到範圍外或**高風險動作(例如連網、刪大量檔)**仍會請求批准。
- 適合:你已經信任它在這個 repo 的行為、任務是建新檔或改局部、而且你會在最後 review。
- 這是多數人穩定後的常用檔位。
③「放手全自動」(只在低風險、可回滾時用)
- 行為:盡量不打斷、自己把任務跑完。
- 適合:任務低歧義、輸出可被 review、且有 git 可回滾。例如「把這批檔案的標題統一格式」。
- 風險:歧義任務 + 全自動 = 它會「自信地做錯一整批」。拆不清楚的任務不要開全自動。
心法:權限不是越大越快,而是要配合任務的可回滾性與你 review 的頻率。改得回來、你會檢查 → 可以放寬;改錯會痛、你不會逐一看 → 收緊。
Local 與 Cloud 的權限模型不一樣(別混著看)
- Local:邊界主要是「你選的資料夾 / branch」+ 本機 sandbox。它能不能連網、能不能跑某指令,受本機環境與你給的 permission 模式影響。
- Cloud task:跑在隔離容器裡,
agent phase預設擋外網(只有 setup script 階段能裝相依套件)。要連網得在 environment 設定裡明確開、而且建議只開必要 domain。
承 03-Project與Thread工作方式 的 local/cloud 對照:同一句 prompt,在 cloud 預設是上不了網的。如果任務需要抓外部資料(查文獻、call API),要嘛在 local 做、要嘛先在 cloud environment 開好 domain allowlist。
失敗與中斷怎麼處理(很實用)
agent 任務不會每次乾淨成功,先建立幾個習慣:
- 先看產出,再決定重派:agent 常「寫完檔案才回報達到用量上限 / timeout」。所以遇到失敗,先檢查它有沒有已經把檔案寫出來,再決定是「續跑」「只補沒做完的」還是「整批重來」。盲目重派會做白工。
- 長任務在 cloud、開
Prevent sleep:local 跑長任務要防電腦睡眠中斷;更長、更怕中斷的就丟 cloud 背景跑。 - 任務太大會 timeout:把大任務切小批(見 07-實戰工作流範例 的「每個 agent 範圍要窄」實例)。
- 用 git 當安全網:放寬權限前先確保 working tree 乾淨 / 已 commit,做壞了
git restore就回來了。 - 不確定就讓它停:在 prompt 明寫「若不確定先停下來問,不要猜」,比事後收拾便宜。
一個安全的起步原則
你可以把第一次使用 Codex 的安全原則記成下面這 5 點:
- 先用 project,把工作範圍關小
- 先用
Default permissions - 先做可 review 的小任務
- 需要網路時再開,而且只開必要範圍
- 對外部資料保持不信任,尤其是 cloud browsing / issue / README 類內容
重點整理
- Codex 的好用,建立在權限邊界清楚。
- Local 與 cloud 的安全考量不同,不能混著看。
- 初學者先用 default permission,是非常合理的策略。
- Cloud internet access 不是越開越方便,而是越開風險越高。
- 安全設定不是阻礙效率,而是讓你能放心持續用 Codex。
參考資料
← 03-Project與Thread工作方式 | 00-Index | 下一篇 → 05-實戰提示詞與上手流程
