赞
踩
部署在生产环境的应用,供内部服务调用外,还需要暴露外网访问。
比如consul ui管理界面,我们需要给到开发和测试人员,观察服务的注册情况。
再比如前端页面和后端接口在一起的服务,后端接口供内部服务接口调用,调用安全通过颁发访问令牌来保证;而前端页面则是后台管理界面,需要暴露到外网,以便网站管理人员可以登录并操作设置。
再比如公司研发环境想要访问生产的接口,使得测试最接近真实数据及网络,当然我们不能任意暴露给所有外网访问。
既然提供了外网访问,如何适当地提高应用安全就摆在我们面前。
本文将介绍两种api网关工具来实现对客户端Ip的限制(设置白名单机制):
Kong有自带的插件ip-restriction可以设置IP白名单
IP白名单
IP黑名单
添加至黑名单的ip客户端,则禁止访问外部域名。
可以说,kong网关因为有上面的操作界面,直观又方便,还是非常简单的。
下面介绍如何在nginx ingress中实现同样功能。
通过注解(annotations)实现IP访问控制,您可以使用nginx.ingress.kubernetes.io/whitelist-source-range和nginx.ingress.kubernetes.io/block-source-range这两个注解类型。这些注解可以添加到Ingress资源中,以限制或允许特定的IP地址或IP地址范围访问您的服务。
完整的yaml文本示例:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/whitelist-source-range: '122.xx.xx.66,39.xx.xx.220' name: xxx namespace: xx-service spec: ingressClassName: ack-nginx rules: - host: {你的外网域名} http: paths: - backend: service: name: {你的service服务名称} port: number: {你的service服务端口号} path: / pathType: ImplementationSpecific
如果你的外网IP不在上面的白名单列表,则会报错403被禁止:
这样,我们就能在公司研发环境下,访问部署在生产的服务,既方便了联调测试,又一定程度地提高了网络安全。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。