解決方案構想
本文說明解決方案概念。 您的雲端架構師可以使用本指南,協助視覺化此架構的一般實作的主要元件。 以本文為起點,設計符合您工作負載具體要求的完善解決方案。
本文概述在分散式環境中建立健全且可調整應用程序的解決方案。 此解決方案會使用 Azure 應用程式組態 和 Azure 金鑰保存庫 來管理及儲存應用程式組態設定、功能旗標,以及一個位置的安全存取設定。
架構
下圖顯示 應用程式組態 和 金鑰保存庫 如何在開發和Azure 環境中共同管理及保護應用程式。
開發環境
在開發環境中,應用程式會透過Visual Studio或 Azure CLI 2.0 版使用身分識別來登入,並將驗證要求傳送至Microsoft Entra ID。
Azure 預備環境或生產環境
Azure 預備和生產環境會使用 受控識別 進行登入和驗證。
資料流程
- 應用程式會在 Visual Studio 偵錯期間傳送驗證要求,或透過 Azure 中的 MSI 進行驗證。
- 成功驗證后,Microsoft Entra ID 會傳回存取令牌。
- 應用程式組態 SDK 會傳送具有存取令牌的要求,以讀取應用程式密鑰保存庫的 應用程式組態 金鑰保存庫 secretURI 值。
- 成功授權後,應用程式組態 傳送組態值。
- 使用登入身分識別,應用程式會傳送要求給 金鑰保存庫,以擷取 應用程式組態 傳送之 secretURI 的應用程式密碼。
- 成功授權後,金鑰保存庫 會傳回秘密值。
元件
- Microsoft Entra ID 是用來管理和保護身分識別的通用平臺。
- 應用程式組態 可讓您將所有 Azure 應用程式的設定儲存在通用託管位置。
- 受控識別提供身分 識別,讓應用程式在連線到支援 Microsoft Entra 驗證的資源時使用。
- 金鑰保存庫 保護雲端應用程式和服務所使用的密碼編譯密鑰和其他秘密。
案例詳細資料
雲端式應用程式通常會在多個區域中的多個虛擬機或容器上執行,並使用多個外部服務。 在分散式環境中建立穩固且可調整的應用程式,會帶來很大的挑戰。
藉由使用 應用程式組態,您可以在單一位置管理及儲存所有應用程式的組態設定、功能旗標和安全存取設定。 應用程式組態 可順暢地與 金鑰保存庫 搭配運作,其會儲存密碼、密鑰和秘密,以進行安全存取。
潛在使用案例
任何應用程式都可以使用 應用程式組態,但下列類型的應用程式最能受益於它:
- 在 Azure Kubernetes Service (AKS) 或部署在一或多個區域中的其他容器化應用程式上執行的微服務。
- 無伺服器應用程式,包括 Azure Functions 或其他事件驅動的無狀態計算應用程式。
- 使用持續部署 (CD) 管線的應用程式。
考量
這些考量能實作 Azure Well-Architected Framework 的支柱,其為一組指導原則,可以用來改善工作負載的品質。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構。
最好在每個環境中針對每個應用程式使用不同的密鑰保存庫:開發、Azure 生產階段前和 Azure 生產環境。 使用不同的保存庫有助於防止跨環境共用秘密,並降低發生缺口時的威脅。
若要使用這些案例,登入身分識別必須在 應用程式組態 資源中具有 應用程式組態 數據讀取器角色,且具有明確的存取原則,才能擷取 金鑰保存庫 中的秘密。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- Sowmyan Soman |主要雲端解決方案架構師
下一步
深入瞭解元件技術: