Key Vault 中密碼管理的最佳做法

Azure Key Vault 可讓您安全地將服務或應用程式認證 (例如密碼和存取金鑰) 儲存為秘密。 金鑰保存庫中的所有秘密都會使用軟體金鑰進行加密。 使用 Key Vault 時,您不再需要將安全性資訊儲存在應用程式中。 不需將安全性資訊儲存在應用程式中,就不需要讓此資訊成為程式碼的一部分。

應儲存在 Key Vault 中的祕密範例:

  • 用戶端應用程式祕密
  • 連接字串
  • 密碼
  • 存取金鑰 (Redis Cache、Azure 事件中樞、Azure Cosmos DB)
  • SSH 金鑰

任何其他敏感性資訊 (例如 IP 位址、服務名稱和其他設定) 都應儲存在 Azure 應用程式設定中,而不是 Key Vault。

每個個別的金鑰保存庫都會定義秘密的安全性界限。 針對每個應用程式、每個區域、每個環境的單一金鑰保存庫,建議您為應用程式提供更細微的秘密隔離。

如需 Key Vault 最佳做法的詳細資訊,請參閱使用 Key Vault 的最佳做法

設定和儲存

將存取資料庫或服務所需的認證資訊,儲存在秘密值中。 在使用者名稱/密碼等複合認證情況下,可以將其儲存為連接字串或 JSON 物件。 應該將管理所需的其他資訊儲存於標籤中,也就是輪替設定。

如需秘密的詳細資訊,請參閱關於 Azure Key Vault 秘密

祕密輪替

秘密常會儲存在應用程式記憶體中,作為整個應用程式生命週期的環境變數或設定,因而容易受到非必要的公開。 因為秘密很容易洩漏或曝光,請務必經常輪替,至少每 60 天一次。

如需秘密輪替程序的詳細資訊,請參閱針對使用兩組驗證認證的資源,自動輪替祕密

存取和網路隔離

您可以指定存取保存庫所使用的 IP 位址來減少保存庫的暴露。 設定您的防火牆,使其僅允許應用程式和相關服務存取保存庫中的秘密,以降低攻擊者存取秘密的能力。

如需網路安全性的詳細資訊,請參閱設定 Azure Key Vault 網路設定

此外,應用程式應僅具備讀取秘密的存取權,採取最低特殊權限存取。 您可以使用存取原則或 Azure 角色型存取控制,來控制對秘密的存取。

若要進一步了解 Azure Key Vault 中的存取控制,請參閱:

服務限制和快取

Key Vault 最初建立時,採用的是 Azure Key Vault 服務限制中指定的節流限制。 若要達到最大輸送量率,請參考以下兩個建議的最佳做法:

  • 在應用程式中快取秘密至少八小時。
  • 實作指數退避重試邏輯,以處理超出服務限制時的案例。

如需節流指引的詳細資訊,請參閱 Azure Key Vault 節流指引

監視

若要監視祕密的存取權及其生命週期,請開啟 Key Vault 記錄。 使用 Azure 監視器,在單一位置監視所有保存庫中的所有秘密活動。 或者使用 Azure 事件方格監視秘密的生命週期,因為它可以輕易與 Azure Logic Apps 和 Azure Functions 整合。

如需詳細資訊,請參閱

備份和清除保護

啟用清除保護,以防止惡意或意外刪除秘密。 在清除保護不可行的情況下,建議備份無法從其他來源重新建立的秘密。

深入了解