专栏首页Kubernetes手记微服务网关Kong系列文章之六:安全
原创

微服务网关Kong系列文章之六:安全

1 ACL鉴权

1.1 启用插件

在服务上启用插件

$ curl -X POST http://kong:8001/services/{service}/plugins \
    --data "name=acl"  \
    --data "config.whitelist=group1, group2" \
    --data "config.hide_groups_header=true"

在路由上启用插件

$ curl -X POST http://kong:8001/routes/{route_id}/plugins \
    --data "name=acl"  \
    --data "config.whitelist=group1, group2" \
    --data "config.hide_groups_header=true"
curl -X POST http://localhost:8001/routes/b0db420a-d3c3-45ee-8b25-11f3fd8ca283/plugins \
--data "name=acl" \
--data "config.whitelist=devops" \
--data "config.hide_groups_header=true"     

{
	"created_at": 1609210608,
	"id": "c0256ae6-271c-44d8-bee3-f11d36e05abb",
	"tags": null,
	"enabled": true,
	"protocols": ["grpc", "grpcs", "http", "https"],
	"name": "acl",
	"consumer": null,
	"service": null,
	"route": {
		"id": "b0db420a-d3c3-45ee-8b25-11f3fd8ca283"
	},
	"config": {
		"allow": ["devops"],
		"hide_groups_header": true,
		"deny": null
	}
}

1.2 访问测试

由于开启ACL鉴权,用户无法再访问该服务

image-20201229110119948

1.3 将用户加入授权的devops组

curl -X POST http://127.0.0.1:8001/consumers/basic/acls --data "group=devops"

{
	"created_at": 1609210724,
	"id": "6e066cff-b8ea-4d6e-b412-e3d39509c342",
	"group": "devops",
	"tags": null,
	"consumer": {
		"id": "7e9ac7ce-5a8e-4bce-8baa-cf09a7aa5c47"
	}
}
image-20201229110212389

2 IP限制

2.1 启用IP限制插件

1、在服务上启用插件

$ curl -X POST http://kong:8001/services/{service}/plugins \
    --data "name=ip-restriction"  \
    --data "config.whitelist=54.13.21.1, 143.1.0.0/24"

2、在路由上启用插件

$ curl -X POST http://kong:8001/routes/{route_id}/plugins \
    --data "name=ip-restriction"  \
    --data "config.whitelist=54.13.21.1, 143.1.0.0/24"

config.whitelist :白名单,逗号分隔的IPs或CIDR范围。

config.blacklist :白名单,逗号分隔的IPs或CIDR范围。

curl -X POST http://127.0.0.1:8001/routes/b0db420a-d3c3-45ee-8b25-11f3fd8ca283/plugins \
    --data "name=ip-restriction"  \
    --data "config.whitelist=172.16.60.9"

{
	"created_at": 1609211384,
	"id": "e6ad04af-6484-482c-aea7-2c70243ef835",
	"tags": null,
	"enabled": true,
	"protocols": ["grpc", "grpcs", "http", "https"],
	"name": "ip-restriction",
	"consumer": null,
	"service": null,
	"route": {
		"id": "b0db420a-d3c3-45ee-8b25-11f3fd8ca283"
	},
	"config": {
		"allow": ["172.16.60.9"],
		"deny": null
	}
}

2.2 测试访问

当前本机器IP地址为: 172.24.107.55

image-20201229111114082

2.3 将IP加入白名单

image-20201229111257500

2.4 再次测试访问

image-20201229111315203

3 爬虫控制

3.1 启用爬虫控制插件

1、在服务上启用插件

$ curl -X POST http://kong:8001/services/{service}/plugins \
    --data "name=bot-detection" 

2、在路由上启用插件

$ curl -X POST http://kong:8001/routes/{route_id}/plugins \
    --data "name=bot-detection" 

