网关安全-微服务安全面临的挑战及常见架构

Posted caofanqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网关安全-微服务安全面临的挑战及常见架构相关的知识,希望对你有一定的参考价值。

1、微服务安全面临的挑战

  在微服务的架构下,对比单体应用架构的API安全有哪些新的挑战呢?

技术图片技术图片

  1.1、更多的入口点,更高的安全风险

    单体应用的场景下,入口点只有一个,所有的请求都会从这个入口点进来,在这个入口点去建立一组Filter或者Interceptor,就可以控制所有的风险。

    微服务场景下,业务逻辑不是在一个单一的进程里,而是分散在很多的进程里。每一个进程都有自己的入口点,这就会导致防范的攻击面,比原来大得多,风险也会高的多。

  1.2、性能问题

    单体应用的场景下,所有的业务逻辑都在同一个进程里面,关于安全的信息也都在这里面,想验证身份权限,在这个进程里可以完成的。

    微服务场景下,需要的安全信息,很可能在当前进程里是没有的,比如说,访问一个订单服务的时候,用户的信息、权限的信息,在订单服务中是拿不到的。需要调用安全中心认证中心去获取相关的这些信息。那么,每一个请求,不管是从外部进来的,还是服务间的调用,都要去做安全校验时,这个远程连接所带来的延迟,有可能会导致服务产生一些性能问题。尤其是对性能极其敏感的一些服务。原来那个服务可能本身几毫秒就能响应了。因为要做远程调用来验证安全,可能又增加了几毫秒。

  1.3、服务间通讯安全

    单体应用的场景下,订单调用价格,调用物流都是在同一个tomcat中,不需要考虑安全问题。

    微服务场景下,当订单去调用物流的时候,需要跨网络,从一个进程进入另一个进程,要保证这个通讯也是安全的。

  1.4、跨多个微服务的请求难以追踪

    对于一个服务来说,可观测性是一个很重要的指标。可观测性包含了三方面的意义:

    1.4.1、log日志:在分布式的应用中,每一个进程会单独记录一些日志,这时候就需要有一个机制把所有的日志串起来。

    1.4.2、Metrics指标监控:就是把日志的一些信息聚合起来,形成一个在一段时间上的某个指标的统计。比如说流量,在单体应用中很好控制。但是在微服务中,每个服务能承受的流量不同,需要有一个机制能控制整个系统的流控。

    1.4.3、Tracing调用链监控:比如一个请求进来,在订单服务耗时多少,库存服务耗时多少,价格服务服务耗时多少。能看到整个服务的瓶颈在哪里,这也是需要解决的。

  1.5、容器化部署问题

    微服务场景下,最常用的部署手段那就是容器化,证书和IP访问控制比以前复杂。

  1.6、微服务间共享用户的登录状态

    微服务场景下,如何在多个应用之间共享用户的登陆状态,在这个请求中,所涉及到的微服务都可以知道当前用户是谁。

  1.7、多语言架构要求每个团队都要有一定的安全经验

    微服务场景下,每个微服务都可以使用适合的语言开发,有可能订单是java写的,物流是用go写的...。这种情况下,要求各个团队都要有安全经验。

2、常见的微服务安全整体架构

技术图片

技术图片

上图为常见的微服务安全架构,这里我们主要学习安全中心、如何在网关上做安全处理。

 

以上是关于网关安全-微服务安全面临的挑战及常见架构的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud微服务安全网关安全 3-1 概述

SpringCloud微服务安全网关安全 3-2 常见的微服务安全整体架构

Spring cloud微服务安全实战完整教程

云原生应用安全微服务架构下API业务安全分析概述

微服务架构的安全 2

中通api网关实践