mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
903fa5f888
@erlinux
112 lines
7.8 KiB
Markdown
112 lines
7.8 KiB
Markdown
为什么微服务是一个安全问题
|
||
============================================================
|
||
|
||
### 你可能并不想把所有的遗留应用全部分解为微服务,或许你可以考虑开始一段安全之旅。
|
||
|
||
![Why microservices are a security issue](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003601_05_mech_osyearbook20 16_security_cc.png?itok=3V07Lpko)
|
||
|
||
Image by : Opensource.com
|
||
|
||
我为这篇文章起个标题,使出 “洪荒之力”,也很担心这会遇到 “好奇心点击”。如果你点击它,是因为激起了你的好奇,那么(我)表示抱歉。[1][5] 我是希望你留下来的 [2][6]:这里有有趣的观点以及很多 [3][7] 注解。我不是故意提出微服务会导致安全问题——尽管如同很多组件一样(都有安全问题)。当然,这些微服务是那些涉及安全(人员)的趣向所在,最佳对象。
|
||
|
||
为什么这样说?好(问题),对于我们这些有[系统安全][16] (的人来说),此时这个世界才是一个有趣的地方。我们看到分布式系统的增长,带宽便宜了并且延迟低了。加上
|
||
"轻松上云"(部署到云的便利性在增加),越来越多的架构师们开始意识到应用是可以分解的。他们可以分解应用程序而不只是多个层,并且层内还能分为多个组件。当然均衡负载,对一个层次内的各个组件协同一个任务有帮助。但是增长揭露不同的服务作为小附件已经导致架构的增长,以及实施微服务的部署。
|
||
|
||
更多关于微服务
|
||
|
||
* [如何向你的 CEO 首席执行官 解释微服务][1]
|
||
|
||
* [免费电子书:微服务与面向服务的体系架构][2]
|
||
|
||
* [为微服务的 DevOps 保驾护航][3]
|
||
|
||
所以,[什么是微服务][23]?我同意[维基百科的定义][24],尽管有趣的关于安全性没有提起。[4][17]我喜欢微服务的一点是,精心设计符合 Peter H. Salus 描述的 [UNIX 哲学][25] 的前俩点:
|
||
|
||
1. 程序应该只关注一个目标,并尽可能把它做好。
|
||
2. 让程序能够互相协同工作。
|
||
3. 应该让程序处理文本数据流,因为这是一个通用的接口。
|
||
|
||
三者中最后一个小小的不相关,因为 UNIX 哲学 通常被用来指代独立应用,它常有一个命令实例化。但是,它确实包含了微服务的基本要求之一:必须具有定义 "明确" 的接口。
|
||
|
||
明确下,我指的不仅仅是很多外部 API 访问的方法,还有正常的微服务输入输出操作——以及,如果有任何副作用。就像我之前的文章描述的,“[五个特征良好的系统架构][18]”,如果你能设计一个系统,数据和描述主体是至关重要的。这里,在我们的微服务描述上,我们得到查看为什么这些是很重要的。因为对我来说,微服务架构的关键未来定义是可分解性。如果你要分解 [5][8] 你的架构,你必须非常非常非常的清楚 "bits"
|
||
组件要做什么。
|
||
|
||
在这里,安全的要来了。准确描述特定组件应该做什么以允许你:
|
||
|
||
* 查看您的样图
|
||
* 确保您的实现符合描述
|
||
* 提出可重用测试单元来审查功能
|
||
* 跟踪实施中的错误并纠正错误
|
||
* 测试意料外的产出
|
||
* 监视不当行为
|
||
* 审核未来可能的真实行为
|
||
|
||
现在,这些东西(微服务)可能都在一个大架构里了吗?是的。但如果实体是在更复杂的配置中链接或组合在一起,他们会随着越来越难。为确保正确的实施和贯彻,当你有小块一起工作。以及如果你不能确定单个组件正在做他们应正在工作的,那么衍生出复杂系统运行状况和不正确行为就困难的多了。
|
||
|
||
不管怎样,它不止于此。由于我已经在许多[以往场合][19]提过,写足够安全的代码是困难的,[7][9] 证实它应该做的更加困难。因此,有理由限制特定安全要求的代码——密码检测、加密、加密密钥管理、授权、等等。——变的小,明确的快。然后你可以执行上面提到所有事情,以确定正确完成。
|
||
|
||
以及还有更多。我们都知道并不是每个人都擅长于编写与安全相关的代码。通过分解你的体系架构,你得到机会去把最棒的安全人员去限制 J. 随机编码器 [8][10] 会把一些关键的安全控制措施绕过或降级的危险。
|
||
|
||
它可以作为学校的机会:它总能够指向 设计/实现/测试/监视元组 并且说:“听,读,标记,学习,内在消化。这是应该做的。[9][11] ”
|
||
|
||
是否应该将所有遗留应用程序分解为微服务? 你可能可能不会。 但是考虑到所有的好处,你可以考虑从安全功能开始。
|
||
|
||
* * *
|
||
|
||
1、有一点——有读者总是好的。
|
||
|
||
2、我知道他们的意义:我写下了他们。
|
||
|
||
3、可能不那么使人着迷。
|
||
|
||
4、在写这篇文章时。我或你们中的一个可能会去编辑改变它。
|
||
|
||
5、这很有趣,听起来想一个园艺术语。并不是说我很喜欢园艺,但仍然... [6][12]
|
||
|
||
6、有趣地,我首先写了 “如果你要分解你的架构....” 这听起来想是一个 IT 主题的谋杀电影标题。
|
||
|
||
7、定期的读者可能会记得提到的优秀电影 “The Thick of It”
|
||
|
||
8、其他存在的常规人物:请随便选择。
|
||
|
||
9、不是加密摘要:我不认同原作者的想法。
|
||
|
||
这篇文章最初出在[爱丽丝与鲍伯](https://zh.wikipedia.org/zh-hans/%E6%84%9B%E9%BA%97%E7%B5%B2%E8%88%87%E9%AE%91%E4%BC%AF)——一个安全博客上,并被许可转载。
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://opensource.com/article/17/11/microservices-are-security-issue
|
||
|
||
作者:[Mike Bursell ][a]
|
||
译者:[erlinux](https://itxdm.me)
|
||
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]:https://opensource.com/users/mikecamel
|
||
[1]:https://blog.openshift.com/microservices-how-to-explain-them-to-your-ceo/?intcmp=7016000000127cYAAQ&src=microservices_resource_menu1
|
||
[2]:https://www.openshift.com/promotions/microservices.html?intcmp=7016000000127cYAAQ&src=microservices_resource_menu2
|
||
[3]:https://opensource.com/business/16/11/secured-devops-microservices?src=microservices_resource_menu3
|
||
[4]:https://opensource.com/article/17/11/microservices-are-security-issue?rate=GDH4xOWsgYsVnWbjEIoAcT_92b8gum8XmgR6U0T04oM
|
||
[5]:https://opensource.com/article/17/11/microservices-are-security-issue#1
|
||
[6]:https://opensource.com/article/17/11/microservices-are-security-issue#2
|
||
[7]:https://opensource.com/article/17/11/microservices-are-security-issue#3
|
||
[8]:https://opensource.com/article/17/11/microservices-are-security-issue#5
|
||
[9]:https://opensource.com/article/17/11/microservices-are-security-issue#7
|
||
[10]:https://opensource.com/article/17/11/microservices-are-security-issue#8
|
||
[11]:https://opensource.com/article/17/11/microservices-are-security-issue#9
|
||
[12]:https://opensource.com/article/17/11/microservices-are-security-issue#6
|
||
[13]:https://aliceevebob.com/2017/10/31/why-microservices-are-a-security-issue/
|
||
[14]:https://opensource.com/user/105961/feed
|
||
[15]:https://opensource.com/tags/security
|
||
[16]:https://aliceevebob.com/2017/03/14/systems-security-why-it-matters/
|
||
[17]:https://opensource.com/article/17/11/microservices-are-security-issue#4
|
||
[18]:https://opensource.com/article/17/10/systems-architect
|
||
[19]:https://opensource.com/users/mikecamel
|
||
[20]:https://opensource.com/users/mikecamel
|
||
[21]:https://opensource.com/users/mikecamel
|
||
[22]:https://opensource.com/article/17/11/microservices-are-security-issue#comments
|
||
[23]:https://opensource.com/resources/what-are-microservices
|
||
[24]:https://en.wikipedia.org/wiki/Microservices
|
||
[25]:https://en.wikipedia.org/wiki/Unix_philosophy
|