适用于应用程序负载均衡器的 mTLS 简介

适用于应用程序负载均衡器的 mTLS 简介

💡 原文中文,约6500字,阅读约需16分钟。
📝

内容提要

AWS最近宣布支持应用程序负载均衡器(ALB)提供双向认证客户端的X509证书。ALB在应用层上进行负载均衡,支持mTLS验证和直通模式,并提供监控和日志功能。

🔎

延伸解读

mTLS 验证模式与直通模式的核心区别

ALB 的 mTLS 验证模式由 ALB 使用信任库验证客户端证书,并阻止未通过验证的请求,从而将计算密集型身份验证处理转移到负载均衡器。直通模式则将整个证书链通过 HTTP 标头转发给后端目标,由后端目标自行解析并验证证书,适合需要保留对验证过程控制权的场景。两种模式在证书验证责任、后端处理逻辑以及是否添加额外标头方面存在明显差异。

选择 ALB 还是 NLB 实现 mTLS

ALB 在应用层运行,支持基于主机名、路径或 HTTP 标头的路由规则,适合 HTTPS 应用程序并希望执行应用级路由的场景。NLB 在传输层运行,提供低延迟的 TCP/UDP 负载均衡,且由后端目标终止客户端的 TLS 连接。如果安全合规规则要求服务器终止 TLS,则应考虑 NLB;若希望卸载 TLS/mTLS 操作并利用应用层路由,ALB 更为合适。

实施 mTLS 时需关注的限制与成本

ALB 对客户端证书链的深度和大小有限制,可通过 CloudWatch 指标 ClientCertExceedsDepthLimit 和 ClientCertExceedsSizeLimit 跟踪违规请求。使用信任库需额外付费,启用 mTLS 时还需考虑 ALB 的定价问题。此外,在直通模式下,后端目标必须实现解析证书链、处理无证书请求以及返回错误代码的逻辑,并考虑证书过期等边缘情况。

❓

Q&A

什么是mTLS,它与传统TLS有什么不同?

mTLS是双向传输层安全性协议,要求服务器和客户端相互进行身份验证,而传统TLS仅要求服务器验证客户端。

应用程序负载均衡器(ALB)如何支持mTLS?

ALB支持mTLS的两种操作模式:mTLS验证模式和mTLS直通模式,分别用于不同的客户端身份验证需求。

在mTLS验证模式下,ALB是如何验证客户端证书的?

在mTLS验证模式下,ALB使用信任库验证客户端证书,确保只有有效证书的客户端才能与后端目标通信。

mTLS直通模式的工作流程是怎样的?

在mTLS直通模式下,ALB将整个证书链通过HTTP标头转发给后端目标,后端目标负责解析和验证客户端证书。

使用ALB的mTLS时需要考虑哪些费用问题?

使用mTLS时需考虑额外的费用和定价问题,特别是在使用信任库时。

ALB与网络负载均衡器(NLB)在mTLS支持上有什么区别?

ALB在应用层支持mTLS并提供应用级路由,而NLB在传输层提供低延迟负载均衡,主要用于TCP/UDP连接。

🏷️

标签

➡️

继续阅读