保护微服务架构的10个有效方式

微服务是一种创新的方式来加速和改进软件开发。该术语是指可以单独开发的应用程序子组件,并且通常专注于一个特定功能。例如,用于在线购物的电子商务应用需要具备订单收集、账户访问、库存管理和运输的几个微服务。很多知名的电子商务或社交媒体组织,如Twitter、PayPal、亚马逊、eBay和Netflix都依赖于微服务。

微服务与容器类似,但不完全相同。我们将微服务看做分子,容器看做原子;微服务可以在容器中运行,反之亦然。微服务经由应用程序编程接口(API)实现通信,作为应用程序的整个生态系统或架构的一部分。

微服务有几个优点:快速启动,可以重复使用,提高可扩展性,甚至可以包含不同的编码语言。只需要调整一个或两个微服务,而不是整个程序,更新应用程序很容易。微服务可以帮助促进和跟踪更改、解决问题、提高容错并提高性能。

与其他技术一样,微服务也存在安全风险,以及适当的使用方法。看起来微服务是分子内的原子这样的关系,但是漏洞仍然存在,即便只有一个微服务可能被破坏,仍然是一种风险。此外,过多的微服务也可能增加复杂性,并且使安全难以实现,特别是不同的开发人员和开发方法在整个应用程序中的应用。

NGINX产品主管Owen Garrett谈及微服务安全时表示:“微服务具有不同于单片架构的安全风险,主要包括:

通信变化:单片应用程序使用进程之间的内存通信,而微服务通过网络通信。移动到网络通信引起了速度和安全性的问题。

数据存储:微服务使用很多数据存储,这提供了微服务和紧耦合的服务之间的隐式服务的机遇。

技术专长:如果现有团队没有适当的管理微服务的经验,微服务会造成额外的复杂性,反过来又会造成安全漏洞。”

以下将介绍10个保护微服务架构的途径:

1、在开发微服务时,建立通用的可重复编码标准,可以在其他地方重复使用,减少可能导致可利用漏洞或升级特权的差异。

2、将渠道控制在最低限度,考虑每个特定的微服务被损害之后会造成什么后果,并且注意如何调整并保护微服务。

3、使用访问控制向进程或个人提供数据。尽可能在单独的功能和环境中使用分段,例如,如果没有必要创建或更改现有信息,那么仅仅检查清单可用性的微服务应该被授予数据库的读取权限,而不是读/写权限。

4、在微服务的代码中使用安全规则,而不是通过外部方法在实现之后应用。

5、尽可能使用集中的安全或配置策略,可以跨平台应用,以建立一致性并减少人员分析或交互的必要性。

6、多人审查微服务的代码,以减少人为错误,以及提供对代码可行性的洞悉。

7、完全记录每个微服务以说明其服务的功能,可以暴露出潜在的弱点

8、完全映射微服务之间的通信方法,以便识别潜在的问题区域以及可能表示漏洞或劫持的不规则行为

9、当使用外部访问时,对传输中的数据和禁止时使用加密

10、对微服务进行定期代码和使用评审,并删除过时或未使用的服务。

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2017-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ytkah

微信公众平台数据接口开始内测

微信公众平台每天的数据量越来越庞大了,新年红包再次延迟逐显服务器压力,微信也慢慢开放一些接口给第三方平台,这不,今天微信公众平台数据接口开始公测了。微信公众平台...

3935
来自专栏CSDN技术头条

为什么要从PHP转向Go,及满足于使用MySQL

? 左:ElePHPant(Vincent Pontier),右:Gophers (golang.org)。此二者分别是PHP和Golang的吉祥物 【译者注...

42410
来自专栏zhisheng

大型网站架构演化历程

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解...

1.3K36
来自专栏企鹅号快讯

高可用性的前生今世

题记:今天是2018年1月1日,这是一个特殊的日子,民间称为“三头”,意思是周头、月头、年头;我把它称为“3A”,指Kerberos协议的3A。无独有偶的是今年...

2187
来自专栏Python自动化测试

对接口自动化测试的几点思考(一)

在自动化的测试体系中,目前应用的比较多,包含了UI自动化测试和接口自动化测试,在UI的自动化测试中使用最广泛的是Selenium框架,移动端是Ap...

1724
来自专栏顾宇的研习笔记

Serverless 微服务持续交付案例

“Serverless 风格微服务的持续交付(上):架构案例”中,我们介绍了一个无服务器风格的微服务的架构案例。这个案例中混合了各种风格的微服务

1402
来自专栏Python爬虫与算法进阶

Python项目实战——开发网易云音乐插件

写了个深度音乐播放器的网易云音乐插件,可在Linux下播放用户创建、收藏的歌单,以及私人FM。 功能完善中。 https://github.com/wu-ner...

4227
来自专栏互联网杂技

小程序来了

2017年1月9日,小程序如约而至。 小程序究竟该如何获取?首先,你需要将微信更新至iOS6.5.3版本或Android6.5.3版本,其次,你得尝试使用一个小...

3848
来自专栏企鹅号快讯

互联网应用架构标准模型

随着互联网的普及,越来越多的企业也开始往互联网化转型,相应的企业也要为此构建配套的互联网应用。软件架构方面,很多企业一味求快,而放弃很多需要坚持的原则,这会带来...

2660
来自专栏云计算D1net

如何最小化云API升级造成的中断?

云提供商升级API时,开发者必须升级并重新测试自己的软件,如何为这个过程做好准备并且最小化影响? 云提供商为了扩展和改善服务进行了服务升级,通常需要进行API升...

2823

扫码关注云+社区

领取腾讯云代金券