共用方式為


Azure Key Vault 開發者指南

Azure Key Vault 是一項雲端服務,提供加密金鑰、秘密與憑證的安全儲存與管理。 本指南協助開發者將 金鑰保存庫 整合進他們的應用程式中。

概觀

Azure Key Vault 可以讓你:

  • 安全儲存:保護金鑰、秘密與憑證,無需撰寫自訂安全程式碼。
  • 簡化金鑰管理:集中加密作業與金鑰生命週期管理。
  • 客戶擁有的金鑰:讓客戶自行管理金鑰,同時專注於核心應用功能。
  • 外部金鑰管理:使用金鑰進行簽名和加密,同時將它們放在應用程式外部。

關於Azure Key Vault的一般資訊,請參見About Azure Key Vault

開發人員案例

金鑰保存庫 常見的開發工作包括:

  • 儲存與檢索秘密:安全管理連線字串、密碼、API 金鑰及 SAS 令牌。 如需詳細資訊,請參閱關於祕密
  • 使用金鑰進行加密與簽名:執行密碼學操作時,不暴露金鑰資料給應用程式。 如需詳細資訊,請參閱關於金鑰
  • 管理憑證:自動化憑證配置、續期及部署 SSL/TLS。 如需詳細資訊,請參閱關於憑證

公開預覽

Microsoft 會定期釋出 金鑰保存庫 新功能的公開預覽版。 欲試用預覽功能並提供回饋,請聯絡團隊。azurekeyvault@microsoft.com 有關最新功能與更新資訊,請參見 Azure Key Vault

建立與管理 Key Vault

金鑰保存庫 採用雙平面存取模式:

使用預先定義的 金鑰保存庫 貢獻者 角色來授權管理層存取金鑰保存庫資源。 若要獲得有關驗證和授權的更多資訊,請參閱 Azure Key Vault 中的驗證

網路安全性

透過配置私有端點、防火牆或服務端點來降低網路暴露。 如需完整的網路安全指引,包括從最嚴格到最不限制的設定選項,請參閱 Secure your Azure Key Vault: Network Security 以及 Configure Azure Key Vault networking settings

Key Vault 管理的 API 與 SDK

下表列出管理 金鑰保存庫 資源(控制平面操作)的 SDK 與快速啟動工具。 有關最新版本及安裝說明,請參閱 用戶端函式庫

Azure CLI PowerShell REST API 資源管理器 .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 參考
快速入門
參考 參考 參考 參考

在程式碼中驗證 金鑰保存庫

金鑰保存庫 採用 Microsoft Entra 認證,該驗證需要 Microsoft Entra 安全原則才能授權存取。 Microsoft Entra 的安全主體可以是使用者、應用程式服務主體、Azure 資源的受控身份,或這些類型中的任一群組。

驗證最佳做法

對於部署到 Azure 的應用程式,可以使用管理身份來消除在程式碼中儲存憑證的需求。 關於不同環境(生產環境、開發環境、本地環境)的詳細認證指導與安全主體建議,請參見Authentication in Azure Key VaultSecure your Azure Key Vault

Azure 身分識別用戶端程式庫

上述驗證情境由 Azure Identity 用戶端函式庫支援,並與 金鑰保存庫 SDK 整合。 你可以在不同環境和平台間使用 Azure Identity 用戶端函式庫,而不必更改程式碼。 該程式庫會自動從透過 Azure CLI、Visual Studio、Visual Studio Code 及其他方式登入 Azure 的使用者取得驗證權杖。

欲了解更多關於 Azure Identity 用戶端函式庫的資訊,請參閱:

.NET Python Java JavaScript
Azure Identity SDK .NET Azure Identity SDK Python Azure Identity SDK Java Azure Identity SDK JavaScript

備註

我們曾建議在 金鑰保存庫 .NET SDK 第 3 版中使用 App Authentication library,但它現在已被棄用。 若要遷移到 金鑰保存庫 .NET SDK 第 4 版,請依照 AppAuthentication 至 Azure.Identity 的遷移指南

關於如何在應用程式中驗證 金鑰保存庫 的教學,請參見:

管理金鑰、憑證與密碼

備註

.NET、Python、Java、JavaScript、PowerShell 及 Azure CLI 的 SDK 是 金鑰保存庫 功能發佈流程的一部分,配合公開預覽及 金鑰保存庫 服務團隊支援的全面可用性。 金鑰保存庫 的其他 SDK 客戶端可用,但它們是由個別 SDK 團隊透過 GitHub 建置與支援,並發布於其 Teams 排程中。 有關最新 SDK 版本與安裝套件,請參閱 用戶端函式庫

資料平面控制對金鑰、憑證與密碼的存取。 你可以用 Azure RBAC 搭配 金鑰保存庫 來透過資料平面進行存取控制。

金鑰的 API 與 SDK

下表列出用於金鑰操作(資料平面操作)的 SDK 與快速啟動工具。 欲了解更多關於鑰匙的資訊,請參閱 關於鑰匙

Azure CLI PowerShell REST API 資源管理器 .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門

其他程式庫

金鑰保存庫 與 Managed HSM 的密碼學客戶端

此模組提供適用於 Go 語言版本 Azure Key Vault Keys 客戶端模組的加密客戶端。

備註

此專案未獲 Azure SDK 團隊支援,但與其他支援語言的密碼學用戶端相符。

語言 參考文獻
Go 參考

憑證的 API 與 SDK

