Spring Cloud微服务安全实战_4-1_微服务网关安全_概述&微服务安全面临的挑战
第四章 网关安全
这一章从简单的API的场景过渡到复杂的微服务的场景
4.1 概述
微服务安全面临的挑战:介绍中小企业的一个微服务架构,相比第三章的单体应用的简单的API所面临的哪些挑战
OAuth2协议与微服务安全:介绍OAuth2中的各个角色,以及相互之间的关系,介绍具体的代码实现
微服务网关安全:搭建网关,安全中心,两个微服务,怎么将安全从微服务中解耦出来放到网关上,与OAuth协议联系起来解决微服务安全面临的新的挑战。
4.2 微服务安全面临的挑战

更多的入口点,更高的安全风险
单体应用,入口点只有一个,有一个Filter/Interceptor 就能控制所有的安全风险。
微服务环境下,业务逻辑不再是在一个单一的进程里,分散在很多的进程里。如图有很多的tomcat,每个tomcat都有自己的入口点,所以要防范的攻击面要比原来大得多,风险也高得多。
性能问题
单体应用下,所有的业务逻辑 和 安全的信息 都在一个进程里,要验一下用户身份、权限都是在一个进程里完成的。
微服务环境下,比如在访问一个订单的时候,用户的信息,权限信息,在订单的tomcat 是拿不到的,需要一个远程调用,调一下安全中心认证中心去或者这些信息。每一个请求,不管是外部进来的,还是服务之间的调用,需要安 全校验的时候,这个远程连接所带来的延迟,有可能导致服务产生性能的问题,尤其是对性能极为敏感的服务。
服务间通讯安全
单体应用下,如订单调库存,订单调物流,都在一个tomcat里,不需要考虑任何安全问题。
微服务环境下,订单调物流,需要跨网络,出我的进程,进到另一个进程,需要保证这个通讯也是安全的。
跨多个微服务的请求难以追踪
对于一个服务来说,可观测性是一个很重要的指标,可观测性包含了三个方面的意义:
1、Log 日志,记录了系统发生了什么。 在单体应用里,记录日志很简单,直接在代码里写就可以了。分布式的应用里,每一个进程会单独去记一些日志。比如访问订单请求,订单又去调库存,调价格,日志是分散来记的,日志自己记了日志,库存、价格也是自个记。这时候就需要一个机制把所有的日志串起来。
2、metrics 指标监控:在一个时间维度上聚合起来的一个数字。当你谈论metrics 的时候,一定要有两个关键要素,第一个就是时间窗口,第二个是一个数字。比如说流量,我们会说在1秒钟有10个请求,一分钟有200个请求,过去三小时下了50个单,我的成交额一天是100万。谈论metrics ,有两个要素,时间窗口,如每秒钟,过去三小时,每一天;第二个就是个数字,30个请求,200个请求,50个订单,100万成交额。这两个聚合起来形成一个metrics 。最典型的metrics 就是流量,每秒钟有多少个请求,在单体应用里很容易就能控制住流量。但是在分布式应用里,可能我的订单能承受的并发量是500,物流能承受的并发量是700,库存能承受的并发量是900。这个时候就需要有一个机制来控制整个的服务的流控,而不是单一的去控制某一个微服务的流控,这也是要解决的一个问题。
3,Tracing ,日志的聚合是一种Tracing,另外一种就是买吉克斯的Tracing,当一个请求进来,在订单服务花了多长时间,在库存服务花了多长时间,在价格服务花了多长时间,最后一眼能看见整个服务的瓶颈在哪里。
容器化部署导致的证书和访问控制问题
~~
如何在微服务间共享用户的登录状态
多语言架构要求每个团队都要有一定的安全经验
Spring Cloud微服务安全实战_4-1_微服务网关安全_概述&微服务安全面临的挑战的更多相关文章
- 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚
新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...
- Spring Cloud Gateway限流实战
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Spring Cloud Sleuth超详细实战
为什么需要Spring Cloud Sleuth 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元.由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去 ...
- spring cloud 入门系列六:使用Zuul 实现API网关服务
通过前面几次的分享,我们了解了微服务架构的几个核心设施,通过这些组件我们可以搭建简单的微服务架构系统.比如通过Spring Cloud Eureka搭建高可用的服务注册中心并实现服务的注册和发现: 通 ...
- Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
首先简单解释一下什么是声明式实现? 要做一件事, 需要知道三个要素,where, what, how.即在哪里( where)用什么办法(how)做什么(what).什么时候做(when)我们纳入ho ...
- Spring Cloud Gateway自定义过滤器实战(观测断路器状态变化)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Spring Cloud Eureka 自我保护机制实战分析
前些天栈长在Java技术栈微信公众号分享过 Spring Cloud Eureka 的系列文章: Spring Cloud Eureka 自我保护机制 Spring Cloud Eureka 常用配置 ...
- Spring Cloud Alibaba Nacos Discovery 实战
Nacos 作为服务注册中心,可以快速简单的将服务自动注册到 Nacos 服务端,并且能够动态无感知的刷新某个服务实例的服务列表,为分布式系统提供服务注册与发现功能 一.创建服务 1.创建项目 pom ...
- Spring Cloud Alibaba Nacos Config 实战
Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spring Cloud Alibaba Nacos Config,您可 ...
随机推荐
- bootstrap-switch使用
bootstrap 的开关. 引入相关文件: <link href="https://cdn.bootcss.com/bootstrap-switch/4.0.0-alpha.1/cs ...
- h5移动端页面强制横屏
说明:这个的原文章来自于https://www.jianshu.com/p/9c3264f4a405 ,我做点点补充 ,谢谢原链接的小姐姐 最近公司是要我做一个h5的小视频,因为是视频接视频,并且 ...
- jQuery 源码分析(一) 代码结构
jQuery是一个Javascript库,它支持链式操作方式,即对发生在同一个JQuery对象上的一组动作,可以直接接连写无需要重复获取对象.这一特点使得JQuery的代码无比优雅,而且有强大的选择器 ...
- 压缩20M文件从30秒到1秒的优化过程
文章来源公众号:IT牧场 有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去.之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改 ...
- TiDB 压力测试报告
(转载自公众号DBATech) 一.测试环境 1.tidb 集群架构: 测试使用最基本的TiDB架构.即 3个tidb-server节点+ 3个tikv节点 + 3个pd节点. 2.tidb集群的部署 ...
- 一小段 Dapper 的简单示例
关于 Dapper 的介绍,请参考:Dapper - 一款轻量级对象关系映射(ORM)组件,DotNet 下 using System; using System.Collections.Generi ...
- Window权限维持(六):BITS Jobs
Windows操作系统包含各种实用程序,系统管理员可以使用它们来执行各种任务.这些实用程序之一是后台智能传输服务(BITS),它可以促进文件到Web服务器(HTTP)和共享文件夹(SMB)的传输能力. ...
- 关于@HtmlHelper帮助器参数
@Html.ActionLink("首页", "Index", "Index", new{},new { @class = "na ...
- .Net捕获网站异常信息记录操作日志
第一步:在Global.asax文件下的Application_Error()中写入操作日志 /// <summary> /// 整个网站出现异常信息,都会执行此方法 /// </s ...
- AT+CNUM获取不到手机号
原因是卡商没有写入SIM卡 解决办法 手动写入 1. 先确认SIM卡的本机号码 2. 选择电话本存储 /* AT+CPBS Select phonebook memory storage " ...