gRPC、服务网格与AWS App Mesh的安全通信实践
1. gRPC与应用负载均衡器
gRPC是一种流行的协议,越来越多地被微服务用于相互通信。它是一种开源的远程过程调用(RPC)协议,使用HTTP/2进行传输,并采用协议缓冲区作为接口描述符。gRPC具有许多特性,如身份验证、双向流和流量控制、阻塞和非阻塞流量绑定、取消操作和超时设置等。
gRPC基于可靠且经过测试的基础设施构建。虽然HTTP/2是一种相对较新的协议,但HTTP作为传输协议已经存在了很长时间,全球的专家已经对其进行了诸多安全考量。gRPC因其可扩展性和可定制性等优点,被微服务广泛采用。
如果微服务希望使用gRPC进行通信,AWS应用负载均衡器(ALB)允许将gRPC配置为目标。可以在ALB的任何目标上启用gRPC。
由于gRPC仍然使用HTTP/2进行传输,因此可以像大多数其他HTTP连接一样,使用TLS实现gRPC的加密。当选择负载均衡器时,TLS证书会安装在ALB上,这样可以确保Pod与ALB之间的gRPC通信是加密的。此外,也可以使用服务网格来为gRPC实现TLS。
2. 相互TLS(mTLS)
TLS协议使用X.509证书来证明服务器的身份,但应用层负责向服务器验证客户端的身份。mTLS通过在TLS过程中添加客户端验证,试图使TLS更加安全。
在TLS握手过程中,客户端信任证书颁发机构(CA),而服务器会出示由该CA签名的证书。成功建立连接后,双方可以进行加密通信。mTLS要求客户端和服务器在TLS握手过程中都要证明自己的身份,这额外的步骤确保了通信双方的身份得到确认。
证书验证是TLS握手的重要
超级会员免费看
订阅专栏 解锁全文
591

被折叠的 条评论
为什么被折叠?



