Skip to main content

密鑰

Kazzle 內建加密保管庫,用於儲存 API 金鑰、資料庫認證、權杖和應用程式所需的其他敏感值。密鑰使用 AES-256-GCM 加密(採用 KMS 包裝的資料加密金鑰)進行靜態加密 — 明文值永遠不會接觸資料庫。

概念

集合將相關密鑰分組在一起(例如 stripe-keysdatabase-credentials)。每個集合都有一個識別碼(小寫、用連字號分隔),您可在設定檔和 CLI 命令中參考。 環境是集合內的選用範圍(例如 productionstaging)。密鑰可限定於特定環境,或保留在集合層級作為預設值。 **解析順序:**解析給定集合 + 環境的密鑰時,環境特定的密鑰會覆蓋同名的集合層級密鑰。這讓您可在環境間共用大多數密鑰,同時按環境覆蓋特定值。

管理密鑰

在應用程式中

開啟 Settings > Vault 以透過 UI 建立集合、環境和密鑰。

使用 AI

AI 可為您建立集合、建立環境、儲存密鑰、在範圍間移動密鑰,以及刪除密鑰。 AI 可看到密鑰名稱和中繼資料,但看不到加密值。

使用 CLI

從應用程式參考密鑰

kazzle.config.ts 中將元件的 env 指向密鑰集合和環境。該範圍內的每個密鑰都會作為處理程序環境變數注入,其名稱與密鑰名稱相符:
env.collectionenv.environment識別碼,不是顯示名稱。使用 env.include 只注入集合密鑰的子集:

密鑰如何變成環境變數

解析元件的密鑰時:
  1. 在您的 Space 內按識別碼找到集合
  2. 載入限定於指定環境的密鑰
  3. 集合層級密鑰(無環境)作為預設值包含
  4. 環境特定的密鑰覆蓋同名的集合層級密鑰
  5. 解析值內的密鑰參考
  6. 密鑰名稱轉換為環境變數格式:大寫,非英數字元變為底線
名為 Stripe Secret Key 的密鑰變成 STRIPE_SECRET_KEY 每個密鑰都有一個主體模式,決定其注入方式:
  • string 密鑰(API 金鑰、權杖、URI)作為純量字串注入
  • json 密鑰(結構化設定)作為 JSON 字串注入
  • fields 密鑰(登入認證、型別欄位包)作為 JSON 字串注入

何時注入密鑰

範本參考

密鑰值可使用 Kazzle 在其他地方使用的相同語法參考其他密鑰欄位:
支援的格式:
  • ${secret.<uuid>.<field>} — 密鑰值或工具參數內的特定欄位或 JSON 路徑(已啟用保管庫參考)。
  • ${secret.<uuid>} — 整個密鑰主體。只在工具明確要求整個原始密鑰時使用;不要在應用程式 env/config 中使用。
參考在載入密鑰後解析。循環或損壞的參考會失敗,而不是無聲地回退。