Kubernetes NetworkPolicy
может иметь ограниченное использование для мультикластера.
Лучше использовать Istio's AuthorizationPolicy
. Согласно документации istio:
Чтобы настроить политику авторизации Istio, вы создаете AuthorizationPolicy
ресурс .
Политика авторизации включает в себя селектор и список правил. Селектор указывает цель , к которой применяется политика, а в правилах указывается , кому разрешено делать что при каких условиях . В частности:
- target относится к разделу
selector
в AuthorizationPolicy
. - , кто относится к
from
раздел в rule
из AuthorizationPolicy
. - что относится к разделу
to
в rule
из AuthorizationPolicy
. - условия относится к разделу
when
в rule
AuthorizationPolicy
.
Каждое правило имеет следующие стандартные поля:
-
from
: список источников. to
: список операций. when
: Список пользовательских условий.
В следующем примере показан AuthorizationPolicy
, который позволяет двум источникам (учетная запись службы cluster.local/ns/default/sa/sleep
и пространство имен dev
) получать доступ к рабочим нагрузкам с метками app: httpbin
и version: v1
в пространстве имен foo при отправке запроса с допустимым токеном JWT.
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: httpbin
namespace: foo
spec:
selector:
matchLabels:
app: httpbin
version: v1
rules:
- from:
- source:
principals: ["cluster.local/ns/default/sa/sleep"]
- source:
namespaces: ["dev"]
to:
- operation:
methods: ["GET"]
when:
- key: request.auth.claims[iss]
values: ["https://accounts.google.com"]
Также я рекомендую прочитать this и this сообщений в блоге istio, которые охватывают темы многокластерной безопасности Кроме того, Admiral проект с открытым исходным кодом в рамках istio-экосистемы, который обеспечивает автоматическое c создание конфигурации, синхронизацию и обнаружение служб для мультикластерной службы Istio me sh.
Ambassador можно настроить заблокировать связь, за исключением трафика c, который мы определяем с использованием объектов ServiceEntry
, Dependency
и GlobalTrafficPolicy
.
Надеюсь, это поможет.