你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 mTLS 部署 AKS 和 API Management

Microsoft Entra ID
Azure Kubernetes 服务 (AKS)
Azure API 管理
Azure 容器注册表
Microsoft Defender for Cloud

解决方案构想

本文介绍了一种解决方案构想。 云架构师可以通过本指南来帮助可视化此体系结构的典型实现的主要组件。 以本文为起点,设计一个符合工作负荷特定要求的架构合理的解决方案。

此解决方案演示如何在提供端到端加密的体系结构中,通过相互 TLS (mTLS) 将 Azure Kubernetes 服务 (AKS) 与 Azure API Management 集成。

体系结构

示意图:通过 mTLS 集成 AKS 和 API Management 的体系结构。

下载此体系结构的 Visio 文件

数据流

  1. 用户从 Internet 向应用程序终结点发出请求。
  2. Azure 应用程序网关接收 HTTPS 形式的流量,并向用户提供之前从 Azure 密钥保管库加载的 PFX 证书。
  3. 应用程序网关使用私钥来解密流量(SSL 卸载)、执行 Web 应用程序防火墙检查,并使用公钥(端到端加密)重新加密流量。
  4. 应用程序网关基于后端池应用规则和后端设置,并通过 HTTPS 将流量发送到 API Management 后端池。
  5. 在内部虚拟网络模式(仅开发人员层和高级层可用)下部署 API Management,采用专用 IP 地址。 该服务通过自定义域 PFX 证书接收 HTTPS 形式的流量。
  6. Microsoft Entra ID 提供身份验证,并通过 OAuth 和客户端证书验证应用 API Management 策略。 若要在 API Management 中通过 HTTP/2 接收和验证客户端证书,需要在 API Management 中的“自定义域”边栏选项卡上启用“协商客户端证书”。
  7. API Management 通过 HTTPS 将流量发送到 AKS 专用群集的入口控制器。
  8. AKS 入口控制器接收 HTTPS 流量并验证 PEM 服务器证书和私钥。 大多数企业级入口控制器都支持 mTLS。 示例包括 NGINX 和 AGIC。
  9. 入口控制器使用 cert.pem 和 key.pem 处理 TLS 机密(Kubernetes 机密)。 入口控制器使用私钥解密流量(卸载)。 对于基于要求的安全性更强的机密管理,可将 CSI 驱动程序与 AKS 集成。
  10. 入口控制器使用私钥重新加密流量,并通过 HTTPS 将流量发送到 AKS Pod。 根据要求,可以将 AKS 入口配置为 HTTPS 后端或直通。

组件

  • 应用程序网关。 应用程序网关是一种 Web 流量负载均衡器,可用于管理传递至 Web 应用的流量。
  • AKS。 AKS 提供完全托管的 Kubernetes 群集,用于部署、缩放和管理容器化应用程序。
  • Azure 容器注册表。 容器注册表是 Azure 上一个托管的专用 Docker 注册表服务。 可以使用容器注册表来存储部署到群集中的专用 Docker 映像。
  • Microsoft Entra ID。 将 AKS 与 Microsoft Entra ID 集成后,可使用 Microsoft Entra 用户、组或服务主体作为 Kubernetes RBAC 中的主体以管理 AKS 资源。
    • “托管标识”。 使用 Microsoft Entra 托管标识,就无需管理证书、机密和密钥等凭据。
  • Azure SQL 数据库。 SQL 数据库是面向云生成的完全托管的智能关系数据库服务。 可以使用 SQL 数据库为新式云应用程序创建高可用性、高性能的数据存储层。
  • Azure Cosmos DB。 Azure Cosmos DB 是一项完全托管的 NoSQL 数据库服务,用于生成和现代化可缩放的高性能应用程序。
  • API 管理。 可以使用 API Management 向开发人员、合作伙伴和员工发布 API。
  • Azure 专用链接。 专用链接提供对 Azure 上托管的 PaaS 服务的访问权限,因此可以将数据保存在 Microsoft 网络上。
  • Key Vault。 密钥保管库可以为密钥和其他机密提供更强的安全性。
  • Defender for Cloud。 Defender for Cloud 是用于云安全态势管理和云工作负载保护的解决方案。 该解决方案可以发现云配置中的弱点,帮助增强环境的安全性,并保护多云环境和混合环境中的工作负载免受不断演变的威胁。
  • Azure Monitor。 可以使用 Monitor 从 Azure 和本地环境收集、分析和处理遥测数据。 Monitor 有助于最大程度地提高应用程序的性能和可用性,并可主动识别问题。
    • Log Analytics。 可通过 Log Analytics 使用 Azure Monitor 日志中的数据编辑和运行日志查询。
    • Application Insights。 Application Insights 是 Azure Monitor 的扩展。 该功能提供应用程序性能监视 (APM)。
  • Microsoft Sentinel。 Microsoft Sentinel 是云原生安全性信息和事件管理器平台,该平台使用内置 AI 来帮助你分析大量数据。
  • Azure Bastion。 Azure Bastion 是一项完全托管服务,可针对 VM 提供 RDP 和 SSH 访问,且完全无需通过公共 IP 地址公开。 可以直接在本地或对等虚拟网络中预配服务,以获取对网络中所有 VM 的支持。
  • Azure 专用 DNS。 专用 DNS 可管理并解析虚拟网络中的域名,而无需添加自定义 DNS 解决方案。

方案详细信息

可以使用此解决方案在提供端到端加密的体系结构中通过 mTLS 集成 AKS 和 API Management。

可能的用例

  • AKS 通过 mTLS 与 API Management 和应用程序网关集成。
  • API Management 和 AKS 之间的端到端 mTLS。
  • 适用于需要端到端 TLS 的组织的高安全性部署。 例如,金融领域中的组织就能得益于此解决方案。

此方法可用于管理以下方案:

  • 在内部模式下部署 API Management,并使用应用程序网关公开 API。
  • 配置 mTLS 和端到端加密,以实现高安全性并通过 HTTPS 传递流量。
  • 使用增强的安全性专用终结点连接到 Azure PaaS 服务。
  • 实现 Defender for Containers 安全性。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