什麼是 Azure Key Vault?

已完成

Azure Key Vault 是一種祕密存放區:用來儲存應用程式祕密 (例如必須隨時保持安全的密碼和連接字串等設定值) 的集中式雲端服務。 Key Vault 藉由將應用程式的秘密保存在單一中央位置,協助您控制這些秘密。 它提供安全存取、權限控制和存取記錄。

使用 Key Vault 的主要優點如下:

  • 從其他設定與程式碼中區分敏感性應用程式資訊,以降低意外流失的風險
  • 使用針對需要存取祕密的應用程式和個人量身打造的存取原則,限制祕密的存取
  • 集中式祕密儲存體,這表示只需要在單一位置進行必要的變更
  • 存取記錄和監視,以協助您瞭解如何及何時存取祕密

祕密會儲存在個別的保存庫中,也就是用來將祕密分組在一起的 Azure 資源。 利用 REST API,完成秘密存取和保存庫管理。 適用於許多熱門語言的所有 Azure 管理工具和程式庫也都支援此 API。 每個保存庫都有裝載其 API 的唯一 URL。

重要

Key Vault 專為儲存伺服器應用程式的設定祕密所設計。 但無法用來儲存屬於您應用程式使用者的資料。 它不應該用於應用程式的用戶端部分。 此行為會反映在其效能特性、API 和成本模型中。

使用者資料應該儲存在其他地方,例如使用透明資料加密的 Azure SQL 資料庫,或具有儲存體服務加密的儲存體帳戶。 應用程式用來存取這些資料存放區的祕密可以保存在 Key Vault 中。

Key Vault 中的秘密是什麼?

在 Key Vault 中,祕密是字串的名稱/值對。 祕密名稱的長度必須是1-127 個字元,只能包含英數字元和連字號,且在保存庫中必須是唯一的。 秘密值可以是大小不超過 25 KB 的任何 UTF-8 字串。

提示

祕密名稱不需要特別考量祕密本身。 如果您的實作會呼叫祕密,您可以將其儲存在您應用程式的設定中。 保存庫名稱和 URL 也是如此。

注意

Key Vault 支援字串以外的兩種額外秘密:金鑰憑證。 Key Vault 提供其使用案例專屬的實用功能。 此課程模組不包含這些功能,而是專注於祕密字串,例如密碼和連接字串。

保存庫驗證和權限

Key Vault 的 API 會使用 Microsoft Entra ID 來驗證使用者和應用程式。 保存庫存取原則是以「動作」為基礎,並應用到整個保存庫。 例如,對保存庫具有 Get (讀取祕密值)、List (列出所有祕密的名稱),以及 Set (建立或更新祕密值) 權限的應用程式可以建立祕密、列出所有祕密名稱,以及取得及設定該保存庫中的所有祕密值。

在保存庫上執行的所有動作都需要驗證和授權。 無法授與任何類型的匿名存取權。

提示

將保存庫存取權授與開發人員和應用程式時,只授與所需的最小權限集。 權限限制有助於避免程式碼錯誤 (bug) 所造成的意外,並降低認證遭竊或惡意程式碼插入至應用程式所帶來的影響。

開發人員通常只需要開發環境保存庫的 GetList 權限。 有些工程師需要完整權限,才能在必要時變更和新增祕密。

針對應用程式,通常只需要 Get 權限。 根據應用程式的實作方式而定,某些應用程式可能需要 List 權限。 我們在此課程模組練習中實作的應用程式需要 List 權限,原因是該應用程式從保存庫讀取祕密的技術需要該權限。