I running on AWS + EKS + Istio, and I using AWS Elasticsearch Service for logging. By default, AWS Kibana is not exposed to the Internet, and in order to do that they propose three approaches. One of the approaches is to deploy a dedicated Nginx to serve as a reverse proxy, which will pass traffic to the Kibana.
I wondering, since I already have Istio, maybe I can save from redundant Nginx deployment and just use Istio traffic management capabilities.
I want to navigate from the Internet to URL https://logs.myproduct.net, traffic will arrive to Istio gateway, it will terminate SSL and then establish connection to the Kibana and pass the traffic.
it should work! Create ServiceEntry for domain where kibana is. Then create DestinationRule with SIMPLE tls mode. Do not forget about sni. Then it should work.
sni has bad indentation. Also try to add port 80 to ServiceEntry. I remember that there was some issue when port 80 was not specified. If that wonāt work, try to look into envoy config about what is wrong.
@Illidan we were tasked with the same challenge two days ago. Looking at this thread helped, but did not solve our problems completely. In the end we got it working after following the Istio guide for TLS origination and then adapting it to our use case.
@willian.camposās suggestion was followed and the fully qualified domain was replaced with aws.local for the āinternal hostā
The subset definition was removed from the destination rule. Kiali was warning that the kibana virtual service could not access the subset, and there was only one, so it was safe to remove.
At this point I was able to curl http://vpc-xxxxxxxxx..amazonaws.com from the Sleep Pod and achieve the same result as curl https://vpc-xxxxxxxxx..amazonaws.com meaning that the TLS origination was working.
The last thing to do was create another virtual service that would attach to the ingress gateway. Please note that our ingress gateway is performing TLS termination. The virtual service looked like this:
And that completed the POC for us. Iām aware that this solution might have itās own problems, but I hope it helps.
PS: have you tried to use AWS Cognito to provide a public entry point to Kibana. Iām not sure if it fits your use case, but it might make lives easier.
I would like to achieve the same (expose AWS Kibana UI through Istio ingress-gateway) and I cannot manage to make it work, even by following your recommendations @willian.campos@leothesen