我有一个在EC2实例上运行的Elastic搜索数据库。连接到Elastic DB的后端服务在AWS EKS节点上运行。
为了让后端kubernetes容器访问Elastic DB,我向EKS节点添加了允许的安全组,并且运行良好。
但是我的问题是,由于基础节点安全组的缘故,在同一节点中运行的所有其他Pod(而不是后端的Pod)都可以访问Elastic DB,是否有更好的安全方式来处理此问题。
答案 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的更多信息,请查阅官方文档。