Cree un alias interno para un servicio externo con istio

Cree un alias interno para un servicio externo con istio

Usando istio, ¿es posible crear un alias interno para un servicio fuera de la malla de servicio que se definió usando ServieEntryy controlar el acceso al servicio externo?

Por ejemplo, supongamos que tengo una entrada de servicio.

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: mypgsql
  namespace: externalapps
spec:
  hosts:
  - mypgsql.example.com
  location: MESH_EXTERNAL
  ports:
  - number: 5432
    protocol: TCP
  resolution: DNS
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: default-deny
  namespace:  externalapps
spec:
  selector:
  ... How would I select the service entry ...

¿Puedo crear otra entrada de servicio o algún otro recurso en el espacio de nombres de una aplicación que haga referencia a la entrada de servicio mypsql?

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: dbsvc
  namespace: someapp
spec:
  hosts:
  - mypsql.externalapps
  location: MESH_EXTERNAL
  ports:
  - number: 5432
    protocol: TCP
  resolution: DNS
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: default-deny-db
  namespace:  someapp
spec:
  selector:
  ... How would I select the dbsvc service entry ...
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: allow-backend-to-db
  namespace:  someapp
spec:
  selector:
  ... How would I select the dbsvc service entry ...
  action: ALLOW
  rules:
  - from:
     - source:
         principals:
         - app_backend

información relacionada