Google开源Bazel插件以自动化创建安全的无发行版镜像

Google与Aspect宣布Bazel插件rules_oci 1.0版本发布

Google与Bazel咨询公司Aspect联合宣布了Bazel插件rules_oci的1.0版本。该插件旨在简化使用Bazel创建安全容器镜像的过程,特别强调了Distroless镜像的使用。rules_oci取代了rules_docker,并在多个方面进行了改进。

rules_ocirules_docker的比较

rules_ocirules_docker(现处于维护模式)都可以自动化安全创建容器镜像的过程。Google工程师Appu Goundan指出,Bazel非常适合这一任务,因为它使用完整性哈希缓存依赖项,并遵循“首次使用信任”(Trust on first use)原则,任何依赖项完整性哈希的变化都会被视作篡改的迹象。

Distroless镜像的优势

rules_oci可用于创建任何类型的容器镜像,但Google特别关注Distroless镜像的创建,以提高供应链安全性。Distroless镜像将运行时容器中的内容限制为应用程序所必需的,这是Google和其他科技公司在生产环境中使用容器多年的最佳实践。使用最小的基础镜像可以减少管理与安全漏洞、许可证和供应链治理问题相关的风险。

rules_oci的多运行时和多格式支持

rules_oci的引入原因之一是其支持创建符合开放容器倡议规范的多种运行时和格式的容器镜像,特别是podman。而rules_docker则仅限于创建Docker镜像。rules_oci还受益于简化的架构,可以利用Crane、Skopeo和Zot等工具进行容器操作任务,如管理本地注册表。

语言无关性与语言特定支持

rules_oci力求语言无关性,而rules_docker则包含每种支持语言的特定规则集,以处理每种语言生态系统在依赖管理上的特殊性。Goundan表示,这将使新插件更容易维护,并更容易与新语言一起使用。Google还提供了语言特定示例,帮助使用rules_oci为C/C++、Go、Java等语言创建容器镜像。

供应链安全相关特性

Goundan指出,rules_oci还有其他与供应链安全相关的特性。特别是,rules_oci使用Bazel从远程注册表获取层,并使用代码签名来实现作者身份验证。

1.0版本的意义

1.0版本的发布意味着rules_oci提供了更强的稳定性保证,遵循semver标准,并承诺未来的发布不会包含破坏性API更改。Aspect还提供了迁移指南,以简化从rules_docker迁移到rules_oci的过程。

阅读 37
0 条评论