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

一、背景

部署在生产环境的应用,供内部服务调用外,还需要暴露外网访问。
比如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文本示例:

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被禁止:
在这里插入图片描述

四、总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/545373.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯备赛刷题——css

新鲜的蔬菜 这题需要使用grid 我不会 去学一下 一.什么是grid Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。 Flex 布局是轴线布局,只能指定"项目"针对轴线的位置&#…

XTTS数据迁移方案

前置条件检查 XTTS使用限制较多,V3版本按照本节逐项检查 目标库操作系统不能是windows 源库:redhut 7.9 目标库:redhut 7.9 检查数据库时区(两边都需要) SQL> select dbtimezone from dual; 检查结果两边都一致…

自然语言处理NLP关键知识点

大家好,在人工智能出现之前,机器智能处理结构化的数据,例如 Excel 里的数据。但是网络中大部分的数据都是非结构化的,例如文章、图片、音频、视频等。在非结构数据中,文本的数量是最多的,他虽然没有图片和视…

Compose UI 之 Card 卡片组件

Card Card 是用于显示带有圆角和可选阴影的矩形内容容器。它通常用于构建用户界面,并可以包含标题、文本、图像、按钮等元素,表示界面上的可交互元素,我们称它是 “卡片”。 Card 使用的一些经典的场景: 列表数据,例如 新闻列表,产品列表等。信息提示框,使用 Card 组件…

升级win11后无线鼠标失灵,win11鼠标用不了

鼠标失灵是常见的设备故障问题,今天带来相关的解决方法,本文主要是针对升级win11后无线鼠标失灵的处理方法。不少小伙伴在使用电脑的过程中,都遇到过鼠标移动缓慢或者动不了的情况,升级到win11系统的小伙伴也不例外。一般刚升级新系统后,才出现的鼠标失灵问题,那么可能会…

计算机网络——网络地址转换(NAT)技术

目录 前言 前篇 引言 SNAT(Source Network Address Translation)源网络地址转换 SNAT流程 确定性标记 DNAT(Destination Network Address Translation,目标网络地址转换) NAT技术重要性 前言 本博客是博主用于…

SENet模型原理及代码介绍

一.模型简介: SENet的全称叫Squeeze-and-Excitation Networks(挤压-激励网络,简称SENet),于2017年提出,并拿下了当年的ImageNet分类比赛的冠军。ResNet是2015年ImageNet的冠军,2016年ResNeXt&am…

暖宝轻工机械有限公司现已加入2024第13届生物发酵展

参展企业介绍 公司坐落于富饶的长江三角洲,美丽的瓯越山水---温州,成立20多年来,专业从事换热器新品研发、应用设计、生产制造、销售服务为一体的综合性生产企业。 公司致力于食品、饮料、果酒、制药、暖通、化工等行业领域的加热冷却、蒸发…

Magnet AXIOM 7.8 Windows Multilingual - 数字取证与分析

Magnet AXIOM 7.8 Windows Multilingual - 数字取证与分析 Digital Forensic Software 请访问原文链接:https://sysin.org/blog/magnet-axiom/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 恢复并分析一个案件中…

商业照明专用SLM211A系列24V,15mA到200mA支持PWM调光功能的线性恒流LED驱动芯片

SLM211A系列SLM211AAC-7GTR--SOT23-6,SLM211ACB-13GTR--SOP8-EP是用于产生单通道、高精度恒流源的 LED 驱动芯片,在各种 LED 照明产品中非常简单易用。SLM211A 具有宽输入电压范围、高输出精度、超低 drop-out 压降、卓越的线性/负载调整率等特性&#x…

Python中的list()和map() 用法

list() 在Python中,list() 是一个内置函数,用于创建列表(list)对象。它有几个不同的用途,但最常见的是将一个可迭代对象(如元组、字符串、集合或其他列表)转换为一个新的列表。 以下是一些使用…

理解计算中的随机性与伪随机性:Avi Wigderson的理论计算科学贡献

目录 前言1 随机性和伪随机性在计算中的角色2 随机性的动态理解3 伪随机性的应用4 理论到实践的应用结语 前言 近期,普林斯顿大学数学教授Avi Wigderson荣获了2023年图灵奖,以表彰他在理论计算机科学领域的杰出贡献。他的研究聚焦于计算复杂性理论&…

ODI(境外投资备案)作用、类别和申请流程详解

中国企业越来越多地选择在境外进行投资,而国家相关部门也出台了多项政策以规范这一行为。在进行海外投资前,企业必须在政策指导下进行合法操作并办理相应手续,其中ODI(境外投资备案)是其中一种最常见的方式之一。 以…

太好玩了,我用 Python 做了一个 ChatGPT 机器人

毫无疑问,ChatGPT 已经是当下编程圈最火的话题之一,它不仅能够回答各类问题,甚至还能执行代码! 或者是变成一只猫 因为它实在是太好玩,我使用Python将ChatGPT改造,可以实现在命令行或者Python代码中调用。…

华为昇腾AI芯片加持,9.1k Star 的 Open-Sora-Plan,国产Sora要来了吗

Aitrainee | 公众号:AI进修生 哇,今天Github趋势榜第一啊,为了重现Sora,北大这个Open-Sora-Plan,希望通过开源社区力量的复现Sora,目前已支持国产AI芯片(华为昇腾),这回不用被卡脖子…

LoRa无线电机温振传感器,FlexLua低代码技术助力快速实现。

在物联网时代,无线传感技术的应用愈发广泛。其中,LoRa(长距离低功耗无线技术)作为一种适用于远距离、低功耗的通信技术,被广泛应用于各种物联网场景。而结合温度和振动传感技术,能够构建出用于监测机器状态…

UE5学习日记——制作多语言版本游戏,同时初步学习UI制作、多语言化、控制器配置、独立进程测试、打包配置和快速批量翻译等

所有的文本类,无论变量还是控件等都能实现本地化,以此实现不同语言版本。 在这里先将重点注意标注一下: 所有文本类的变量、控件等都可以多语言;本地化控制板中收集、编译时,别忘了编译这一步;支持批量复制…

【蓝桥杯 2020 省 A2】门牌制作 题解(Word+Excel+提交答案)

问题描述 小蓝要为一条街的住户制作门牌号。 这条街一共有2020位住户,门牌号从1到2020编号。 小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1…

802.1X认证原理

IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1X协议。后来,802.1X协议作为局域网接口的一个普通接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。 802.1X协议是一种基于接口的网络接入控制协议。…

python的算术运算符

python常用算术运算符代码如下: #算术运算符操作 x 10 y 20 z 30 #加法运算 a x y print("a的值为:", a) #减法运算 a x - y print("a的值为:", a) #乘法运算 a x*y print("a的值为:", a) …