【问题标题】:Kubernetes pod level restricted access to other EC2 instances from AWS EKS nodesKubernetes pod 级别限制从 AWS EKS 节点访问其他 EC2 实例
【发布时间】:2019-05-30 13:18:49
【问题描述】:
我有一个在 EC2 实例上运行的弹性搜索数据库。连接到 Elastic DB 的后端服务在 AWS EKS 节点上运行。
为了让后端 kubernetes pod 能够访问 Elastic DB,我将允许的安全组添加到 EKS 节点,它工作正常。
但我的问题是,由于底层节点安全组,在同一节点中运行的所有其他 Pod(不是后端 Pod)都可能访问 Elastic DB,是否有更好的安全方法来处理这个问题。
【问题讨论】:
标签:
amazon-web-services
kubernetes
aws-security-group
amazon-eks
【解决方案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的更多信息,请查阅官方文档。