Troubleshoot Gateway->VirtualService routing

I have a very basic setup with an ingress gateway and a virtual service. The virtual service points to HashiCorp Vault on port 8200 and I want it to show the web UI. Loading the URL doesn’t work as it just times out. I’ve spent a while trying to understand why it’s not working but not getting anywhere.

---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: gateway
  namespace: ingress
spec:
  selector:
     app: istio-ingressgateway
  servers:
    - port:
        number: 8200
        name: http-vault
        protocol: HTTP
      hosts:
        - "vault.domain.com"
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: vault-ui
  namespace: vault
spec:
  hosts:
    - vault.domain.com
  gateways: 
    - ingress/gateway
  http:
    - name: "vault-ui-routes"
      match:
      - uri:
          prefix: /
        port: 8200
      route:
        - destination:
            host: vault.vault.svc.cluster.local
            port:
              number: 8200