前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务网关Kong系列文章之六:安全

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

原创
作者头像
Honest1y
修改2021-01-27 15:28:47
5800
修改2021-01-27 15:28:47
举报
文章被收录于专栏:Kubernetes手记Kubernetes手记

1 ACL鉴权

1.1 启用插件

在服务上启用插件

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

在路由上启用插件

代码语言:txt
复制
$ curl -X POST http://kong:8001/routes/{route_id}/plugins \
    --data "name=acl"  \
    --data "config.whitelist=group1, group2" \
    --data "config.hide_groups_header=true"
代码语言:txt
复制
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
image-20201229110119948

1.3 将用户加入授权的devops组

代码语言:txt
复制
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
image-20201229110212389

2 IP限制

2.1 启用IP限制插件

1、在服务上启用插件

代码语言:txt
复制
$ 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、在路由上启用插件

代码语言:txt
复制
$ 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范围。

代码语言:txt
复制
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
image-20201229111114082

2.3 将IP加入白名单

image-20201229111257500
image-20201229111257500

2.4 再次测试访问

image-20201229111315203
image-20201229111315203

3 爬虫控制

3.1 启用爬虫控制插件

1、在服务上启用插件

代码语言:txt
复制
$ curl -X POST http://kong:8001/services/{service}/plugins \
    --data "name=bot-detection" 

2、在路由上启用插件

代码语言:txt
复制
$ curl -X POST http://kong:8001/routes/{route_id}/plugins \
    --data "name=bot-detection" 

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 ACL鉴权
    • 1.1 启用插件
      • 1.2 访问测试
        • 1.3 将用户加入授权的devops组
        • 2 IP限制
          • 2.1 启用IP限制插件
            • 2.2 测试访问
              • 2.3 将IP加入白名单
                • 2.4 再次测试访问
                • 3 爬虫控制
                  • 3.1 启用爬虫控制插件
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档