共用方式為


使用 Azure Key Vault 在生產階段保護祕密

提示

本內容節錄自《容器化 .NET 應用程式的 .NET 微服務架構》(.NET Microservices Architecture for Containerized .NET Applications) 電子書,可以在 .NET Docs 上取得,或免費下載可供離線閱讀的 PDF。

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

儲存為環境變數或由密碼管理員工具所儲存的密碼仍然會儲存在本機,而且在電腦上未加密。 儲存密碼的更安全選項是 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 註冊為最新的設定提供者,如此才能覆寫先前提供者的設定值。

其他資源