Kubernetes Pod级限制了从AWS EKS节点对其他EC2实例的访问

时间:2019-01-03 22:59:17

标签: amazon-web-services kubernetes aws-security-group amazon-eks aws-eks

我有一个在EC2实例上运行的Elastic搜索数据库。连接到Elastic DB的后端服务在AWS EKS节点上运行。

为了让后端kubernetes容器访问Elastic DB,我向EKS节点添加了允许的安全组,并且运行良好。

但是我的问题是,由于基础节点安全组的缘故,在同一节点中运行的所有其他Pod(而不是后端的Pod)都可以访问Elastic DB,是否有更好的安全方式来处理此问题。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可以额外使用Kubernetes的网络策略来定义规则,这些规则指定允许从选定的Pod到Elastic DB的流量。

例如,首先创建一个默认值,以拒绝所有pod的命名空间中的所有出口流量策略,例如:

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

并允许从特定Pod(担任角色:db)到TCP端口5978上的CIDR 10.0.0.0/24的传出流量

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的更多信息,请查阅官方文档。