config.whitelist :白名单,逗号分隔的正则表达式数组。正则表达式是根据 User-Agent 头部匹配的。 config.blacklist :黑名单,逗号分隔的正则表达式数组。正则表达式是根据 User-Agent 头部匹配的。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微服务网关Kong系列文章之二:Kong安装

    如我们在术语部分的介绍,服务是上游服务的抽象,可以是一个应用,或者具体某个接口。Kong 提供了管理接口,我们可以通过请求 8001 管理接口直接创建,也可以通...

    Honest1y
  • 微服务网关Kong系列文章之四:Kong代理

    8000:此端口是Kong用来监听来自客户端的HTTP请求的,并将此请求转发到您的上游服务。这也是本教程中最主要用到的端口。

    Honest1y
  • 微服务网关Kong系列文章之三:Konga安装

    Honest1y
  • 微服务网关Kong系列文章之一:简介

    当使用单体应用程序架构时,客户端(Web 或移动端)通过向后端应用程序发起一次 REST 调用来获取数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的一...

    Honest1y
  • 微服务网关Kong系列文章之七:流量控制

    Honest1y
  • 微服务网关Kong系列文章之五:身份验证

    API网关身份验证是控制允许使用您的API传输的数据的重要方法。基本上,它使用一组预定义的凭据来检查特定使用者是否有权访问API。

    Honest1y
  • 微服务网关方案:Kong & Nacos

    文章连接:https://mp.weixin.qq.com/s/Kk6Cl7n0sFGgCyyZtExa6A

    程序员架构进阶
  • 微服务网关方案:Kong & Nacos

    前面我们介绍了 Spring Cloud 体系下的网关 Gateway(Zuul)。事实上,还有很多开源且广泛应用的网关方案,例如 Kong 和 Nacos。本...

    程序员架构进阶
  • 主流云原生微服务API网关成熟度与安全功能对比分析

    在整个微服务架构中,API网关充当着非常重要的一环,它不仅要负责外部所有的流量接入,同时还要在网关入口处根据不同类型请求提供流量控制、日志收集、性能分析、速率限...

    绿盟科技研究通讯
  • 云原生架构下的 API 网关实践: Kong (二)

    Kong 是 Mashape 开源的一款云原生架构下的分布式 API 网关,其性能和可扩展性在同类组件中,表现都很优异。Kong 官方提供了很多直接可用的插件,...

    aoho求索
  • 选择Kong作为你的API网关

    在微服务架构之下,服务被拆的非常零散,降低了耦合度的同时也给服务的统一管理增加了难度。如上图左所示,在旧的服务治理体系之下,鉴权,限流,日志,监控等通用功能需要...

    kirito-moe
  • 云原生架构下的 API 网关实践:Kong (一)

    ,有点懒怠。最近抽空捣鼓了 Kong 网关的使用实践,微服务网关之前的文章也写过,读者可以翻看之前的文章推送。插件是 Kong 扩展的重要特性,这次除了会介绍 ...

    aoho求索
  • 微服务架构之「 API网关 」

    在微服务架构的系列文章中,前面已经通过文章《架构设计之「服务注册 」》介绍过了服务注册的原理和应用,今天这篇文章我们来聊一聊「 API网关 」。

    奎哥
  • 微服务架构之「 API网关 」

    在微服务架构的系列文章中,前面已经通过文章《架构设计之「服务注册 」》介绍过了服务注册的原理和应用,今天这篇文章我们来聊一聊「 API网关 」。

    Bug开发工程师
  • .Net微服务实战之负载均衡(下)

    相关源码:https://github.com/SkyChenSky/Sikiro

    陈珙
  • 花5分钟时间来了解一下高性能网关Kong会有意外收获

    前几天开源发布了 Kong.Net 项目,收到了大量园友的反馈,开源当天就突破了 100 个star ,可喜可贺,但是从侧面也说明,我们 .NetCore 阵营...

    心莱科技雪雁
  • Kong入口控制器和服务网格:Kubernetes设置入口到Istio

    Kubernetes已经成为在服务中编排容器和服务的实际方法。但是我们如何让集群外部的服务访问集群内部的内容呢?Kubernetes附带了Ingress API...

    CNCF
  • 云原生架构下的 API 网关实践:Kong (三)

    在前面的文章介绍了 Kong 的相关实践,本文将会介绍 Kong 的利器:插件以及自定义插件。

    aoho求索
  • 微服务网关除了zuul、spring cloud gateway还有更出色的

    在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务。甚至有时候需要对请求进行一些安全、...

    码农小胖哥

扫码关注云+社区

领取腾讯云代金券