专栏首页technewsworld翻译专栏将服务网格视作安全工具(Security)

将服务网格视作安全工具(Security)

如果你和大多数安全专家一样,那么很有可能你已经开始对微服务感到些许失望,甚至失望很多。从软件架构师的角度来看,微服务体系结构——也就是利用REST构建一些小型、分布式、模块化组件的体系结构,是非常强大的。

想在不降低整个应用程序性能的情况下快速更改组件,还是想即时添加新功能?微服务实现了这些目标。您可以修改(或添加)您感兴趣的特定服务,而无需重新构建大型单片应用程序。

从安全管理的角度来看,这样做的弊端当然是一场噩梦。有几个原因,对于安全架构师来说,这是一个挑战,因为我们最有效的工具之一 —— 应用程序威胁建模,依赖于从攻击者的角度分析组件之间的交互。

这样做的前提是:随着时间的流逝,通信通道几乎保持不变。如果开发人员每五分钟发布一次更新,并且如果服务之间的路径发生变化,那么威胁模型仅在该时点有效。如果您曾试图威胁模型(并使其保持最新状态)以大量使用微服务,而该应用正在迅速发展,那么您将很确定地知道这钟情况会令人相当沮丧。

捕捉风向

从运营的角度来看,这也是一种挑战。 在后台,最普遍的微服务实现方法是带有Kubernetes编排的Docker。 这意味着实际运行服务的容器被设计为即时的:添加新容器以适应负载增加,并重新部署容器以适应应用程序更改或更新的配置。

为了说明为什么这具有挑战性,让我们假设您几天前接到了入侵检测系统警报,日志条目或可疑活动,具体涉及哪些主机/节点,它们处于什么状态?

试图弄清楚这一点就仿佛是要追赶瞬息万变的风:这些容器可能在您到达那里时就被覆盖并重新部署了几次。 除非警报可以清楚地显示发生了什么(什么时候发生的?),您的事件解决方案现在取决于从过去某个时间起对高度复杂系统的状态进行逆向工程。

幸运的是,最近的一项ish技术可以显著地帮助实现这一点,那就是服务网格体系结构。服务网格作为一种设计模式,实际上可以通过几种方式为安全从业人员提供强大的帮助。它对开发人员而言功能强大,对安全领域中的人员而言也同样强大(甚至更多)。

服务网格如何提供帮助

什么是服务网格?一种可行的方式是把服务网格当作为您服务的“交通调度员”。当一个服务想要与另一个服务通信时,有两个选项可供选择。选项一:它知道存在的所有其他服务并实现与之对话的逻辑。选项二:它要求其他人完成这项工作。

把服务网格想象成寄一封信。如果我想给我在肯塔基州的表弟寄封信,,一种选择是我亲自写这封信,坐上汽车,开车去他家,然后把信放在他手中。这取决于一系列先决条件:我知道他的地址,有一辆车可以随时开走,知道怎么去他家,知道他是否搬家了,等等。只是这样做的效率不高。

一个更好的选择是我写好这封信,填上地址,让邮局来负责送信。让他们维护必要的信息和投递设备,这样我就可以专注于我真正关心的事情:我的信成功到了目的地。

就实现方式而言,有很多方法可以做到这一点,但最常见的方法是通过“sidecar”容器。什么是sidecar容器?它只是另一个容器——运行代理的容器,该代理被专门配置为在服务之间引导应用程序流量。这意味着它的配置和部署方式可以使消息的“传递”与应用程序逻辑分离。

从应用程序开发的角度来看,好处应该是相当明显的:开发人员可以关注业务逻辑,而不是“东西向”通信机制(即服务之间的通信)。不过,从安全角度来看,也有优势。

值得注意的是,它为监视和其他安全服务提供了一个挂钩。 无需调整(或者,事实上,甚至不需要了解)单个服务的应用程序逻辑,就可以添加此功能。 所以,举个例子,如果我想允许服务A使用TLS和可靠的身份验证实现仅与服务B的对话,则可以这样做。同样,如果我想在给定的时间点记录容器与另一个容器的对话版本,则可以将其配置为提醒功能。

集成因素

