挑战
IBM 云 提供公共云、私有云和混合云功能,涵盖各种运行时环境,从基于 OpenWhisk 的函数即服务 (FaaS) 产品、托管的 Kubernetes 和容器,到 Cloud Foundry 平台即服务 (PaaS)。这些运行时环境与公司的企业级技术相结合,例如 MQ 和 DB2、现代人工智能 (AI) Watson 和数据分析服务。IBM 云用户可以利用其目录中超过 170 种不同的云原生服务的强大功能,包括 IBM 天气公司 API 和数据服务等功能。在 2017 年后期,IBM 云容器注册表团队希望构建一个图像信任服务。
解决方案
这项新服务的开发工作最终在 2018 年 2 月于 IBM 云中公开发布。该图像信任服务名为 Portieris,完全基于 云原生计算基金会 (CNCF) 开源项目 Notary,IBM 云容器注册表团队的软件开发人员 Michael Hough 说。Portieris 是一个 Kubernetes 准入控制器,用于强制执行内容信任。用户可以为每个 Kubernetes 命名空间或在集群级别创建图像安全策略,并对不同的图像实施不同的信任级别。Portieris 是 IBM 信任故事的关键部分,因为它使用户能够从其 IKS 集群内使用公司的 Notary 产品。该产品是 Notary 服务器在 IBM 云中运行,然后 Portieris 在 IKS 集群中运行。这使用户能够让其 IKS 集群验证从其加载容器的图像是否完全符合预期,而 Portieris 允许 IKS 集群应用该验证。
影响
IBM 提供托管 Kubernetes 容器服务和图像注册表的目的是为其企业客户提供一个完全安全的端到端平台。“图像签名是该产品的一个关键部分,我们的容器注册表团队将 Notary 视为在当前 Docker 和容器生态系统中实施该功能的事实上的方式,”Hough 说。该公司之前没有提供图像签名功能,而 Notary 是其用于实施该功能的工具。“我们有一个多租户 Docker 注册表,提供私有图像托管,”Hough 说。“Docker 注册表使用哈希来确保图像内容的正确性,并在传输中和静止状态下对数据进行加密。但它不提供任何关于谁推送了图像的保证。我们使用 Notary 使用户能够在他们选择的私有注册表命名空间中签署图像。”
“在将 TUF 和 Notary 都贡献给 CNCF 之后,我们意识到它正在成为容器生态系统中图像签名的行业标准,”IBM 云容器注册表团队的软件开发人员 Michael Hough 说。
选择 Notary 的关键原因是它已经与 IBM 容器注册表使用的现有身份验证堆栈兼容。TUF 的设计也是如此,它不需要注册表团队参与密钥管理。他表示,这两者都是“吸引人的设计决策,证实了我们选择 Notary”。
在 IBM 云中引入 Notary 来实现图像签名功能,促进了整个 IBM 云平台的安全增强,“我们预计它将包括签署官方 IBM 图像以及安全意识强的企业客户的预期使用,”Hough 说。“与安全策略实施相结合,我们预计 CI/CD 管道中将更多地使用部署策略,这些策略允许根据图像签名者对服务部署进行细粒度控制。”
图像签名功能“对于需要这种图像来源和安全性级别的安全意识强的客户来说是一个巨大的优势,”Hough 说。“通过我们提供的 IBM 云 Kubernetes 即服务产品和准入控制器,它允许 IBM 服务以及 IBM 公有云的客户使用安全策略来控制服务部署。”
现在,由 Notary 实现的服务已作为其现有 IBM 云容器注册表的一部分,在 IBM 的公有云中普遍可用,它被部署为跨五个 IBM 云区域的高可用服务。这种高可用性部署在五个区域中的每个区域的两个区域中包含三个实例,并通过故障转移支持进行负载均衡。“我们还通过端到端 TLS 支持将其部署到我们的后端 IBM Cloudant 持久存储服务,”Hough 说。
IBM 团队已经创建并开源了一个名为 Portieris 的 Kubernetes 准入控制器,它使用 Notary 签名信息与客户定义的安全策略相结合来控制图像部署到他们的集群。“我们希望通过使用我们的 Notary 产品来推动 Portieris 的采用,”Hough 说。
IBM 一直是创建和支持开源基金会(包括 CNCF)的关键参与者。IBM 的开放技术副总裁 Todd Moore 是现任 CNCF 治理委员会主席,许多 IBM 员工积极参与许多 CNCF 成员项目。
“鉴于此,我们认为 CNCF 是云原生开源的避风港,它为成员项目提供稳定性、持久性和预期维护——无论源自哪个供应商或项目,”Hough 说。由于整个云原生世界是一个快速发展的领域,拥有许多竞争对手和解决方案,“我们认为 CNCF 模式是整个生态系统开放性和公平竞争的仲裁者,”他说。
随着 TUF 和 Notary 都成为 CNCF 的一部分,IBM 预计将围绕这些功能实现标准化,而不仅仅是事实上的签名和来源标准。IBM 决定不仅要使用 Notary,还要在适用的情况下为这个开源项目做出贡献。“IBM 员工已经贡献了一个 CouchDB 后端,以支持我们使用 IBM Cloudant 作为持久存储;并且正在努力推广 pkcs11 提供商,从而支持除 Yubikey 之外的其他安全硬件设备,”Hough 说。
该公司已经使用过其他 CNCF 项目 containerd、Envoy、Prometheus、gRPC 和 CNI,并且正在考虑将 SPIFFE 和 SPIRE 用于未来的潜在用途。
Hough 对希望部署 Notary 或云原生基础设施的其他公司有什么建议?
“虽然这对于云原生基础设施软件的许多领域都是如此,但我们发现,Notary 的高可用性、多区域部署需要一个可靠的实施方案来处理证书管理和轮换,”他说。“有新的项目正在解决这些挑战,包括 CNCF 内部。我们一定会对这些进展保持密切关注。我们发现 Notary 社区是一个积极友好的社区,对变更持开放态度,例如我们添加的用于持久存储的 CouchDB 后端。”