Azure Key Vault 開發人員指南

Azure Key Vault 可讓您從應用程式內安全地存取敏感性資訊:

  • 不需要自行撰寫程式碼即可保護金鑰、祕密和憑證,而且也能輕易地從應用程式加以使用。
  • 您可以允許客戶擁有及管理自己的金鑰、秘密和憑證,如此一來,您就能夠專注於提供核心軟體功能。 透過這種方式,您的應用程式將不需要對客戶的租用戶金鑰、秘密和憑證負起責任或潛在責任。
  • 您的應用程式可以使用金鑰進行簽署和加密,但保持從應用程式外部進行金鑰管理。 如需詳細資訊,請參閱關於金鑰
  • 您可以將密碼、存取金鑰和 SAS 權杖等認證儲存在 Key Vault 中作為秘密來進行管理。 如需詳細資訊,請參閱關於祕密
  • 管理憑證。 如需詳細資訊,請參閱關於憑證

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

公開預覽

我們會定期發行新 Key Vault 功能的公開預覽。 試用公開預覽功能,然後透過我們的意見反應電子郵件地址 azurekeyvault@microsoft.com,讓我們知道您的想法。

建立和管理金鑰保存庫

如同其他 Azure 服務,Key Vault 是透過 Azure Resource Manager 來管理。 Azure Resource Manager 是 Azure 的部署與管理服務。 您可以使用它來建立、更新及刪除 Azure 帳戶中的資源。

Azure 角色型存取控制 (RBAC) 可控制對管理層 (也稱為管理平面) 的存取權。 您會使用 Key Vault 中的管理平面來建立和管理金鑰保存庫和其屬性,包括存取原則。 您會使用「資料平面」來管理金鑰、憑證和秘密。

您可以使用預先定義的 Key Vault 參與者角色來授與對 Key Vault 的管理存取權。

適用於金鑰保存庫管理的 API 和 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 參考
快速入門
參考 參考 參考 參考

如需安裝套件和原始程式碼,請參閱用戶端程式庫

在程式碼中驗證 Key Vault

Key Vault 使用 Microsoft Entra 驗證,這需要 Microsoft Entra 安全性主體來授與存取權。 Microsoft Entra 安全性主體可以是使用者、應用程式服務主體、Azure 資源受控識別,或由上述任何類型組成的群組。

驗證最佳做法

建議您針對部署到 Azure 的應用程式使用受控識別。 如果您使用不支援受控識別的 Azure 服務,或者如果應用程式會在內部部署,則具有憑證的服務主體是可能的替代方案。 在該情況下,憑證應儲存在 Key Vault 中,並經常輪替。

針對開發和測試環境,使用具有秘密的服務主體。 針對本機開發和 Azure Cloud Shell,使用使用者主體。

建議您在每個環境中使用下列安全性主體:

  • 生產環境:具有憑證的受控識別或服務主體。
  • 測試和開發環境:具有憑證的受控識別、服務主體,或具有秘密的服務主體。
  • 本機開發:具有秘密的使用者主體或服務主體。

Azure 身分識別用戶端程式庫

Azure 身分識別用戶端程式庫支援上述驗證案例,並與 Key Vault SDK 整合。 您可以跨環境和平台使用 Azure 身分識別用戶端程式庫,而不需要變更您的程式碼。 程式庫會自動從透過 Azure CLI、Visual Studio、Visual Studio Code 及其他方式登入 Azure 的使用者擷取驗證權杖。

如需 Azure 身分識別用戶端程式庫的詳細資訊,請參閱:

.NET Python Java JavaScript
Azure 身分識別 SDK .NET Azure 身分識別 SDK Python Azure 身分識別 SDK JAVA Azure 身分識別 SDK JavaScript

注意

建議使用適用於 Key Vault .NET SDK 3 版的應用程式驗證程式庫,但現已淘汰。 若要移轉到 Key Vault .NET SDK 4 版,請遵循對 Azure.Identity 進行 AppAuthentication 的移轉指引

如需如何在應用程式中驗證 Key Vault 的教學課程,請參閱:

