【发布时间】:2020-02-01 01:42:07
【问题描述】:
背景: 我有一个 EKS 集群(EKS 是 AWS 的托管 kubernetes 服务)。 我通过 helm 将应用程序部署到此 EKS 集群 (JupyterHub)。 我有一个 VPN 服务器。 我的应用程序(EKS 上的 JupyterHub)的用户在访问应用程序之前必须先连接到 VPN 服务器。 我通过删除弹性负载均衡器上的 0.0.0.0/0“全部允许”入口规则并添加仅允许来自 VPN 服务器的流量的入口规则来强制执行此操作。 上面引用的弹性负载均衡器由 JupyterHub 应用程序隐式创建,该应用程序通过 helm 部署到 EKS。
问题: 当我将更改部署到 EKS 中正在运行的 JuypyterHub 应用程序时,有时 [取决于更改] ELB 会被删除并重新创建。 这会导致与 ELB 关联的安全组以及入口规则也被重新创建。 这并不理想,因为在将更改部署到 JupyterHub/EKS 时很容易忽略这一点,并且开发人员可能会忘记验证安全组规则是否仍然存在。
问题: 有没有更强大的地方可以强制执行此入口网络规则(仅允许来自 VPN 服务器的流量)?
我有两个想法,但并不理想:
- 使用 NACL。这实际上行不通,因为 NACL 是有状态的并且在子网级别运行,因此会增加管理 CIDR 的大量开销。
- 我想改为将我的入口规则添加到与 EKS 工作程序节点关联的安全组,但由于同样的问题,这将不起作用。当您对 Jupyterhub/EKS 进行更新时,如果 ELB 被替换,则会将“允许所有流量”入口规则隐式添加到 EKS 工作节点安全组(允许来自 ELB 的所有流量)。这将覆盖我的入口规则。
【问题讨论】:
标签: amazon-web-services networking kubernetes jupyterhub amazon-eks