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: xxxnamespace: xx-service
spec:ingressClassName: ack-nginxrules:- host: {你的外网域名}http:paths:- backend:service:name: {你的service服务名称}port:number: {你的service服务端口号}path: /pathType: ImplementationSpecific

如果你的外网IP不在上面的白名单列表,则会报错403被禁止:
在这里插入图片描述

四、总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目文章 | Nature Commun细菌转录因子ChIP-seq揭示第二信使2‘,3‘-cGMP的新调控机制

转录因子是细菌中调控基因表达的关键蛋白质,它们能够识别并结合到DNA的特定序列上,从而启动或抑制基因的转录。细菌ChIP-seq可以帮助我们理解细菌中转录因子的调控网络,揭示其在细菌生长、代谢和适应环境等方面的作用。这种技术对于研究细菌的…

2024第十五届蓝桥杯 JAVA B组

目录 前言:试题 A: 报数游戏试题 B: 类斐波那契循环数试题C:分布式队列 前言: 没参加这次蓝桥杯算法赛,十四届蓝桥杯被狂虐,对算法又爱又恨,爱我会做的题,痛恨我连题都读不懂的题😭,十四届填空只…

龙蜥社区「人人都可以参与开源」——开源之路心得体会

在龙蜥社区的开源活动中,我深刻体会到了开源精神的伟大与力量。作为一个新手,一开始我对于如何参与开源活动感到有些迷茫,但通过龙蜥社区的引导和帮助,我找到了自己的方向,走上了开源之路。 龙蜥社区的开源活动是真正…

docker run启动一个开发备忘清单速查表 —— 筑梦之路

docker run -itd --name reference -p 3000:3000 registry.cn-beijing.aliyuncs.com/deanmr/reference:latest包含:运维,前端,后端,工具,命令,数据库 部分截图展示:

每天五分钟深度学习:逻辑回归算法的损失函数和代价函数是什么?

本文重点 前面已经学习了逻辑回归的假设函数,训练出模型的关键就是学习出参数w和b,要想学习出这两个参数,此时需要最小化逻辑回归的代价函数才可以训练出w和b。那么本节课我们将学习逻辑回归算法的代价函数是什么? 为什么不能平方差损失函数 线性回归的代价函数我们使用…

【嵌入式】交叉编译指南:将开源软件带到嵌入式世界

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

公众号文章的制作方法和步骤分享,纯干货!

无论是个人还是企业,都需要通过公众号来传递自己的声音和价值。如何制作一篇高质量的公众号文章呢?本文伯乐网络传媒将详细介绍公众号文章的制作方法和步骤。 一、文章类型概述 1. 图文教程:以图文结合的方式,向读者传授知识和技…

P1712 [NOI2016] 区间(线段树 + 贪心 + 双指针)

题目描述 在数轴上有 n 个闭区间从 1 至 n 编号,第 i 个闭区间为 [li​,ri​] 。 现在要从中选出 m 个区间,使得这 m 个区间共同包含至少一个位置。换句话说,就是使得存在一个 x ,使得对于每一个被选中的区间 [li​,ri​]&#…

DFS专题:力扣岛屿问题(持续更新)

DFS专题:力扣岛屿问题 一、岛屿数量 题目链接: 200.岛屿数量 题目描述 代码思路 使用深度优先搜索,对每一个网格点进行判断,如果为未搜索过的’1’,则使岛屿数加一,并将与其相连的‘1’都进行标记,确保…

企业为什么要做等级保护

一、等级保护是我国关于网络安全的基本政策 《国家信息化领导小组关于加强信息安全保障工作的意见》(中办发[2003]27 号,以下简称“27 号文件”)明确要求我国信息安全保障工作实行等级保护制度,提出“抓紧建立信息安全等级保护制度&#xff…

区块链开发者大会圆满结束:记Hack.Summit() 2024的合作机构群像

Hack.Summit() 2024 区块链开发者大会于4月9日至10日在香港数码港隆重举行。经过两天的精彩交流与深入探讨,本次大会圆满落下帷幕,不仅汇聚了全球区块链领域的顶尖人才和机构,还展示了最新的技术成果和创新应用,为区块链行业的发展…

Ubuntu 23.10.1 nginx源码安装

注:以下所有命令均在root管理员模式下,若不是,请在所有命令前加sudo 1、安装依赖库 1.1、安装gcc g的依赖库 apt-get install build-essential apt-get install libtool1.2、安装pcre依赖库 apt-get update apt-get install libpcre3 lib…