解决方案构想
本文介绍了一种解决方案构想。 云架构师可以通过本指南来帮助可视化此体系结构的典型实现的主要组件。 以本文为起点,设计一个符合工作负荷特定要求的架构合理的解决方案。
本文概述了在分布式环境中创建可靠且可缩放的应用程序的解决方案。 该解决方案使用 Azure 应用程序配置和 Azure Key Vault 在一个位置管理和存储应用程序配置设置、功能标记和安全访问设置。
体系结构
下图显示了应用程序配置和 Key Vault 如何在开发和 Azure 环境中协同工作来管理和保护应用。
开发环境
在开发环境中,该应用通过 Visual Studio 或 Azure CLI 2.0 版使用标识登录并向 Microsoft Entra ID 发送身份验证请求。
下载此体系结构的 Visio 文件。
Azure 过渡环境或生产环境
Azure 暂存环境和生产环境使用托管标识进行登录和身份验证。
下载此体系结构的 Visio 文件。
数据流
- 应用程序在 Visual Studio 中调试期间发送身份验证请求,或通过 Azure 中的 MSI 进行身份验证。
- 身份验证成功后,Microsoft Entra ID 将返回访问令牌。
- 应用程序配置 SDK 发送带有访问令牌的请求,以读取应用的密钥保管库的应用程序配置 KeyVault secretURI 值。
- 成功授权后,应用程序配置将发送配置值。
- 利用登录标识,应用向 Key Vault 发送请求,以检索应用程序配置发送的 secretURI 的应用程序机密。
- 成功授权后,密钥保管库将返回机密值。
组件
- Microsoft Entra ID 是用于管理和保护标识的通用平台。
- 应用程序配置提供一种在通用托管位置存储所有 Azure 应用的配置的方法。
- 托管标识为应用程序提供一个标识,可以在连接到支持 Microsoft Entra 身份验证的资源时使用。
- Key Vault 保护云应用和服务使用的加密密钥和其他机密。
方案详细信息
基于云的应用程序通常在多个区域中的多个虚拟机或容器上运行,并且使用多个外部服务。 在分布式环境中创建可靠且可缩放的应用程序会带来巨大的挑战。
通过使用应用程序配置,你可以在一个位置管理和存储所有应用的配置设置、功能标记和安全访问设置。 应用程序配置可以与 Key Vault 无缝配合使用,后者可用于存储密码、密钥和机密以实现安全访问。
可能的用例
任何应用程序都可以使用应用程序配置,但以下类型的应用程序最适合使用:
- 运行 Azure Kubernetes 服务 (AKS) 或部署在一个或多个区域的其他容器化应用的微服务。
- 无服务器应用,其中包括 Azure Functions 和其他事件驱动型无状态计算应用。
- 使用持续部署 (CD) 管道的应用。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架。
最好在每个环境(开发、Azure 预生产和 Azure 生产环境)中为每个应用程序使用不同的密钥保管库。 使用不同的保管库有助于防止跨环境共享机密,并在发生违规事件时减少威胁。
要使用这些方案,登录标识在应用程序配置资源中必须具有应用配置数据读取者角色,并具有用于检索 Key Vault 中的机密的显式访问策略。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Sowmyan Soman | 首席云解决方案架构师
后续步骤
了解有关组件技术的详细信息: