Istio разрешает входящий трафик на сервис только из определенного пространства имен - PullRequest
1 голос
/ 25 апреля 2019

Мы хотим, чтобы Istio разрешал входящий трафик в службу только из определенного пространства имен. Как мы можем сделать это с Istio? Мы работаем с версией Istio 1.1.3.

Обновление:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-app-ingress
  namespace: test-ns
spec:
  podSelector:
    matchLabels:
      app: testapp
  ingress:
  - ports:
    - protocol: TCP
      port: 80
    from:
    - podSelector:
        matchLabels:
          istio: ingress

Это не сработало. Я могу получить доступ к сервису и из других пространств имен. Далее я попробовал:

apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRole
metadata:
  name: external-api-caller
  namespace: test-ns
spec:
  rules:
  - services: ["testapp"]
    methods: ["*"]
    constraints:
    - key: "destination.labels[version]"
      values: ["v1", "v2"]
---
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRoleBinding
metadata:
  name: external-api-caller
  namespace: test-ns
spec:
  subjects:
  - properties:
      source.namespace: "default"
  roleRef:
    kind: ServiceRole
    name: "external-api-caller"

Я могу получить доступ к сервису из всех пространств имен. Где я ожидал, это должно быть разрешено только из пространства имен «по умолчанию»

1 Ответ

0 голосов
/ 25 апреля 2019

Я не уверен, возможно ли это для определенного пространства имен, но он будет работать с метками.

Вы можете создать сетевую политику в Istio , это хорошо объяснено на Маршрутизация трафика в Kubernetes через Istio и Envoy Proxy .

...
  ingress:
  - from:
    - podSelector:
        matchLabels:
          zone: trusted
...

В этом примере только пакеты с меткой zone: trusted будут иметь возможность устанавливать входящее соединение с модулем.

Вы можете прочитать о Использование сетевой политики с Istio .

Я также рекомендовал бы прочитать Концепции безопасности в Istio , а также Отказы и белый / черный списки.

Надеюсь, это поможет Вам.

...