我是靠谱客的博主 寂寞板凳,最近开发中收集的这篇文章主要介绍微服务之API网关:Kong:插件介绍:认证插件ip-restriction之黑白名单环境设定插件功能api信息设定ip-restriction插件blacklist确认,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这里写图片描述
kong目前提供了37个插件,其中商业收费7个,30个开源免费的插件,可以设定到api/服务/路由粒度上。

环境设定

操作详细
概要与安装https://blog.csdn.net/liumiaocn/article/details/80442222
kong路由功能https://blog.csdn.net/liumiaocn/article/details/80466616

插件功能

类别免费/收费name插件名使用场景
认证免费basic-authBasic Authentication对于服务或者路由提供用户名/密码基本认证机制
认证免费key-authKey Authentication对于服务或者路由提供用关键字认证机制
认证收费-OpenID Connect提供与三方OpenID的集成方式
认证免费oauth2OAuth 2.0 Authentication添加OAuth 2.0认证
认证收费-OAuth 2.0 Introspection提供与三方OAuth 2.0认证服务器的集成方式
认证免费hmac-authHMAC Authentication提供HMAC(Hashed Message Authentication Code)签名认证方式
认证免费jwtJWT提供JWT(JSON WEB Token)的认证方式
认证免费ldap-authLDAP Authentication提供了与LDAP认证服务器的集成方式
安全免费aclACL通过ACL(Access Control List)的组名称对服务或者路由进行黑白名单的访问控制
安全免费corsCORS对服务或者路由提供CORS支持
安全免费ip-restrictionIP Restriction通过IP地址对服务或者路由进行黑白名单的访问控制
安全免费bot-detectionBot Detection对服务或者路由提供机器人检出并能进行黑白名单的设定
安全免费sslDynamic SSL对路由或者API提供ssl支持
流量控制收费-EE Canary Release提供金丝雀发布支持
流量控制收费-EE Forward Proxy提供企业内网中前向代理的支持
流量控制收费-EE Proxy Caching提供代理缓存的加速功能
流量控制免费request-size-limitingRequest Size Limiting可以对请求的body的size进行限制
流量控制免费rate-limitingRate Limiting提供对给定时间段HTTP请求数目的控制功能
流量控制收费-EE Rate LimitingCE版本Rate Limiting的强化
流量控制免费response-ratelimitingResponse Rate Limiting基于用户响应Header的信息,提供对HTTP请求数目的控制功能
流量控制免费request-terminationRequest Termination根据响应的状态码和信息,可停止对某个服务或者路由的流量
Serverless免费aws-lambdaAWS Lambda调用和管理AWS Lambda函数
Serverless免费openwhiskApache OpenWhisk调用和管理OpenWhisk
分析&监控免费zipkinZipkin提供兼容zipkin的方式对用户请求进行追踪
分析&监控免费datadogDatadog可将API的指标信息在datadog上进行可视化地展示
分析&监控免费runscopeRunscope结合runscope进行API性能测试和监控
转换免费request-transformerRequest Transformer通过kong对请求进行转换
转换收费-EE request Transformerrequest Transformer的强化版
转换免费response-transformerResponse Transformer通过kong对响应进行转换
转换免费correlation-idCorrelation ID通过kong实现请求和响应之间的关联
日志免费tcp-logTCP发送请求和响应日志到TCP服务器
日志免费udp-logUDP发送请求和响应日志到UDP服务器
日志免费http-logHTTP发送请求和响应日志到HTTP服务器
日志免费file-logFile发送请求和响应日志到磁盘的文件中
日志免费statsdStatsD发送请求和响应日志到StatsD服务器
日志免费syslogSyslog发送请求和响应日志到syslog中
日志免费syslogLoggly发送请求和响应日志到Loggly服务器

api信息

[root@kong ~]# curl http://localhost:8001/apis
{"total":2,"data":[{"created_at":1527303008505,"strip_uri":true,"id":"28513d56-43d7-49f2-9e64-9a7a0698e24f","hosts":["userhost"],"name":"userapi","http_if_terminated":false,"https_only":false,"retries":5,"preserve_host":false,"upstream_connect_timeout":60000,"upstream_read_timeout":60000,"upstream_send_timeout":60000,"upstream_url":"http://192.168.163.117:9001/"},{"created_at":1527303019963,"strip_uri":true,"id":"992b9c3b-889a-4c15-94b5-561ac9fb1cc9","hosts":["orghost"],"name":"orgapi","http_if_terminated":false,"https_only":false,"retries":5,"preserve_host":false,"upstream_connect_timeout":60000,"upstream_read_timeout":60000,"upstream_send_timeout":60000,"upstream_url":"http://192.168.163.117:9002/"}]}
[root@kong ~]#

设定ip-restriction插件

事前插件信息确认

[root@kong ~]# curl http://localhost:8001/plugins
{"total":0,"data":[]}
[root@kong ~]# 

设定ip-restriction插件

[root@kong ~]# curl -X POST http://localhost:8001/apis/userapi/plugins 
>      --data "name=ip-restriction"  
>      --data "config.blacklist=172.17.0.3/16"
{"created_at":1527303305000,"config":{"blacklist":["172.17.0.3/16"]},"id":"3341a3f8-1d87-4960-9da1-232718d2b89d","name":"ip-restriction","api_id":"28513d56-43d7-49f2-9e64-9a7a0698e24f","enabled":true}
[root@kong ~]# 

设定后插件信息确认

[root@kong ~]# curl http://localhost:8001/plugins
{"total":1,"data":[{"created_at":1527303305000,"config":{"blacklist":["172.17.0.3/16"]},"id":"3341a3f8-1d87-4960-9da1-232718d2b89d","name":"ip-restriction","api_id":"28513d56-43d7-49f2-9e64-9a7a0698e24f","enabled":true}]}
[root@kong ~]# 

blacklist确认

由于设定blacklist为172.17.0.3/16,所以IP为172.17.0.3和172.17.0.2的两个容器内都被限制了访问,从如下的容器中得到了确认

172.17.0.3被限制

[root@kong ~]# docker exec -it trusting_liskov sh
/ # ip ad |grep 172
    inet 172.17.0.3/16 scope global eth0
/ # 
/ # curl -H 'Host: userhost' http://192.168.163.117:8000
{"message":"Your IP address is not allowed"}
/ #

172.17.0.2被限制

[root@kong ~]# docker exec -it optimistic_stallman sh
/ # ip ad |grep 172
    inet 172.17.0.2/16 scope global eth0
/ # 
/ # curl -H 'Host: userhost' http://192.168.163.117:8000
{"message":"Your IP address is not allowed"}
/ #

192.168.163.117可正常访问

[root@kong ~]# curl -H 'Host: userhost' http://192.168.163.117:8000
Hello, Service :User Service
[root@kong ~]# ip ad |grep 192
    inet 192.168.163.117/24 brd 192.168.163.255 scope global enp0s3
[root@kong ~]# 

最后

以上就是寂寞板凳为你收集整理的微服务之API网关:Kong:插件介绍:认证插件ip-restriction之黑白名单环境设定插件功能api信息设定ip-restriction插件blacklist确认的全部内容,希望文章能够帮你解决微服务之API网关:Kong:插件介绍:认证插件ip-restriction之黑白名单环境设定插件功能api信息设定ip-restriction插件blacklist确认所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部