安全策略_分享一个SpringCloud微服务网关架构以及安全策略

1、 网关架构总体设计

当用户请求系统时,必须通过网关路由到对应的服务。请求网关的顺序:

1. 通过过安全策略拦截器进行记录请求日志同时进行防止恶意访问和攻击安全防护策略;

2. 通过熔断机制防止系统故障蔓延,导致整个系统瘫痪。

3. 到达路由之前判断是否需要限流,如需要限流将进行限流策略

4. 根据路由服务规则和服务列表路由到相应的微服务中

其中当某个请求出错或无响应次数达到一定阈值时实行熔断措施直接返回错误信息,整个请求进行负载均衡策略,包括zuul网关负载均衡和微服务提供者负载均衡。

安全策略_分享一个SpringCloud微服务网关架构以及安全策略_第1张图片

网关架构示意图

2、 负载均衡

为了避免单个服务用户请求过载,导致微服务瘫痪不可用,可以为每个微服务新建多个实例,然后通过通过负载均衡机制均衡的分配请求到各个实例。这里处理业务处理的服务做负载均衡外,同时把zuul网关也当作一个服务进行注册然后做负载均衡。

安全策略_分享一个SpringCloud微服务网关架构以及安全策略_第2张图片

3、 安全策略

在请求达到路由之前,建立一个pre类型的限流过滤器,对用户请求请求日志信息记录包括请求请求者的IP、请求的url、请求的时间;再进行安全防护策略,主要策略如下:

(1) 正常情况只验证用户token的合法性,主要验证是否携带token以及token的合法性(不需进行token的页面直接进行过滤不处理)

(2) 若检测到用户访问频率过高要求其登录;若已经登录进行验证码输入;

(3) 若此时访问频率还是过高,限制该用户访问流量;

(4) 若以上策略都不起作用,将对该ip进行流量限制;

用户的监控级别有关注、监控、重点监控

安全策略_分享一个SpringCloud微服务网关架构以及安全策略_第3张图片

注:

PRE: 这种过滤器在请求被路由之前调用。

ROUTING:这种过滤器将请求路由到微服务。

POST:这种过滤器在路由到微服务以后执行。

ERROR:在其他阶段发生错误时执行该过滤器。

4、 限流策略

在请求到达路由前,建立一个pre类型的限流过滤器,判断是否需要限流,若需要限流根据配置的限流策略进行限流。限流的规则包括通过用户限制、URL限制、ServerId限制,其中限流的参数包括请求服务阈值(超过阈值进行限流)、允许请求数量、限流等待的时间、限流的规则。限流策略中的限流算法将采用漏通算法和令牌桶算法进行限制(具体可以进行配置)。

安全策略_分享一个SpringCloud微服务网关架构以及安全策略_第4张图片

注:

PRE: 这种过滤器在请求被路由之前调用。

ROUTING:这种过滤器将请求路由到微服务。

POST:这种过滤器在路由到微服务以后执行。

ERROR:在其他阶段发生错误时执行该过滤器。

5、 网关路由

请求达到路由后由zuul网关内部routing类型过滤器进行路由,将用户请求路由到各个微服务中。路由规则有通过serverId、URL进行路由。

安全策略_分享一个SpringCloud微服务网关架构以及安全策略_第5张图片

注:

PRE: 这种过滤器在请求被路由之前调用。

ROUTING:这种过滤器将请求路由到微服务。

POST:这种过滤器在路由到微服务以后执行。

6、 熔断器

在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况。为了避免这种现象,将对系统做保护措施,当某个服务的请求错误或无响应次数达到一定的阈值时,对该服务进行熔断,阻止用户进行请求使故障蔓延整个系统,当服务正常后恢复熔断。

安全策略_分享一个SpringCloud微服务网关架构以及安全策略_第6张图片

你可能感兴趣的:(安全策略)