API网关工具Kong或nginx ingress实现对客户端IP的白名单限制,提高对外服务 ...

打印 上一主题 下一主题

主题 455|帖子 455|积分 1365

一、背景

部署在生产情况的应用,供内部服务调用外,还必要袒露外网访问。
好比consul ui管理界面,我们必要给到开辟和测试职员,观察服务的注册情况。
再好比前端页面和后端接口在一起的服务,后端接供词内部服务接口调用,调用安全通过颁发访问令牌来保证;而前端页面则是后台管理界面,必要袒露到外网,以便网站管理职员可以登录并操作设置。
再好比公司研发情况想要访问生产的接口,使得测试最接近真实数据及网络,当然我们不能任意袒露给全部外网访问。
既然提供了外网访问,如何适当地提高应用安全就摆在我们面前。
本文将介绍两种api网关工具来实现对客户端Ip的限制(设置白名单机制):


  • kong
  • nginx ingress
二、kong配置

Kong有自带的插件ip-restriction可以设置IP白名单




  • IP白名单

  • IP黑名单
   添加至黑名单的ip客户端,则禁止访问外部域名。
  

可以说,kong网关因为有上面的操作界面,直观又方便,还黑白常简单的。
下面介绍如安在nginx ingress中实现同样功能。
三、nginx ingress

通过注解(annotations)实现IP访问控制,您可以使用nginx.ingress.kubernetes.io/whitelist-source-range和nginx.ingress.kubernetes.io/block-source-range这两个注解类型。这些注解可以添加到Ingress资源中,以限制或允许特定的IP所在或IP所在范围访问您的服务。


  • 使用白名单(whitelist):
    通过nginx.ingress.kubernetes.io/whitelist-source-range注解,您可以指定一个或多个CIDR格式的IP所在范围,以允许这些范围内的IP所在访问您的服务。(注意:多个ip所在间逗号隔开)

完整的yaml文本示例:
  1. apiVersion: networking.k8s.io/v1
  2. kind: Ingress
  3. metadata:
  4.   annotations:
  5.     nginx.ingress.kubernetes.io/whitelist-source-range: '122.xx.xx.66,39.xx.xx.220'
  6.   name: xxx
  7.   namespace: xx-service
  8. spec:
  9.   ingressClassName: ack-nginx
  10.   rules:
  11.     - host: {你的外网域名}
  12.       http:
  13.         paths:
  14.           - backend:
  15.               service:
  16.                 name: {你的service服务名称}
  17.                 port:
  18.                   number: {你的service服务端口号}
  19.             path: /
  20.             pathType: ImplementationSpecific
复制代码
如果你的外网IP不在上面的白名单列表,则会报错403被禁止:

四、总结

如许,我们就能在公司研发情况下,访问部署在生产的服务,既方便了联调测试,又肯定程度地提高了网络安全。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表