共用方式為


使用 Azure Key Vault 來保護運行階段的機密資料

小提示

此內容是適用於容器化 .NET 應用程式的電子書.NET 微服務架構摘錄,可在 .NET Docs 或免費下載的 PDF 中取得,可脫機讀取。

.NET 微服務架構的容器化 .NET 應用程式電子書封面縮圖。

儲存為環境變數或秘密管理員工具所儲存的秘密仍會儲存在本機,且未加密在計算機上。 儲存秘密的較安全選項是 Azure Key Vault,可提供安全、集中的位置來儲存密鑰和秘密。

Azure.Extensions.AspNetCore.Configuration.Secrets 套件可讓 ASP.NET Core 應用程式從 Azure Key Vault 讀取組態資訊。 若要開始使用 Azure Key Vault 中的秘密,請遵循下列步驟:

  1. 將您的應用程式註冊為 Azure AD 應用程式。 (金鑰保存庫的存取權是由 Azure AD 管理。這可透過 Azure 管理入口網站來完成。\

    或者,如果您想要讓應用程式使用憑證進行驗證,而不是使用密碼或客戶端密碼,您可以使用 New-AzADApplication PowerShell Cmdlet。 您向 Azure Key Vault 註冊的憑證只需要您的公鑰。 您的應用程式會使用私鑰。

  2. 藉由建立新的服務主體,為已註冊的應用程式提供密鑰保存庫的存取權。 您可以使用下列 PowerShell 命令來執行這項作:

    $sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>"
    Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
    
  3. 當您建立 IConfigurationRoot 實例時,呼叫 AzureKeyVaultConfigurationExtensions.AddAzureKeyVault 擴充方法,將密鑰保存庫納入應用程式中作為組態來源。

請注意,呼叫 AddAzureKeyVault 需要先前步驟中註冊並授與密鑰保存庫存取權的應用程式識別碼。 或者,您可以先執行 Azure CLI 命令: az login,然後使用 的多載 AddAzureKeyVault 來取代用戶端的 DefaultAzureCredential。

這很重要

建議您將 Azure Key Vault 註冊為最後一個設定提供者,以便覆寫先前提供者的組態值。

其他資源