* Update 20161004 Keeping Linux containers safe and secure.md * Rename sources/tech/20161004 Keeping Linux containers safe and secure.md to translated/tech/20161004 Keeping Linux containers safe and secure.md
8.3 KiB
保持Linux容器的安全和稳定
图片来源: Lucarelli 基于 Wikimedia Commons. CC-BY-SA 3.0
Linux容器正在帮助改变IT从业者的工作方式。相比于大的、其中的虚拟机器,一些组织发现把他们的应用部署在容器中更有效,可以提供更快的速度,更加密集,提升他们操作的敏捷性
和传统的基础设施一样,确保运行在一个容器内的组件和系统库的定期更新是至关重要的,但是你如何知道什么东西运行在你的容器内?为了帮助管理全部这些的安全挑战,一个名为Anchore的开源项目正在开发,它用来帮助展示Linux容器中的内容。
为了了解更多关于Anchore,我赶上了 Anchore 的市场和产品的发言人 Andrew Cathrow,来了解更多关于这个开源项目背后的公司。
简而言之 Anchore是什么? 它如何工作?
Anchore 的目标是提供一个允许开发人员、运营团队、安全团队通过开发生命周期的容器,保持完整的“托管链”的可见性,同时提供生产部署所需的可见性、可预测性和控制性。Anchore的引擎通过插件可以进行分析(通过提取图像数据和元数据)、查询(允许对容器进行报告)、以及策略评估(这里的正常指可以被指定的管理的图像)。
虽然市场上有很多扫描工具,但是大部分不开源。我们认为安全合规的产品应该是开源的,否则你怎么才能信任他们。
Anchore 除了开源以外,还有两大优势,使他可以区别于市场中的商业产品。
首先,我们看的不止是操作系统的镜像。如今的扫描工具专注于操作系统的软件包,比如“你的RPM或DEB包中有CVE(安全漏洞)么?”.这虽然是很重要的,你不希望你的镜像中有不安全的包,但是操作系统包只是镜像的基础。其他的层次都需要进行验证,包括配置文件、语言模块、中间件等等。你可以拥有所有的最新的软件包,但是可能一个配置文件配置出现错误或者是不安全的配置。第二个不同就是允许用户添加自己的数据库拓展、查询或策略。
什么推动了容器的校验和分析工具?这个工具可以解决运营面临的什么问题呢?
企业使用Docker首要关注的就是安全,特别是他们正在部署的容器的分配和合规性。在生产环境中,从公共镜像库拉取一个镜像,运行它,并在几秒钟部署,是非常简单的,甚至不知道下面可能发生什么。
容器是不透明的,包含应用程序的他们是可以部署的“黑盒”。虽然非常容易把这些镜像看作“打包的应用程序”,但是他们包括了系统的镜像和多达数百个包和成千上万个文件。
要对您的容器部署有信心,你需要知道底层是什么和基于容器镜像的内容来做出决定。
如今容器的创新基本上都是开源的,你认为那是什么呢?是什么驱动了他们开源呢?
在过去的20年中,组织已经经历了开源带来的优势,节省成本,减少锁定,提高了安全性和更快的创新。容器,特别是Docker,都是非常好的例子。Docker公司的团队不能创建在专有系统上创建一个新的软件部署模式,也不能够于行业领导者比如谷歌、IBM、英特尔、红帽合作,朝着一个共同的目标。开源和Linux总是开启创新和进行积极的产业干扰。在过去,实现一个大的想法需要一个大的团队和很多资源。在开源世界,一个有着大的创意的小公司可以工作在一个更大的社区中,通过知识共享的力量来协作,提供真正的企业创新
为了深入的说明开源的使用,Anchroe 团队最近从多伦多的 LinuxCon 返回,在哪里,令人难以相信的是,微软作为钻石级的赞助商,展示了他们的产品组合在Linux上的工作。Linus Toravlds 曾说过,“如果微软为Linux做应用就意味着我赢了”。我要把这句话改为“开源赢了”。
容器领域的通用标准的创建还需要时间,在容器的几乎所有部分,仍有许多挑战。在这个领域,创业公司有哪些挑战?
这里有个很重要的点,就是没有开放的标准和开源,我们不可能看到快速推动容器的采用和改变行业格局的创新。开放容器倡议(OCI)由Linux和容器行业的行业领导者组成,正在为运行环境和镜像格式创造标准,这将使我们能够看到更多的创新。Anchore很自豪能成为OCI的新成员,我们期待帮助形成标准。
你如何为Anchor项目建立一个开源社区?
Anchore团队来自Ansible,Eucalyptus Systems和Red Hat的领导团队,在开源社区中拥有丰富的工作经验。从一开始,Anchore开始创建一个强大的开源社区,我们正在应用我们在开源世界中学到的经验和教训。第一课,当然,很快,也很频繁。我们在6月开源我们的检测和分析引擎,远远早于我们的商用产品。为了确保开源项目能够独立运行,使更多的直接用户能够使用它,而无需购买Anchore的商用产品。有很多机会,通过支持、服务和增强型的数据源,通过商用产品创造更多价值,但是如果开源引擎本身没有用,我们将看不到活跃的社区。
我们将Anchore模块化,允许添加分析、报告和策略插件,而不需要更改核心的引擎。我们希望保证任何人都可以创建插件,所以我们选择了Python作为项目的基本语言,因为Python被开发者和系统管理员广泛应用。但是,即使你不熟悉Python,你仍然可以使用任何你喜欢的语言或者脚本环境创建插件。如果你可以创建一个Bash脚本,那么你可以创建一个Anchore插件。我们的目标是最大化的吸引社区的参与。虽然我们鼓励用户将贡献回馈给社区,但是我们也为这个项目构建并授权来确保可以独立创建和维护这些私有的插件和模块。
容器的约定不止是在服务器上更大密度的部署应用程序或者技术层面更快的速度,而且还有不同工具的组合,这些工具提供了一种不同的方式来接近开发者和操作者共同工作的方式。作为在这个领域工作的公司,你们希望提供一个什么样的消息来让开发者和运营产生共鸣?
随着越来越多的运行环境、编排、监控和集成产品,容器的生态系统正在快速发展。所以,我们的架构中的第一个考虑因素不是关于Anchore的部署和使用。我们需要确保我们可以适应任何CI/CD的通道,无论是私有部署还是云端部署。我们通常做的假设是,如果Anchore将提供一个包含镜像扫描和分析的容器仓库。虽然这将大大简化我们的工作,但是这会迫使用户进入特定的部署架构,并限制了用户部署他们自己最好的组件的能力。我们已经确保Anchore可以和所有先进的仓库、运行环境CI/CD平台和编排工具配合使用。
一些开发者添加了运营技能,并转移到 Devops 角色,我们看到系统管理员/运营团队在转换角色时,更多的了解开发。我们也看到了具有混合能力的团队。我们设计了Anchore来供开发运营和安全团队使用,因此他们可以在开发周期中的任何一点来一起工作,评估规则和策略。另外一个例子是插件/模块的架构,使任何人都可以在他们喜欢的环境中轻松创建一个模块 -无论是Python、Go、Perl、C 甚至是一个Bash脚本。
via: https://opensource.com/business/16/10/interview-andy-cathrow-anchore
作者:Jason Baker
译者:Bestony
校对:校对者ID