我有一堆GRPC微服务,它们使用自签名证书。我将身份验证信息添加到 GRPC 通道,然后用于标识终结点并提供正确的服务。现在我想迁移到 Istio mTLS。在第一阶段,我让 Istio 绕过所有 GRPC 连接,我的服务可以像现在一样工作。在第二阶段,我想将TLS移交给Istio,但我被困在如何将身份验证信息传递给GRPC?你们在 Istio mTLS 设置中如何处理身份验证?GRPC 可以支持其他身份验证机制 是否有人用它来将 Istio 身份验证信息注入 GRPC?有关如何在设置中实现此目的的任何其他建议我正在使用go-lang,以防万一这可以用于提供任何其他信息。谢谢
2 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
执行此操作的一种方法是使用 ,这样您就不必向服务添加证书,因为 Pod 中的容器将 TLS 终止任何传入连接。grpc.WithInsecure()istio-proxy
客户端:
conn, _ := grpc.Dial("localhost:50051", grpc.WithInsecure())
服务器端:
s := grpc.NewServer()
lis, _ := net.Listen("tcp", "localhost:50051")
// error handling omitted
s.Serve(lis)
如果仍需要将 TLS 用于本地部署等,则只需使用配置选项即可指定此内容,例如:
var conn *grpc.ClientConn
var err error
// error handling omitted do not copy paste
if ( config.IstioEnabled ) {
conn, err = grpc.Dial("localhost:50051", grpc.WithInsecure())
} else {
creds, _ := credentials.NewClientTLSFromFile(certFile, "")
conn, err = grpc.Dial("localhost:50051", grpc.WithTransportCredentials(creds))
}
- 2 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消