For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
微服务架构开发是目前大多数软件编程开发程序员都在学习和使用的一种编程开发方式,而本文我们就简单来了解一下,微服务架构安全防护防护方法分享。
1.创建不可变的容器
开发人员倾向于让shell访问图像,这样他们就可以在生产中修复它们。然而,攻击者经常利用这种访问方式注入恶意代码。为了避免这种情况,需要创建不可变的容器。在出现任何缺陷或漏洞时,开发人员可以重新构建和重新部署容器。远程管理是通过运行时API或通过为运行微服务的主机创建远程shell会话来完成的。容器的不可变特性也会影响数据持久性。开发人员应该将数据存储在容器之外,以便在替换其中一些数据时,新版本仍然可以使用所有数据。
2.仅从可信来源运行映像
对于拥有现成可用容器的开发人员来说,有许多开放源码包,包括Node.js.、ApacheWeb服务器和Linux操作系统。但是,出于安全目的,你需要知道容器的来源、更新时间以及它们是否没有任何已知的漏洞和恶意代码。好是建立一个可信的映像存储库,并仅从该可信源运行映像。此外,开发人员应该在将容器投入生产之前检查脚本中的应用程序签名。如果米在多个云环境中运行,那么可以使用多个映像存储库。如果想使用来自其他来源的图像,建议使用扫描工具扫描它们的内容。
3.使用注册表安全访问图像
DockerHub、AmazonEC2容器注册中心和Quay容器注册中心等注册中心帮助开发人员存储和管理他们创建的映像。这些注册中心还可以用于提供基于角色的访问控制、只接受来自可信来源的容器、不断更新已知漏洞列表以及标记易受攻击的映像。
基于角色的访问控制非常重要,因为你需要控制谁可以将更改引入容器。好限制对特定管理帐户的访问:一个负责系统管理,一个负责操作和编排容器。
此外,你应该确保注册中心验证每个容器的签名,并且只接受来自可信来源的签名。你的注册表还应该包含一些功能,帮助你不断检查图像内容的已知漏洞,并告知安全问题。
4.每个主机部署一个微服务
基于微服务的应用程序可以部署在同一个主机上,也可以部署在多个主机上。因此,这种部署模型导致了管理的复杂性。考虑哪些容器应该部署到哪些主机上,哪些容器需要相互访问,以及如何自动扩展软件容量,佳实践是在单个主机操作系统内核上对特定微服务的容器进行分组。这种方法在深度上提供了额外的防御,可以给攻击者在危害不同群体时增加难度。如果你的环境比较大,有很多主机,请自动化这个过程。
5.强化主机操作系统
虽然大多数建议都涉及到微服务和容器的安全性,但是还需要确保主机操作系统的安全性。先,NIST建议使用特定于容器的主机操作系统,因为它们没有不必要的功能,攻击面会比通用主机小得多。使用允许使用路由器或防火墙控制出口流量的平台也是可取的。
其次,CISDocker基准测试可以提供一系列检查,为你提供关于如何加强系统的良好基线。很可能,它会建议你做以下工作:
建立用户认证
设置访问角色
指定二进制文件访问权限
启用审计数据的日志记录
为了避免数据被盗,限制对底层操作系统资源的容器访问,并将容器彼此隔离。佳实践是在内核模式下运行容器引擎,而在用户模式下运行容器。此外,Linux提供了多层安全性,限制了容器的功能。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。