04 - 權限與安全設定

03-Project與Thread工作方式 | 00-Index | 下一篇 → 05-實戰提示詞與上手流程


為什麼這章很重要

很多人第一次用 Codex,最容易忽略的不是 prompt,而是 permissionssandboxinternet access

如果這些觀念沒先建立,你可能會:

  • 給太大權限
  • 沒搞清楚 Codex 能動哪些檔案
  • 在 cloud task 中開啟過寬的網路能力
  • 讓高風險任務缺乏 review

Local 工作時的基本安全邏輯

根據 OpenAI Academy 與產品頁:

  • 在 local project 中,Codex 預設只會在你指定的資料夾或 branch 裡工作
  • 它通常使用 sandbox 與 permission model 來限制行為
  • 若某些操作需要更高權限,例如 network access,會向你請求批准

這代表:Codex 不是預設擁有整台電腦的完全控制權。

新手推薦設定

OpenAI Academy 對剛開始使用的人,建議先注意幾個 settings:

  • Prevent sleep while running
  • Detail level
  • Personalization
  • Appearance

其中最實用的是前兩個:

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
  • 盡量限制在 GETHEADOPTIONS
  • 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 點:

  1. 先用 project,把工作範圍關小
  2. 先用 Default permissions
  3. 先做可 review 的小任務
  4. 需要網路時再開,而且只開必要範圍
  5. 對外部資料保持不信任,尤其是 cloud browsing / issue / README 類內容

重點整理

  • Codex 的好用,建立在權限邊界清楚。
  • Local 與 cloud 的安全考量不同,不能混著看。
  • 初學者先用 default permission,是非常合理的策略。
  • Cloud internet access 不是越開越方便,而是越開風險越高。
  • 安全設定不是阻礙效率,而是讓你能放心持續用 Codex。

參考資料


03-Project與Thread工作方式 | 00-Index | 下一篇 → 05-實戰提示詞與上手流程