管理金鑰、憑證和秘密

注意

適用於 .NET、Python、Java、JavaScript、PowerShell 和 Azure CLI 的 SDK 是 Key Vault 功能發行程序的一部分,透過公開預覽和正式發行且具有 Key Vault 服務小組支援。 Key Vault 的其他 SDK 用戶端可供使用,但其是由個別 SDK 小組透過 GitHub 建置及支援,並在小組排程中發行。

資料平面可控制對金鑰、憑證和秘密的存取權。 您可以使用本機保存庫存取原則或 Azure RBAC,透過資料平面進行存取控制。

適用於金鑰的 API 和 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門

其他程式庫

Key Vault 和受控 HSM 的密碼編譯用戶端

本課程模組提供適用於 Go 的 Azure Key Vault 金鑰用戶端模組的密碼編譯用戶端。

注意

Azure SDK 小組不支援此專案,但會與其他支援語言的密碼編譯用戶端一致。

語言 參考
Go 參考

適用於憑證的 API 和 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 N/A 參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門

適用於秘密的 API 和 SDK

Azure CLI PowerShell REST API Resource Manager .NET Python Java JavaScript
參考
快速入門
參考
快速入門
參考 參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門
參考
快速入門

秘密的使用方式

Azure Key Vault 只能用來儲存您應用程式的秘密。 應儲存在 Key Vault 中的秘密範例包括:

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

任何與秘密相關的資訊 (例如使用者名稱和應用程式識別碼) 都可以儲存為秘密中的標記。 針對任何其他敏感性組態設定,您應該使用 Azure 應用程式組態

參考資料

如需安裝套件和原始程式碼,請參閱用戶端程式庫

如需 Key Vault 的資料平面安全性資訊,請參閱 Azure Key Vault 安全性功能

在應用程式中使用 Key Vault

若要充分利用 Key Vault 中的最新功能,建議您使用可用的 Key Vault SDK 以在應用程式中使用秘密、憑證和金鑰。 當產品推出新功能時,會更新 Key Vault SDK 和 REST API,並遵循最佳做法和指導方針。

在基本案例中,有其他程式庫和整合解決方案可簡化使用方式,並具備 Microsoft 合作夥伴或開放原始碼社群提供的支援。

針對憑證,您可以使用:

針對秘密,您可以使用:

程式碼範例

如需搭配應用程式使用 Key Vault 的完整範例,請參閱 Azure Key Vault 程式碼範例

工作特定指引

下列文章和案例提供使用 Azure Key Vault 的工作特定指引:

與 Key Vault 整合

下列服務和案例會使用 Key Vault 或與其整合:

  • 待用加密可讓您對保存的資料進行編碼 (加密)。 資料加密金鑰通常會使用 Azure Key Vault 中的加密金鑰進行加密,以進一步限制存取。
  • Azure 資訊保護可讓您管理自己的租用戶金鑰。 例如,您可以管理自己的租用戶金鑰,以符合適用於貴組織的特定規範,而不需 Microsoft 管理您的租用戶金鑰 (預設值)。 管理您自己的租用戶金鑰也稱為攜帶您自己的金鑰 (BYOK)。
  • Azure Private Link 可讓您透過虛擬網路中的私人端點存取 Azure 服務 (例如 Azure Key Vault、Azure 儲存體和 Azure Cosmos DB),以及 Azure 託管的客戶/合作夥伴服務。
  • Key Vault 與 Azure 事件方格整合,可讓使用者在 Key Vault 中儲存的秘密狀態變更時收到通知。 您可以將新版本的秘密散發至應用程式,或輪替即將到期的秘密,以避免中斷。
  • 保護您的 Azure DevOps 秘密,避免 Key Vault 中的不必要存取。
  • 使用儲存在 Key Vault 中的秘密,從 Azure Databricks 連線到 Azure 儲存體
  • 在 Kubernetes 上,為秘密存放區 CSI 驅動程式設定及執行 Azure Key Vault 提供者。

Key Vault 的概觀和概念

若要深入了解︰

社交網路