了解如何为 OCI 函数构建安全的容器映像
在此解决方案手册中,我们分享了为 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 中的安全状况。该服务生成包含有关这些漏洞的度量和详细信息的报告。