下表列出用於憑證(資料平面操作)的 SDK 與快速啟動工具。 欲了解更多關於憑證的資訊,請參閱 關於憑證

Azure CLI PowerShell REST API 資源管理器 .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 N/A 參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門

密碼的 API 與 SDK

下表列出用於處理秘密(資料平面操作)的 SDK 與快速啟動工具。 欲了解更多關於秘密的資訊,請參見 「關於秘密」。

Azure CLI PowerShell REST API 資源管理器 .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門

密碼的使用方式

使用 Azure Key Vault 只儲存應用程式的秘密。 應儲存在 金鑰保存庫 的秘密範例包括:

  • 客戶端應用程式密碼
  • 連線字串
  • 密碼
  • 共用存取金鑰
  • SSH 金鑰

任何與密碼相關的資訊,例如使用者名稱與應用程式 ID,都可以作為密碼的標籤儲存。 對於其他敏感設定,你應該使用 Azure 應用程式組態

有關安裝套件與原始程式碼,請參閱用戶端程式庫

在應用程式中使用 金鑰保存庫

為了善用 金鑰保存庫 最新的功能,我們建議你使用 金鑰保存庫 SDK 來在應用程式中使用秘密、憑證和金鑰。 金鑰保存庫 SDK 與 REST API 會隨著產品新功能的釋出而持續更新,並遵循最佳實務與指引。

對於基本情境,還有其他函式庫與整合解決方案,提供 Microsoft 合作夥伴或開源社群的支援,方便簡化使用。

對於憑證,您可以使用:

對於密碼,您可以使用:

程式碼範例

關於在應用程式中使用金鑰保存庫的完整範例,請參見 Azure Key Vault 程式碼範例

工作專屬指引

以下文章與情境提供針對 Azure Key Vault 的任務指引:

與 金鑰保存庫 的整合

以下服務與情境使用或整合 金鑰保存庫:

  • 靜態資料加密允許在資料持久化時進行編碼 (加密)。 資料加密金鑰通常會被 Azure Key Vault 中的金鑰加密金鑰加密,以進一步限制存取權限。
  • Azure 資訊保護 允許你管理自己的租戶金鑰。 例如,你可以自己管理租戶金鑰(預設),而不是由 Microsoft 管理,以符合適用於你組織的特定法規。 自行管理租用戶金鑰亦稱為自帶金鑰 (BYOK)
  • Azure Private Link 允許您透過您的虛擬網路中的私有端點存取 Azure 服務(例如,Azure Key Vault、Azure 儲存體 和 Azure Cosmos DB)以及由 Azure 託管的客戶/合作夥伴服務。
  • 金鑰保存庫與 Azure 事件方格 的整合,讓使用者能在 金鑰保存庫 中儲存的秘密狀態變更時收到通知。 您可以將新版本的密碼分發給應用程式,或在密碼即將到期時進行輪換,以防止中斷。
  • 保護你的 Azure DevOps 秘密,防止在 金鑰保存庫 中被不想要的存取。
  • 利用儲存在金鑰保存庫中的機密從Azure Databricks連接到Azure 儲存體。
  • 在 Kubernetes 上設定並執行 Secrets Store CSI 驅動程式 的 Azure Key Vault 提供者。

災害復原和商務持續性

金鑰保存庫 提供內建的災難復原功能,並具備自動區域複製功能。 在生產部署時,啟用軟刪除與清除保護,並實施定期備份。 欲了解更多資訊,請參閱 Azure Key Vault 可用性與冗餘Azure Key Vault 復原管理,以及 Azure Key Vault backup

效能和可擴縮性

在開發使用 金鑰保存庫 的應用程式時,請考慮以下效能與可擴展性的最佳實務:

  • 服務限制:金鑰保存庫 在每個區域的每個保存庫都有交易次數限制。 超過這些限制將導致節流。 欲了解更多資訊,請參閱Azure Key Vault服務限制
  • 限速指引:實作帶有指數回退的重試邏輯來處理限速回應。 更多資訊請參閱 Azure Key Vault節流指引
  • Caching:在應用程式中快取機密資訊與憑證,以減少呼叫"金鑰保存庫"並提升效能。
  • Connection management:盡可能重用 HTTP 連線來金鑰保存庫,以降低延遲並提升效能。

監視與記錄

啟用日誌與監控功能,以提升安全性、合規性及故障排除。 配置診斷設定、事件網格通知及關鍵事件警示。 詳細指引請參閱監控 Azure Key VaultAzure Key Vault 日誌記錄使用 Azure 事件方格 監控 金鑰保存庫,以及確保 Azure Key Vault 的安全:日誌記錄和威脅偵測

常見參數與請求模式

在使用 金鑰保存庫 REST API 時,了解常見參數及請求/回應模式會很有幫助:

  • API 版本:金鑰保存庫 使用版本限制 API。 請在請求中明確指定 API 版本。
  • 認證請求:了解認證憑證的取得與使用方式,包括常見的請求標頭與回應格式。 欲了解更多資訊,請參閱 認證、請求與回應
  • 錯誤代碼:熟悉常見的 REST API 錯誤代碼,以優雅地處理故障。 欲了解更多資訊,請參閱 Azure Key Vault REST API 錯誤代碼

故障排除

需要解決常見問題的協助:

安全性最佳做法

如需完整的安全指引,包括身份與存取管理、資料保護、合規、治理及備份策略,請參見 Secure your Azure Key Vault

其他資源

金鑰保存庫 概念

管理與作業

社區和支持