CloudFront 的双向 TLS(源)
双向 TLS 身份验证(双向传输层安全身份验证,mTLS)是一种安全协议,它在标准 TLS 身份验证的基础上进行了扩展,要求进行基于证书的双向身份验证,在该机制下,客户端与服务器必须先证实自己的身份,然后才能建立安全连接。
查看器 mTLS 与源 mTLS
可以在查看器与 CloudFront 分配(查看器 mTLS)之间启用双向身份验证(mTLS),并且/或者也可以在 CloudFront 分配和源(源 mTLS)之间启用双向身份验证。本文档与源 mTLS 配置有关。有关查看器 mTLS 配置,请参阅:CloudFront 的双向 TLS 身份验证(查看器 mTLS)。
双向 TLS(源)使 CloudFront 能够使用客户端证书向原始服务器对其自身进行身份验证。借助双向 TLS(源),您可以确保只有经过授权的 CloudFront 分配才能与应用程序服务器建立连接,从而有助于防止未经授权的访问尝试。
注意
在双向 TLS(源)连接中,CloudFront 充当客户端,并在 TLS 握手期间将其客户端证书提供给原始服务器。CloudFront 不对客户端证书的有效性或吊销状态进行验证,这是原始服务器的责任。根据安全要求,源基础设施必须配置为针对客户端证书的信任存储验证客户端证书、检查证书到期以及执行吊销检查(例如 CRL 或 OCSP 验证)。CloudFront 的角色仅限提供证书;所有证书验证逻辑和安全策略均由原始服务器强制执行。
工作原理
在 CloudFront 和源之间的标准 TLS 握手中,只有原始服务器向 CloudFront 提供证书来证明其身份。借助双向 TLS(源),身份验证过程会变为双向验证。当 CloudFront 尝试连接到原始服务器时,CloudFront 会在 TLS 握手期间提供客户端证书。在建立安全连接之前,原始服务器会针对证书的信任存储验证此证书。
使用案例
双向 TLS(源)可解决几种关键的安全场景,在此类场景中,传统的身份验证方法会产生运营开销:
-
混合云和多云安全:您可以保护 CloudFront 与在 AWS 外部托管的源或 AWS 上的公有源之间的连接。这样,就无需管理 IP 许可名单或自定义标头解决方案,从而在 AWS、本地数据中心和第三方提供商之间提供一致的基于证书的身份验证。运营分布式基础设施的媒体公司、零售商和企业可从其整个基础设施的标准化安全控制中受益。
-
B2B API 和后端安全:您可以保护您的后端 API 和微服务免受直接访问尝试的影响,同时保持 CloudFront 的性能优势。具有严格身份验证要求的 SaaS 平台、支付处理系统和企业应用程序可以验证 API 请求仅来自经授权的 CloudFront 分配,从而防止中间人攻击和未经授权的访问尝试。
重要:原始服务器要求
双向 TLS(源)要求将原始服务器配置为支持双向 TLS 身份验证。源基础设施必须能够:
-
在 TLS 握手期间请求和验证客户端证书
-
使用颁发了 CloudFront 客户端证书的证书颁发机构证书维护信任存储
-
记录和监控双向 TLS 连接事件
-
管理证书验证策略和处理身份验证失败
CloudFront 负责提供客户端证书,但原始服务器负责验证这些证书并管理双向 TLS 连接。在 CloudFront 中启用双向 TLS(源)之前,请确保已正确配置源基础设施。
开始使用
要在 CloudFront 中实现双向 TLS(源),您需要在 AWS Certificate Manager 中导入客户端证书,将原始服务器配置为要求双向 TLS,并在您的 CloudFront 分配中启用双向 TLS(源)。以下各节提供每项配置任务的分步说明。