1Password

工程師用 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 程式助理參與的 commitClaude Code 共同撰寫的 commit 外洩率 3.2%,整體平均是 1.5%
MCP 設定檔裡的金鑰找到 24,008 筆,其中 2,117 筆確認仍可使用
外洩後一直沒換掉2022 年確認有效的外洩金鑰,4 年後仍有 64% 可以使用

資料來源:GitGuardian, The State of Secrets Sprawl 2026

另外,報告也指出公司內部的程式碼庫外洩機率是公開程式庫的 6 倍。程式碼沒有公開,金鑰一樣可能透過內部人員、外包廠商或被入侵的帳號流出去。

AI 寫程式時,金鑰最常從這 4 個地方外流

共通原則:金鑰不要以明文出現在檔案裡。下面 4 種做法的核心都一樣:金鑰存在 1Password,程式碼和設定檔只放「指向金鑰的位置」,程式執行的當下才由 1Password 把真正的值帶進去。

做法 1:用 Secret Reference 取代明文金鑰

1Password CLI 的 Secret Reference(金鑰參照)是一串指向金鑰位置的網址,格式是 op://保險庫/項目/欄位。設定檔裡只寫這串網址,執行時用 op run 啟動程式,1Password 會自動把網址換成真正的金鑰。

# .env 檔裡只放參照,不放真正的金鑰 OPENAI_API_KEY="op://dev-team/OpenAI/api-key" DB_PASSWORD="op://dev-team/staging-db/password" # 用 op run 啟動程式,執行時才注入金鑰 op run --env-file=.env -- npm run dev

這樣做的好處:

做法 2:用 1Password Environments 掛載 .env 檔

1Password Environments 是專門管理專案環境變數的功能,可以把整組變數存在 1Password,再「掛載」成專案資料夾裡的 .env 檔。程式讀起來跟一般 .env 檔一樣,但金鑰不會以明文寫進硬碟。

做法 3:讓 AI 工具直接整合 1Password

1Password 針對 AI 程式工具推出了幾項整合,目的是讓 AI agent 能正常執行需要金鑰的指令,同時看不到金鑰內容:

功能做什麼支援工具
Cursor/Claude Code 外掛把下面兩項功能和操作說明打包在一起,安裝後 AI agent 就知道怎麼使用 1Password EnvironmentsCursor、Claude Code
Agent Hooks(驗證機制)AI agent 執行指令前,先檢查需要的 .env 掛載是否正常,沒設定好就停下來,並告訴使用者怎麼修正Claude Code、Cursor、GitHub Copilot、Windsurf
Environments MCP ServerAI agent 可以建立、管理 Environment 和變數名稱,每個動作都會跳出授權確認,不會把金鑰內容回傳給 AICursor、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 檔可以直接匯入 1Password Environments,順手完成搬遷。

建議的導入順序

階段做什麼效果
1. 盤點開啟 Developer Watchtower,看全公司有多少明文金鑰散落在員工電腦知道風險有多大、先處理哪些專案
2. 集中把金鑰搬進 1Password,依專案或環境(開發、測試、正式)分保險庫或 Environment金鑰有單一來源,權限可控
3. 改參照程式碼和設定檔改用 Secret Reference,搭配 op run 或掛載 .env檔案外流也拿不到金鑰
4. 接 AI 工具安裝 Cursor/Claude Code 外掛、設定 Agent HooksAI 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 企業版試用 →