了解如何为 OCI 函数构建安全的容器映像

作为安全优秀实践,客户使用漏洞扫描仪扫描容器注册表映像,例如关键操作系统补丁程序。漏洞扫描仪可帮助识别和修复容器映像中的漏洞,防止安全漏洞、数据泄露和其他安全漏洞。使用 OCI Functions 构建或部署函数时,将创建 Docker 映像并将其推送到 Docker 注册表。漏洞扫描器扫描并报告图像的漏洞,并报告各种风险级别。

在此解决方案手册中,我们分享了为 Docker 注册表安全构建映像的最佳实践。

体系结构

默认 Dockerfile 是基于基线映像 (fnproject/python:3.9-dev) 构建的,可能缺少相关软件包的最新版本。

以下是容器映像扫描很重要的一些原因,如果检测到任何漏洞,则必须进行补救:

  • 早期检测:在构建阶段扫描映像有助于在将漏洞部署到生产环境之前识别漏洞。
  • 经济高效:早期修复漏洞比在部署后修复漏洞更便宜。
  • 减少攻击面:容器映像由多个层组成,每个层都可能包含漏洞。扫描有助于识别和解决这些漏洞。
  • 改善安全状况:使用来自可信来源的最小、维护良好的基本映像有助于改善安全状况。

下图说明了使用默认 Dockerfile 的此引用体系结构的工作流。



build-container-image-oci-functions-default-docker.zip

下图说明了使用定制 Dockerfile 的此引用体系结构的工作流。



build-container-image-oci-functions-custom-docker.zip

此体系结构支持以下组件:

  • 区域

    Oracle Cloud Infrastructure 区域是包含一个或多个数据中心(称为可用性域)的本地化地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。

  • Tenancy

    租户是 Oracle 在您注册 Oracle Cloud Infrastructure 时在 Oracle Cloud 中设置的安全隔离分区。您可以在您的租户内的 Oracle Cloud 中创建、组织和管理资源。租户是公司或组织的同义词。通常,公司将具有单个租户并反映其在该租户中的组织结构。单个租户通常与单个订阅关联,单个订阅通常只有一个租户。

  • 注册表

    Oracle Cloud Infrastructure Registry 是一个由 Oracle 管理的注册表,可帮助您简化开发到生产工作流。通过注册表,您可以轻松地存储、共享和管理开发对象,例如 Docker 映像。Oracle Cloud Infrastructure 的高可用性和可扩展性架构可确保您能够可靠地部署和管理应用。

  • 函数

    Oracle Cloud Infrastructure Functions 是一个完全托管的多租户、高度可扩展的按需函数即服务 (FaaS) 平台。它由 Fn Project 开源引擎提供支持。使用函数可以部署代码,也可以直接调用代码或触发代码以响应事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中托管的 Docker 容器。

  • Oracle Cloud Infrastructure Streaming 提供了一个完全托管、可扩展且持久的存储解决方案,可以摄取连续的大量数据流,以便您实时使用和处理。您可以使用流处理来摄取高容量数据,例如应用日志、运行状况遥测、Web 点击流数据;或用于在发布 - 订阅消息传递模式中连续生成和处理数据的其他用例。

  • 漏洞扫描服务

    Oracle Cloud Infrastructure Vulnerability Scanning Service 定期检查端口和主机是否存在潜在漏洞,从而帮助改善 Oracle Cloud 中的安全状况。该服务生成包含有关这些漏洞的度量和详细信息的报告。

关于为 OCI 函数构建容器映像

此解决方案中的函数作为 Docker 映像构建并推送到指定的 Docker 注册表,因此它实际上是需要打补丁的容器映像。更新的映像通常包括新功能、性能改进和优化。更新映像可确保与最新的库和软件依赖项兼容,并修复恶意操作者可能利用的漏洞,以获得对敏感数据或资源的未经授权访问。更新图像有助于保持符合行业标准和法规。