要启用相互TLS,服务网格中的每个服务都必须具有不同的身份和客户端证书。
GKE上的Istio是否为相互TLS的每个服务创建不同的服务帐户?
答案为否。更多信息可以在这里查看[1]。
默认情况下,GKE上的Istio不会为启用了双向TLS的每个服务创建不同/多个服务帐户。当Citadel实例注意到在名称空间中创建了ServiceAccount时,它必须决定是否应为该ServiceAccount生成istio.io/key-and-cert机密。您只需要检查是否已为服务帐户分配了机密。
[“城堡如何确定是否创建服务帐户机密” [2]部分下的表格将向您显示决策过程。
此外,在“相互TLS身份验证” [3]部分中,您将看到客户端使用mTLS调用服务器的分步过程。
[1] Istio策略和安全性:https://istio.io/docs/concepts/security/[2]城堡:https://istio.io/docs/concepts/security/#how-citadel-determines-whether-to-create-service-account-secrets[3] mTLS身份验证:https://istio.io/docs/concepts/security/#mutual-tls-authentication