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,您可 ...
随机推荐
- http状态码大全(404、505、502,500)
HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源HTTP 401.4 ...
- 软件----- idea 配置创建一个简单javase项目
1.显示工具栏和工具按钮,勾选上 如图,在左侧会增加对应的 2.设置项目结构,选择jdk 点击new 选择需要jdk 3.创建一个简单的java文件,和eclipse与myeslipse 差不多, ...
- github clone加速
1. 在https://asm.ca.com/zh_cn/ping.php 网址中查询 github.global.ssl.fastly.net 及 github.com 的 china地区 avr ...
- POJ-2006 Litmus Test 高精度
The pH scale measures the concentration of protons (H +) in a solution and, therefore, its acidity o ...
- idea配置热加载
第一步:添加依赖 spring-boot项目中引入如下依赖 <dependency> <groupId>org.springframework.boot</groupId ...
- 机器学习(九)-------- 聚类(Clustering) K-均值算法 K-Means
无监督学习 没有标签 聚类(Clustering) 图上的数据看起来可以分成两个分开的点集(称为簇),这就是为聚类算法. 此后我们还将提到其他类型的非监督学习算法,它们可以为我们找到其他类型的结构或者 ...
- JVM的监控工具之jmap
参考博客:https://www.jianshu.com/p/a4ad53179df3 jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件 ...
- [Node.js] TypeScript 实现 sleep 函数
看过不少网友的文章, 有各种方法, 但我想要的是一个能线性执行的sleep函数. /** * 等待指定的时间 * @param ms */ static async sleep(ms: number) ...
- git 使用 tortoisegit 解冲突
git 解冲突需要注意的问题 弄清除冲突双向的修改意图,并在解决冲突时,同时处理两边的意图. 举例说明 A.txt 文件, 在 master 分支上,有一行文字(代码)是这样: 这是一段在 maste ...
- 基于OpenCV.Net投影法进行文本分块切割
假设有如下一张图,如何把其中的文本分块切割出来,比如“华普超市朝阳门店”.“2015-07-26”就是两个文本块. 做图像切割有很多种方法,本文描述一种最直观的投影检测法.先来看看什么是投影,简单来说 ...