CloudFront添加源站mTLS认证,实现端到端零信任
来源: InfoQ - 后端
Amazon CloudFront最近新增了对源站服务器双向TLS认证的支持,完成了从浏览者(viewer)经由CloudFront到后端基础设施的端到端零信任认证。CDN服务在2025年11月就已经添加了浏览者mTLS,但CloudFront到源站的请求仍需要客户使用共享密钥或IP白名单构建自定义的认证方案。
启用源站mTLS后,CloudFront在连接源站服务器时会出示客户端证书,源站服务器则验证CloudFront的身份后才接受请求。这种基于密码学的认证方式取代了维护IP白名单或轮换共享密钥头的运维开销。
Reddit的用户J‑4ce指出,这种方案对多云与混合部署场景的价值尤为明显:
这是保护本地或其他云环境中源站的杀手级应用之一,无需引入VPN即可实现安全访问。随着CloudFront新增的源站mTLS,这一能力会更进一步:源站可以通过密码学验证流量确实来自CloudFront,取代IP白名单和密钥头信息,实现真正的零信任身份验证。
该认证机制使用带有clientAuth扩展密钥的X.509v3证书。CloudFront在TLS握手过程中出示自身客户端的证书,同时验证源站的服务端证书,形成双向校验,双方都不依赖隐式信任。客户可以使用AWS专用证书管理器(AWS Private CA)的证书(支持自动化生命周期管理与续期通知),也可以通过AWS Certificate Manager(ACM)导入第三方私有CA的证书。
J‑4ce同时在Reddit上强调,最佳实践是使用AWS Private CA并开启自动化轮换,而不是使用长期的静态证书:
关于证书:它们确实可以长期有效,但最佳实践恰恰相反,我们应该使用AWS Private CA并自动轮换,这样就不会出现泄露“永久密钥”,导致安全范围全面失控的情况出现。
我们需要在源站级别进行配置,允许同一个distribution的不同后端使用不同的安全策略。设置需要通过ACM在US East地区获取客户端证书,配置源站服务器验证客户端证书,并通过控制台、CLI、SDK、CDK或CloudFormation在CloudFront源站设置中启用mTLS。

该功能填补了CDN架构中的一个空白。虽然客户端mTLS在流量进入网络边界之前对客户端进行了身份验证,但攻击者如果发现了源站的IP地址,就可以绕过CloudFront直接连接到后端服务器。组织之前需要维护CloudFront边缘位置的IP允许列表,或者需要实现边缘和源站协调的自定义认证头信息。
Cloudflare早在2014年就提供了认证的源站拉取,但它们有一个区别。Cloudflare的共享证书证明请求来自Cloudflare网络,不是来自特定客户的区域。Cloudflare客户必须上传自定义证书以实现真正的隔离,而CloudFront的方法默认提供了这种隔离。
对性能的影响主要集中在连接建立阶段,而不是数据传输阶段。每次mTLS握手都会增加加密操作,但CloudFront的连接池将这种开销分散到许多请求上。由于CloudFront在边缘位置缓存大部分流量,大多数请求根本不会到达源站。AWS指出,TLS 1.3更快的握手机制使得认证开销对于医疗保健、金融服务和政府部门等受监管工作负载来说是有利的,在这些领域中,明确的认证和审计跟踪是强制性的。
最后,源站mTLS不收取额外费用,已经包含在CloudFront商业版与高级版的统一定价套餐中。
原文链接:
CloudFront Adds Origin mTLS Authentication for End-to-End Zero Trust