保护网络流

已完成

网络流可以归类为:

  • 入口流量:从客户端到群集中运行的工作负荷。
  • 出口流量:从群集中的 Pod 或节点到外部服务。
  • Pod 到 Pod 流量:Pod 之间的通信。 此流量包括入口控制器和工作负荷之间的通信。 此外,如果工作负荷由部署到群集的多个应用程序组成,这些应用程序之间的通信将属于此类别。
  • 管理流量:客户端和 Kubernetes API 服务器之间的流量。

此体系结构具有多个安全层来保护所有类型的流量。

显示如何保护多种网络流量的图表。

入口流量流

该体系结构仅接受来自客户端的 TLS 加密请求。 TLS v1.2 是最低允许版本,并且仅限于受限的密码套件。 服务器名称指示 (SNI) 严格已启用。 端到端 TLS 通过使用两个不同的 TLS 证书通过应用程序网关进行设置,如下图所示。

此图显示如何在群集中使用入口控制器。

  1. 客户端将 HTTPS 请求发送到域名:delta.contoso.com。 该名称通过 DNS A 记录关联到 Azure 应用程序网关的公共 IP 地址。 此流量经过加密,以确保无法检查或更改客户端浏览器和网关之间的流量。
  2. 应用程序网关具有集成的 Web 应用程序防火墙 (WAF),并为 delta.contoso.com 协商 TLS 握手,仅允许安全密码。 应用程序网关是 TLS 终止点,因为它需要处理 WAF 检查规则,并执行将流量转发到配置的后端的路由规则。 TLS 证书存储在 Azure Key Vault 中。 它使用与应用程序网关集成的用户分配的托管标识进行访问。
  3. 当流量从应用程序网关转移到后端时,将使用另一个 TLS 证书(域名 *.aks-ingress.contoso.com 的通配符)重新加密,然后转发到内部负载均衡器。 此重新加密可确保不安全的流量不会流向群集子网。
  4. 入口控制器通过负载均衡器接收加密流量。 控制器是 *.aks-ingress.contoso.com 的另一个 TLS 终止点,并通过 HTTP 将流量转发到工作负荷 Pod。 证书存储在 Azure Key Vault 中,并使用容器存储接口(CSI)驱动程序装载到群集中。

可以在到工作负荷 Pod 的每一跃点上实现端到端 TLS 流量。