Kubernetes pod ограничил доступ к другим экземплярам EC2 с узлов AWS EKS

У меня была база данных Elastic search, работающая на экземпляре EC2. Внутренние службы, которые подключаются к Elastic DB, работают на узлах AWS EKS.

Чтобы внутренние модули kubernetes имели доступ к Elastic DB, я добавил разрешенные группы безопасности к узлам EKS, и он работает нормально.

Но мой вопрос заключается в том, что все другие модули (не внутренние), работающие на одном и том же узле, имели возможный доступ к Elastic DB из-за базовых групп безопасности узлов, есть ли лучший безопасный способ справиться с этим.

1 ответ

В этой ситуации вы могли бы дополнительно использовать сетевые политики Kubernetes для определения правил, которые определяют, какой трафик разрешен в Elastic DB с выбранных модулей.

Например, начните с создания по умолчанию запрета всей исходящей политики трафика в пространстве имен для всех модулей, например:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
  - Egress

и разрешить исходящий трафик от определенных модулей (удерживая роль: db) к CIDR 10.0.0.0/24 по TCP-порту 5978

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

Пожалуйста, обратитесь к официальной документации для получения дополнительной информации о NetworkPolicies.

Другие вопросы по тегам