随着云生态的发展壮大,可以满足用户对系统灵活性和动态按需可塑性的需求。用户可以根据业务情况在短时间内在线部署大量服务器,过峰后退出,全程自动调整收缩。一个典型的例子是新浪微博服务。当突然爆发的时候(比如明星出轨新闻),它的流量可能是平时的几百倍甚至上千倍。对于这种爆炸式流量,传统的扩容方式根本无法满足需求。没有这么多资源,新浪的方案是私有云+租用公有云,花钱用阿里云实现高峰期的服务扩展。对于一般企业来说,可以通过租用第三方云服务来构建自己的服务模式,无需维护任何硬件设备和基础的后台软件服务。这种架构称为Serverless,即“无服务器”架构。Serverless架构允许企业实施更灵活、更具成本效益的业务架构模型。但是随着企业开始使用Serverless架构,需要考虑Serverless架构的安全性。本文就为大家聊一聊这个话题。什么是无服务器?Serverless是虚拟化和云计算发展的产物。是指企业完全租用云提供商资源的商业模式。Serverless的核心是在架构中彻底消除硬件和后端基础设施。软件服务(如数据库、账户系统等),依赖于第三方云资源(BaaS或FaaS)。在考虑无服务器架构时,主要基于一个想法:如果应用程序的所有功能不是一直都在使用,为什么要为不经常使用的服务器支付租金?一般来说,系统需要一些功能,例如业务逻辑、用户认证系统、数据库以及其他特定于用户和特定于活动的功能。使用服务器架构会执行并封装这一系列的功能,所以serverless一般被称为FunctionasaService(FaaS);这些服务同时也服务于后端,所以也被称为BaaS“BackendasaService”。FaaS服务最典型的例子是知名云厂商亚马逊AWS的AWSLambda。国内的阿里云最近推出了类似的东西,叫做函数计算:ServerlessSecurity虽然云厂商提供了很多安全服务和一些基本的安全策略,但是你需要花钱购买相关的服务,有些策略还需要自己配置。.Serverless架构的安全性需要注意以下几点。保持应用程序安全的最有效方法之一是使所有组件保持最新。使用的第三方模块是否需要打安全补丁?更新软件时经常被忽视的问题是忘记更新组件依赖项,尤其是在应用程序中使用开源组件时。据统计,超过92%的应用使用开源组件,占其代码库的60-80%,基础开源组件的安全性不容忽视。如何安全地使用开源模块和商业软件之间存在一些明显的差异。例如,当开源组件发布新的漏洞或修复程序时,无法很好地跟踪其影响面并实现有效的升级通知。另一个方面是考虑构建组件依赖性。如果其中一个依赖项易受攻击,它可能会影响整个应用程序的安全性。现在的Git基础服务器,比如Github、Gitlab,都为依赖它们的基础类库提供了自动安全扫描工具。我们可以使用这些工具来确保我们的组件更新到安全版本。基于最小权限原则的权限和访问控制是维护Serverless安全的重要规则。通过安全策略设置为每个功能授予最小权限,并使用基于角色的身份验证(IAM角色)来最大程度地减少潜在的安全问题。风险。这个原则很重要,因为可访问的用户越多,系统安全的潜在风险就越大。例如,一名黑客成功劫持了您用户的一个电子邮件帐户并窃取了他们的登录凭据。为了把风险降到最低,我们应该按角色限制可访问的功能,限制访问IP,比如限制通过防火墙和VPN设置登录,这样即使登录凭证被盗,也无法登录。当然,除了外部黑客的攻击,我们还需要防止内部人员窃取他们不应该知道的信息,所以基于角色限制每个用户的权限是非常重要的。保持EM分离类似于限制用户权限的原则,隔离每个功能的网络和资源访问也很重要。这个原则也叫Micro-Segmentation,就是保证我们的某个功能被征服后,其他功能和节点不会因为设置访问壁垒而受到影响。安全界经常观察到一个常识,即“不能将所有的鸡蛋放在同一个篮子里”。如果我们将数据库与另一个数据库分开,通过隔离不同的功能和不同的人类容器,我们可以保证整体的安全性不会受到某些节点的影响。密切关注日志一旦开始使用无服务器基础架构,您会发现架构会发生变化并变得混乱。快速迭代的功能和业务可能会让我们忽略一些安全问题的迹象。例如,向无服务器架构发送大量请求可能表明该功能存在错误,但您忽略它并且没有注意到它。这时候需要注意安全和日志。熟悉无服务器架构(以及其他一些类似的架构)的好工具是浏览器和系统日志。解决无服务器安全挑战的第一步是维护和分析日志以识别执行日志中的异常。安全扫描其次,我们应该使用全自动工具扫描功能,包括检查和监控系统使用的所有开源组件。例如,如果您使用AWSLambda,则可以使用WhiteSource的无服务器集成来扫描和监控已部署的部署。WhiteSource自动识别所有开源组件和依赖项,然后根据其全面的开源存储库数据库检查它们是否存在安全漏洞和许可证。.一旦检测到,您就可以应用自动化策略、定义工作流并跨团队协作处理信息。合规性问题当涉及金融、电信、健康等受监管行业时,数据隐私问题变得更加敏感。由于我们在云上运行应用程序和存储数据,因此将这些资产暴露给公众总是存在风险。云上数据的资格可能需要法律和专业协助。综上所述,使用Serverless架构有很多优势,可以帮助我们节省成本,增加灵活性和延展性。但是Serverless架构的安全问题也不容忽视。在本文中,我们列出了一些常用的安全原则和技术,帮助您规避常见的Serverless安全风险,保障应用程序的安全性和可靠性。
