Topic 1 Question #1
一家公司计划创建一项需要传输加密的服务。客户端和服务后端之间的流量不得解密。该公司将使用基于 TCP 端口 443 的 gRPC 协议来实现该服务。该服务可扩展至数千个并发连接。服务的后端将托管在配置了 Kubernetes 集群自动扩缩器 (Cluster Autoscaler) 和水平 Pod 自动扩缩器的 Amazon Elastic Kubernetes Service (Amazon EKS) 集群上。该公司需要在客户端和后端之间使用双向 TLS 进行身份验证。
哪种解决方案能够满足这些要求?
答案: A
本题核心需求包含四点,一是客户端和后端服务之间的流量全程不得解密,二是需支持客户端与后端的双向TLS认证,三是基于TCP 443的gRPC协议和数千并发连接的性能要求,四是适配EKS集群的Pod和节点自动扩缩能力。符合要求的方案必须使用四层透传的负载均衡,不干预TLS层的交互,同时能够动态适配EKS集群的资源扩缩。选项A使用TCP模式的网络负载均衡器(NLB)实现纯四层流量透传,既不会解密流量,也不会干扰客户端与后端的双向TLS认证流程,同时NLB天生支持超高并发连接,AWS负载均衡控制器可自动同步Pod的扩缩容状态到NLB目标组,完全满足所有需求。
各选项分析:
A. 正确。AWS负载均衡控制器支持配置NLB类型的负载均衡,TCP监听器工作在OSI四层,仅转发TCP报文不会解密TLS payload,满足流量全程不解密的要求,客户端与后端Pod可直接完成双向TLS认证。NLB支持百万级并发连接,完全覆盖数千并发的需求,控制器直接将Pod IP注册为NLB的目标,可随HPA和Cluster Autoscaler的扩缩容自动更新目标组,适配EKS的动态扩缩场景。
B. 错误。应用负载均衡器(ALB)是七层负载均衡,HTTPS监听器必须在ALB侧完成TLS终结才能解析七层协议内容,会导致流量在ALB侧解密,违反客户端与后端流量不得解密的要求,也无法实现端到端的双向TLS认证。
C. 错误。首先ALB的HTTPS监听器需要终结TLS,违反流量不解密的要求;其次将EKS节点组的ASG作为目标,需要通过NodePort转发流量,额外增加网络跳转,且无法直接适配Pod的动态扩缩容,同时ALB终结TLS后无法完成客户端与后端Pod的双向TLS认证。
D. 错误。NLB的TLS监听器默认会在NLB侧完成TLS终结,会解密流量,违反流量全程不解密的要求;同时将节点组ASG作为目标的NodePort转发模式效率较低,且NLB终结TLS后会中断客户端与后端Pod的双向TLS认证流程,无法满足需求。
关键知识点:
1. AWS负载均衡器层级特性:网络负载均衡器(NLB)工作在OSI传输层,TCP监听器可实现流量纯透传,不修改或解密传输层 payload,适配端到端加密场景;应用负载均衡器(ALB)工作在OSI应用层,必须终结TLS才能解析七层协议内容,会解密流量。
2. AWS Load Balancer Controller for EKS的能力:支持将NLB、ALB的目标直接绑定到EKS集群的Pod IP,无需经过节点端口,可自动同步Pod扩缩容状态到负载均衡目标组,适配Kubernetes的自动扩缩能力。
3. NLB监听器类型差异:NLB的TCP监听器仅做四层流量转发,不干预TLS交互;TLS监听器默认会在NLB侧终结TLS连接,解密流量后再向后端转发,不适用于要求端到端全程加密的场景。
参考资料:
AWS Load Balancer Controller 官方文档, https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html
Network Load Balancer 监听器配置官方文档, https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html