
工程師用 Cursor、Claude Code、GitHub Copilot 這類 AI 工具寫程式,開發速度快了很多,API token 也比以前更容易外流:可能被貼進對話框、被 AI 直接寫死在程式碼裡,或是跟著 .env 檔一起推上 Git。這篇整理 AI 寫程式時金鑰外洩的常見情境,以及用 1Password 讓金鑰只在程式執行時才出現的 4 種做法。
2025 年外洩金鑰數量創新高
資安公司 GitGuardian 每年統計公開 GitHub 上的金鑰外洩狀況,2026 年報告的幾個數字:
| 指標 | 2025 年數據 |
|---|---|
| 公開 GitHub 新增外洩金鑰 | 2,900 萬筆,比前一年增加 34%,歷年最大增幅 |
| AI 服務相關金鑰外洩 | 約 127 萬筆,比前一年增加 81% |
| AI 程式助理參與的 commit | Claude Code 共同撰寫的 commit 外洩率 3.2%,整體平均是 1.5% |
| MCP 設定檔裡的金鑰 | 找到 24,008 筆,其中 2,117 筆確認仍可使用 |
| 外洩後一直沒換掉 | 2022 年確認有效的外洩金鑰,4 年後仍有 64% 可以使用 |
資料來源:GitGuardian, The State of Secrets Sprawl 2026
另外,報告也指出公司內部的程式碼庫外洩機率是公開程式庫的 6 倍。程式碼沒有公開,金鑰一樣可能透過內部人員、外包廠商或被入侵的帳號流出去。
AI 寫程式時,金鑰最常從這 4 個地方外流
- 貼進 AI 對話框:為了讓 AI 幫忙除錯,工程師直接把含有 token 的錯誤訊息或設定檔整段貼上。
- AI 寫死在程式碼裡:請 AI「幫我串接這支 API」,產生的範例程式碼常把金鑰直接寫成字串,沒注意就一起 commit 了。
- 明文
.env檔:金鑰集中放在專案的.env檔,AI agent 有讀取整個專案的權限,.gitignore沒設好就會被推上 Git。 - MCP 設定檔:串接 MCP server 時,設定檔(例如
mcp.json)常需要填 API 金鑰,這類檔案很容易被忽略。
共通原則:金鑰不要以明文出現在檔案裡。下面 4 種做法的核心都一樣:金鑰存在 1Password,程式碼和設定檔只放「指向金鑰的位置」,程式執行的當下才由 1Password 把真正的值帶進去。
做法 1:用 Secret Reference 取代明文金鑰
1Password CLI 的 Secret Reference(金鑰參照)是一串指向金鑰位置的網址,格式是 op://保險庫/項目/欄位。設定檔裡只寫這串網址,執行時用 op run 啟動程式,1Password 會自動把網址換成真正的金鑰。
這樣做的好處:
.env檔就算被推上 Git 或被 AI 讀到,裡面也只有參照網址,拿到也無法使用op run預設會遮蔽輸出的金鑰,程式印出 log 時不會意外露出- 換金鑰時只要改 1Password 裡的值,程式碼和設定檔都不用動
- Windows、Mac、Linux 都能用
做法 2:用 1Password Environments 掛載 .env 檔
1Password Environments 是專門管理專案環境變數的功能,可以把整組變數存在 1Password,再「掛載」成專案資料夾裡的 .env 檔。程式讀起來跟一般 .env 檔一樣,但金鑰不會以明文寫進硬碟。
- 匯入現有的 .env 檔:專案裡已經有的
.env可以直接匯入,不用一筆一筆重建 - 團隊共用:管理員可以把 Environment 分享給特定成員或群組,分別設定檢視、編輯、管理權限。新人加入專案不用再私訊傳金鑰
- 需要管理員開啟:企業帳號要由擁有者或管理員在後台開啟 Environments 政策才能使用
做法 3:讓 AI 工具直接整合 1Password
1Password 針對 AI 程式工具推出了幾項整合,目的是讓 AI agent 能正常執行需要金鑰的指令,同時看不到金鑰內容:
| 功能 | 做什麼 | 支援工具 |
|---|---|---|
| Cursor/Claude Code 外掛 | 把下面兩項功能和操作說明打包在一起,安裝後 AI agent 就知道怎麼使用 1Password Environments | Cursor、Claude Code |
| Agent Hooks(驗證機制) | AI agent 執行指令前,先檢查需要的 .env 掛載是否正常,沒設定好就停下來,並告訴使用者怎麼修正 | Claude Code、Cursor、GitHub Copilot、Windsurf |
| Environments MCP Server | AI agent 可以建立、管理 Environment 和變數名稱,每個動作都會跳出授權確認,不會把金鑰內容回傳給 AI | Cursor、Codex、Kiro 等 MCP 用戶端 |
| Shell Plugins | 在終端機使用 AI 工具的 CLI 時,用 Touch ID 等生物辨識驗證取代寫在 shell 設定檔裡的明文金鑰 | OpenAI CLI、Claude Code CLI 等 |
MCP 設定檔的金鑰問題也可以用做法 1 解決:在 mcp.json 裡改用 op run 啟動 MCP server,金鑰就不用寫在設定檔裡。
平台限制:本機掛載 .env 檔和 Environments MCP Server 目前只支援 Mac 和 Linux。Windows 開發者可以先用做法 1 的 op run,效果相同,只是少了自動掛載的便利性。
做法 4:管理員掃描員工電腦上的明文金鑰
前面 3 種做法是讓「新的金鑰」不再以明文存放。員工電腦裡「已經存在」的明文金鑰,可以用 Developer Watchtower 找出來:
- 掃描 .env 檔:找出常見開發資料夾裡,以明文存放 API 金鑰或 token 的
.env檔 - 掃描 SSH 金鑰:檢查
~/.ssh資料夾裡沒加密的私鑰,以及 DSA、2048 位元以下 RSA 等過時的金鑰類型 - 管理員報表:擁有者和管理員可以在後台看到全公司的「開發者金鑰盤點報表」,報表只有中繼資料,不會收集或顯示金鑰內容
- 支援平台:Mac、Windows(需安裝 1Password CLI)、Linux
找到的明文 .env 檔可以直接匯入 1Password Environments,順手完成搬遷。
建議的導入順序
| 階段 | 做什麼 | 效果 |
|---|---|---|
| 1. 盤點 | 開啟 Developer Watchtower,看全公司有多少明文金鑰散落在員工電腦 | 知道風險有多大、先處理哪些專案 |
| 2. 集中 | 把金鑰搬進 1Password,依專案或環境(開發、測試、正式)分保險庫或 Environment | 金鑰有單一來源,權限可控 |
| 3. 改參照 | 程式碼和設定檔改用 Secret Reference,搭配 op run 或掛載 .env | 檔案外流也拿不到金鑰 |
| 4. 接 AI 工具 | 安裝 Cursor/Claude Code 外掛、設定 Agent Hooks | AI agent 能正常工作,又看不到金鑰 |
| 5. 接 CI/CD | 用 Service Account 讓 GitHub Actions、Jenkins 等流程取用金鑰 | 自動化流程也不需要存放明文 |
工程師離職時更好處理。金鑰集中在 1Password 後,工程師離職只要移除他的存取權限,再針對他接觸過的保險庫換一輪金鑰即可,不用逐台電腦檢查。完整流程可參考〈員工離職,帳號密碼怎麼收回?檢查清單與 SOP〉。
常見問題
API token 存在 1Password 裡,AI 工具讀得到嗎?
使用 1Password Environments 搭配官方的 Cursor、Claude Code 外掛時,AI agent 只看得到變數名稱和檔案掛載路徑,看不到金鑰的實際內容。金鑰在程式執行時才由 1Password 注入,不會出現在 AI 的對話內容或專案檔案裡。
Windows 可以用 1Password Environments 嗎?
Environments 本身支援 Mac、Windows、Linux 桌面版,但「本機掛載 .env 檔」和 Environments MCP Server 目前只支援 Mac 和 Linux。Windows 使用者可以改用 1Password CLI 的 op run 搭配 Secret Reference,同樣能在執行時注入金鑰。
公司要怎麼知道員工電腦裡有沒有明文金鑰?
1Password Developer Watchtower 會掃描員工電腦上的 .env 檔和 ~/.ssh 資料夾,找出明文存放的 API 金鑰和未加密的 SSH 私鑰。擁有者和管理員可以在後台看到彙整報表,報表只有中繼資料,不會收集或顯示金鑰內容。
CI/CD 自動化流程也能用 1Password 取用金鑰嗎?
可以。1Password 提供 Service Account(服務帳號)和 Connect Server 兩種方式,讓 GitHub Actions、CircleCI、Jenkins 等 CI/CD 流程在執行時取用金鑰,程式碼和 CI 設定裡不需要存放明文。
參考資料:1Password:Secure secrets for AI agents and tools、1Password Environments、Secret References、Developer Watchtower、CI/CD 整合
想評估開發團隊的金鑰管理做法?
映藍國際提供 1Password 企業方案的需求評估、試用申請與新台幣報價,通常 1 個工作日回覆。
02-7702-1095 | info@ulane.com.tw | 認識 1Password 企業方案 →
申請 1Password 企業版試用 →