如果你觉得这很有吸引力,那也是理所当然的。事实上,服务网格代表了安全领域中很少出现的事情:它使开发人员以更安全的方式(而不是较不安全的方式)进行操作的阻力最小。

开发人员发现服务网格很有吸引力,因为他们不必为与其他服务的通信和交付物流的细节操心。此外,服务网格还添加了安全选项,否则开发者不得不在应用程序层强制执行这些选项。

因此,如果您所在的组织正在考虑微服务,那么服务网格体系结构实际上可以帮助维护组织环境。如果已经在使用它,那么了解它的含义可以帮助您将其集成到对话中,并为您提供减轻某些微服务“痛点”的工具。

唯一需要注意的是,在学习新工具集和使体系结构工具适应新模型方面,使用服务网格确实需要一些准备工作。无论你使用的是Istio + EnvoyLinkerd还是其他工具,它首先都应该指引你阅读文档,以了解可用的功能,工具集的工作方式以及可用的策略/配置选项。无论如何,这是一个好的想法,因为验证该配置,只是个早晚的问题。

另外,如果您仍然打算对应用程序进行威胁建模,则可能需要考虑新的范例,这是适应多种情况的好方法。

具体地说,在数据流分析中使用更合乎逻辑的观点帮助性很大——也许可以通过单独分析每个服务的输入和输出,而不是假设“服务A”只与“服务B”对话(或者更糟的是,假设服务之间的静态流量基于应用程序在给定时间点的相应操作。

关键是,安全专业人员不仅不应该害怕服务网格,而且还应该考虑积极接受它的坚实论据。

原文链接:https://www.technewsworld.com/story/86380.html

原文作者:Ed Moyle,电子商务时报新闻网络

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从受欢迎的新说唱者到匹兹堡犹太教堂枪击案:Gab的演变

    原文题目: From Welcome New Gabbers to the Pittsburgh Synagogue Shooting: The Evoluti...

    吴亚芳
  • ISACA董事会成员Gabriela Reynaga谈论性别,科技和感知(IT)

    ISACA(国际信息系统审计协会)是一个全球非盈利组织,专注于开发、采集和使用全球公认和行业领先的信息系统知识和实践,最近发布了《科技劳动力2020:年龄和性别...

    吴亚芳
  • 基于Flash的键值存储中的多版本索引

    原文题目: Multi-version Indexing in Flash-based Key-Value Stores

    吴亚芳
  • Kubernetes 上的服务网格技术大比较: Istio, Linkerd 和 Consul

    云原生应用通常是由一组运行在容器中的分布式微服务架构起来的。目前越来越多的容器应用都是基于 Kubernetes 的,Kubernetes 已经成为了容器编排的...

    黑光技术
  • 微服务2.0时代,论其痛点与触点

    微服务自2014年3月由Martin Fowler首次提出以来,在Spring Cloud、Dubbo等各类微服务框架的帮助下,以燎原之势席卷了整个IT技术界,...

    技术zhai
  • 进大厂必须掌握的50个微服务面试问题

    根据Gartner的说法,微服务是云开发的新应用平台。微服务是独立部署和管理的,一旦在容器内实现,它们与底层操作系统的交互很少。 因此,如果您计划在微服务中开始...

    Java架构师历程
  • 从服务混乱到服务网格

    嘉宾文章作者:Rob Richardson(@rob_rich),技术布道者,MemSQL;KavyaPearlman(@KavyaPearlman),全球网络...

    CNCF
  • 服务网格(Service Mesh)与Kubernetes的服务发现

    伴随着微服务架构,容器编排技术和云原生(Cloud Native)应用的发展,William Morgan 两年前一篇《What's a service mes...

    曲奇泡芙
  • Istio进入1.7版本,Service Mesh 落地还有什么障碍?

    2017 年,Google 联合 IBM、Lyft 推出了 Istio,因为有 K8s 的成功经验在先,Istio 一出生就引人注目,其受到的关注度甚至远超最早...

    深度学习与Python
  • 应用服务网格(Service Mesh)应对微服务中面临的三种挑战

    微服务适用于开发运维(DevOps),可是这些架构依赖的服务到服务通信在生产环境下运行和管理起来很复杂。这时候Service Mesh闪亮登场了:这是企业扩展、...

    程序你好

扫码关注云+社区

领取腾讯云代金券