iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0

在 n8n 中,Credential(憑證/金鑰) 用來連接外部服務(如資料庫、雲端 API、Discord、Slack…)。如果這些憑證被竊取或誤洩,駭客就能直接冒用系統權限,造成比單純 webhook 外洩更嚴重的後果。

安全守則

首先,要避免 硬編碼金鑰。許多人會直接把 API Key 或密碼寫在 workflow 的 Node 參數或程式碼裡,這會導致金鑰出現在 export JSON、Git repo 或除錯日誌中,任何有存取權的人都能輕易取得。

正確做法是:

  • 使用 n8n 內建的 Credential 管理功能,將金鑰存放於 Credential 項目,而不是 workflow 本身。
  • Workflow 內只引用 Credential 名稱,實際的敏感值由 n8n 的加密儲存機制管理。

n8n 預設會將 Credential 儲存在資料庫(SQLite/Postgres)並以 主金鑰(encryption key) 加密,因此建議:

  • 在 .n8n/config 或環境變數中設定 N8N_ENCRYPTION_KEY,且不可與程式碼一同進版控。
  • Encryption key 建議長度至少 32 位元以上,並妥善保存於安全的 Secret Manager(如 HashiCorp Vault、AWS Secrets Manager、或 Docker Secret)。

避免過度開放存取:

  • 限制誰能進入 n8n 的 UI,因為有權限的使用者就能直接讀取與編輯 Credential。
  • 開啟 Role-based Access Control (RBAC),確保只有管理員能新增/修改 Credential,普通用戶僅能使用已授權的項目。

也可以搭配日誌與審計:

  • 開啟 n8n 的 Audit Log,紀錄誰在何時存取或變更 Credential。
  • 搭配外部監控(如 Fail2Ban、防火牆、SIEM 系統),即時偵測異常存取。

總結

Credential 管理的核心思路是 不硬編碼、不外露、必加密、最小權限。遵守這些原則,就能大幅降低 API Key、密碼等敏感資訊被濫用的風險。


上一篇
# 硬編碼金鑰外洩
下一篇
# 防禦策略-金鑰輪替與過期
系列文
別讓駭客拿走你的AI控制權:MCP x n8n 防禦實戰全攻略21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言