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.