最近,许多业务都在作为独立单元开发的单体应用程序上运行。对整体应用程序的轻微调整可能会影响整个过程并减慢它的速度。例如,编辑和修改一小部分代码需要开发和部署一个全新版本的应用程序。此外,如果您扩展单体应用程序的某些特定功能,则必须扩展整个应用程序。在过去几年中,对微服务架构或微服务的需求呈指数级增长。由于企业对可用性、可扩展性和弹性的需求,微服务架构通过将单体系统分解为更小但易于管理的独立服务来解决单体系统带来的挑战。这些用不同编程语言编写的自治服务运行在它们自己的进程上。此外,这些可独立部署的服务可以使用其他数据存储介质并使用与语言无关的协议进行通信,以高效地执行任务。本文揭示了围绕微服务架构安全性的一些误解,指出了其安全挑战,并提供了解决方案。此外,还提供了构建基于微服务的应用程序的三个最佳安全实践。微服务架构的好处微服务架构为企业提供了许多好处。但是,只有正确完成从单体应用程序到微服务架构的迁移才能获得好处。它的主要优势包括:与单体架构不同,微服务架构允许企业专注于由团队管理的较小但自主的服务,而不是将每个团队的注意力转移到更广泛的应用程序上。企业可以使用他们选择的编程语言开发微服务,并按照自己的节奏独立发布和扩展。单体架构提供更快的上市时间和更好的可扩展性。它提供了更好的故障隔离,因为可以在不影响架构其余部分的情况下包含一个特定微服务中的错误。DevOps和敏捷团队也受益于微服务。Amazon、Netflix、eBay、PayPal和Twitter等科技巨头已经从单体架构迁移到微服务。在过去几年中,微服务架构的规模一直在增加。2018年全球微服务架构市场规模约为21亿美元。此外,预计到2026年将超过80亿美元,预测期内的复合年增长率(CAGR)将超过18%。微服务架构安全性的挑战在实施微服务架构时存在一些挑战,该架构利用多个具有不同技术、编程语言、工具和框架的小型独立服务。下面概述了微服务架构中的一些主要安全挑战:1.更大的攻击面微服务架构是多个服务的聚合,这些服务暴露不同的端口并暴露多个应用程序编程接口(API),从而增加网络攻击面,这带来了严重的安全挑战。因此,应充分保护所有微服务免受此类安全威胁。2.隔离在典型的微服务架构中,应用程序可以独立开发、测试、扩展、部署和维护。这意味着这些活动都不应该影响应用程序中其他微服务的工作。为了增强进程的安全性,需要在数据库层面实现隔离。换句话说,每个微服务都必须有自己的数据副本,并且不应允许它访问应用程序中其他微服务的数据。在每一层实施隔离使基于企业微服务的应用程序更加安全。3.传统日志基于微服务的应用程序通常具有使用跨越地理边界的多种技术开发的无状态、分布式和独立的服务。因此,单体应用程序中相同的传统日志记录在基于微服务的应用程序中效果不佳。相反,应用程序应该跨多个平台和服务聚合日志并关联事件以实现高效日志记录。4.DevOps团队的协作通过独立开发、部署和管理服务来创建应用程序有好处,但是当它们在没有经过全面测试的情况下发布时,安全漏洞就会增加。基于微服务的应用程序可以频繁发布,但这种提高的敏捷性是以牺牲安全性为代价的。为了解决微服务架构的安全问题,DevOps团队之间更紧密的协作对企业来说至关重要。他们应该密切互动,对流程有很好的了解,并减轻安全威胁。此外,他们的协作必须在开发、安全和运营(DevSecOps)生态系统内进行,以防止未经授权访问应用程序中的任何资源。5.容错即使一个或多个组件发生故障,应用程序仍能正常运行的能力称为容错。这通常是通过设置像断路器模式这样的回退机制来完成的。然而,在基于微服务的应用程序中实现容错是一项具有挑战性的工作。有时它的实现变得比单个应用程序更复杂和更具挑战性。微服务架构有更多的服务,处理更多的请求。当大量服务通过网络进行通信时,复杂性会增加。此外,微服务架构应该是容错的,这意味着它应该处理服务故障,因为频繁的服务故障会破坏整个应用程序的稳定性。微服务架构中的三种安全实践除了了解微服务架构面临的安全挑战外,这里还有一些安全实践:1.深度防御(DiD)策略深度防御策略可以为应用程序添加许多安全层,还可以用于保护基本服务。因此,网络攻击者成功利用微服务的一个安全漏洞并不能保证一定会利用另一个安全漏洞。换句话说,如果网络攻击者成功攻破了基于微服务的应用程序中的一层保护,那么攻破其他应用程序安全层可能并不容易。2.API网关在典型的基于微服务的应用中,用户无法直接与微服务进行通信。APIGateway对各种微服务的入口是单一的,这种机制不允许用户直接访问和使用服务。企业应将API网关置于防火墙之后,为网络攻击面增加一层保护。它还有助于保护应用程序中使用的每个微服务。通常,基于令牌的身份验证用于保护API网关。3.API和数据安全在一个典型的基于微服务的应用程序中,服务应该相互通信,数据应该在不影响应用程序性能的情况下得到保护。为此,应妥善维护安全证书,并对传输中的数据进行加密和保护。应通过仅允许授权用户访问来保护API。企业还可以利用对资源的限制访问,这意味着仅在需要时才提供对资源的访问。制定微服务安全策略在典型的整体架构中,安全问题不是什么大问题,但同样的方法在安全性是一个复杂挑战的微服务生态系统中不起作用。例如,保护企业数据和应用程序的标准防火墙无法满足基于微服务的应用程序的安全需求。事实上,需要强大的防御机制来对抗安全威胁。因此,企业应该制定安全策略来应对这些挑战。应实施自动化以监控应用程序和潜在的安全威胁。除此之外,还应部署集中式安全系统和工具,以有效监控基于微服务的应用程序。因此,建议企业采用频繁更新的自动扫码和安全代码保护来加强安全性。原文链接:https://www.itbusinessedge.com/it-management/securing-microservices-architecture/
