【发布时间】:2019-06-05 05:19:35
【问题描述】:
这是一个“原则上”的问题,因为我试图了解 mTLS 在 Istio 中的实现方式,以及它如何与其他支持 mTLS 的服务(例如 gRPC)一起工作。
假设我有一个启用了“mtls Everywhere”的集群。这有效地通过 mTLS 管道在 envoy 代理之间建立所有 TCP 连接,并且 envoy 和服务之间的连接是纯文本的。
但是,有些服务至少需要 TLS 连接才能连接到 envoy 代理;理想情况下是 mTLS 连接。其中之一是 gRPC,它需要 TLS 才能使用其核心 JWT 身份验证:
https://grpc.io/docs/guides/auth.html#authenticate-with-google
所以,问题变成了:
- 是否可以让特使代理“窥探”在原始服务本身以其他方式进行 mTLS 加密的连接?理想情况下使用 Citadel 提供的证书和密钥
- 另外的解决方案是创建一个新的身份验证方法,忽略它在纯文本上的事实,因为它将由 Istio 进行 mTLS?
【问题讨论】: