场景描述
很多金融或其他领域的业务场景对网络安全要求很高,不允许计算资源有出入vpc网络环境的权限,但是由于当前阿里云大量服务组件的openapi都是只能以公网方式访问,而且ACK(阿里云容器服务kubernetes版)因为需要通过对接openapi和其他云服务及基础设施打通,所以ACK集群网络需要通过SNAT的配置具备出公网的权限(不需要入),如果我们当前的业务需求不允许有出公网的权限,同时我们又希望能很好的使用ACK服务及ACK对接的周边云服务,那么我们可以参考下面的方法来实现。
解决思路
通过云防火墙规则的配置,放行ACK集群所关联的SNAT的eip对阿里云openapi的访问,并拒绝非阿里云openapi相关的公网访问。
创建ACK集群
在ACK控制台上,按照常规方法进行ACK集群的创建,如果集群网络中没有SNAT访问,我们可以自行去NAT网管进行配置,也可以在容器创建集群的控制台上勾选下面的配置:
打开防火墙开关
当k8s集群创建成功后,我们可检查下相关系统组件是否已成功运行,如集群一切正常,首先,我们在云监控中找到“防火墙开关”,打开保护对应SNAT相关联的eip
访问配置
找到访问控制,并新增两个内对外的策略,访问源为snat eip的ip地址
放行策略如下(放行 *.aliyuncs.com域名):
拒绝策略如下:
注意:配置放行策略优先级高于拒绝策略
结果:
所有ACK集群系统组件及周边对接组件均可正常工作,同时关闭了容器中访问公网的权限,另外,通过云防火墙,ACK集群可拥有更细粒度的网络管控能力。