公司 IBM 地点 纽约阿蒙克 行业 云计算

挑战

IBM Cloud 通过其基于 OpenWhisk 的函数即服务 (FaaS) 产品、托管的 Kubernetes 和容器以及 Cloud Foundry 平台即服务 (PaaS),提供跨多种运行时的公共、私有和混合云功能。这些运行时与公司企业技术的强大功能相结合,例如 MQ 和 DB2、其现代人工智能 (AI) Watson 和数据分析服务。IBM Cloud 用户可以利用其目录中 170 多种不同的云原生服务的功能,包括 IBM 天气公司 API 和数据服务等功能。2017 年下半年,IBM Cloud Container Registry 团队希望构建一个镜像信任服务。

解决方案

这项新服务的工作最终于 2018 年 2 月在 IBM Cloud 中公开发布。据 IBM Cloud Container Registry 团队的软件开发人员 Michael Hough 称,这个名为 Portieris 的镜像信任服务完全基于 Cloud Native Computing Foundation (CNCF) 开源项目 Notary。Portieris 是一个 Kubernetes 准入控制器,用于强制执行内容信任。用户可以为每个 Kubernetes 命名空间或在集群级别创建镜像安全策略,并对不同的镜像强制执行不同级别的信任。Portieris 是 IBM 信任故事的关键部分,因为它使用户能够在其 IKS 集群中消费公司的 Notary 产品。该产品是 Notary 服务器在 IBM 的云中运行,然后 Portieris 在 IKS 集群中运行。这使用户能够让他们的 IKS 集群验证他们正在加载容器的镜像是否包含他们期望的内容,而 Portieris 允许 IKS 集群应用该验证。

影响

IBM 旨在提供托管的 Kubernetes 容器服务和镜像注册表,为其企业客户提供一个完全安全的端到端平台。Hough 说:“镜像签名是该产品的一个关键部分,我们的容器注册表团队将 Notary 视为在当前 Docker 和容器生态系统中实现该功能的实际方式。”该公司以前没有提供镜像签名,而 Notary 是它用于实现该功能的工具。Hough 说:“我们有一个多租户 Docker 注册表,提供私有镜像托管。”“Docker 注册表使用哈希来确保镜像内容正确,并且数据在传输中和静态时都经过加密。但它不提供任何关于谁推送了镜像的保证。我们使用 Notary 让用户可以在他们的私有注册表命名空间中对镜像进行签名,如果他们选择这样做的话。”

Docker 已经创建了 Notary 项目作为 The Update Framework (TUF) 的实现,并且 TUF 的这个实现提供了 Docker Content Trust 的功能。

IBM Cloud Container Registry 团队的软件开发人员 Michael Hough 表示:“在 TUF 和 Notary 都贡献给 CNCF 之后,我们认为它正在成为容器生态系统中镜像签名的事实标准。”

选择 Notary 的主要原因是它已经与 IBM 容器注册表正在使用的现有身份验证堆栈兼容。TUF 的设计也是如此,它不需要注册表团队涉足密钥管理业务。他说:“这两个都是吸引人的设计决策,证实了我们选择 Notary 的决定。”

Hough 说,在 IBM Cloud 中引入 Notary 以实现镜像签名功能,鼓励增强 IBM 云平台的安全性,“我们期望它将包括官方 IBM 镜像的签名以及安全意识强的企业客户的预期使用。”“结合安全策略实施,我们预计 CI/CD 管道中部署策略的使用会增加,从而可以根据镜像签名者对服务部署进行细粒度控制。”

Hough 说,镜像签名的可用性“对需要这种级别的镜像溯源和安全性的具有安全意识的客户来说是一个巨大的好处。”“凭借我们的 IBM Cloud Kubernetes 即服务产品以及我们提供的准入控制器,它允许 IBM 服务以及 IBM 公有云的客户使用安全策略来控制服务部署。”

现在,在 IBM 公有云中,作为其现有 IBM Cloud Container Registry 的一个组件,Notary 实现的服务已普遍可用,它作为高可用服务部署在五个 IBM Cloud 区域。这个高可用部署在每个五个区域的两个可用区中都有三个实例,并支持负载均衡和故障转移。Hough 说:“我们还部署了端到端 TLS 支持,直至我们的后端 IBM Cloudant 持久存储服务。”

IBM 团队创建并开源了一个名为 Portieris 的 Kubernetes 准入控制器,它结合 Notary 签名信息和客户定义的安全性策略来控制镜像部署到其集群中。Hough 说:“我们希望通过使用我们的 Notary 产品来推动 Portieris 的采用。”

IBM 一直是创建和支持开源基金会(包括 CNCF)的关键参与者。Todd Moore(IBM 开放技术副总裁)是 CNCF 理事会现任主席,许多 IBM 员工积极参与许多 CNCF 成员项目。

Hough 说:“鉴于此,我们认为 CNCF 是云原生开源的避风港,为成员项目提供稳定性、持久性和预期的维护——无论其来源供应商或项目是什么。”由于整个云原生世界是一个快速发展的领域,有许多相互竞争的供应商和解决方案,他说:“我们认为 CNCF 模型是整个生态系统开放性和公平竞争的仲裁者。”

TUF 和 Notary 都是 CNCF 的一部分,IBM 期望这些功能能够实现标准化,而不仅仅是签名和溯源的事实标准。IBM 已决定不仅要使用 Notary,还要在适用的情况下为开源项目做出贡献。Hough 说:“IBM 员工贡献了一个 CouchDB 后端来支持我们将 IBM Cloudant 用作持久存储;并且正在研究 pkcs11 提供程序的通用化,以支持 Yubikey 以外的其他安全硬件设备。”

该公司还使用了其他 CNCF 项目 containerdEnvoyPrometheusgRPCCNI,并且正在研究 SPIFFESPIRE 以备将来潜在使用。

Hough 对其他希望部署 Notary 或云原生基础设施的公司有什么建议?

他说:“虽然这适用于云原生基础设施软件的许多领域,但我们发现 Notary 的高可用性、多区域部署需要可靠的实现来处理证书管理和轮换。”“正在有新项目应对这些挑战,包括在 CNCF 内部。我们肯定会密切关注这些进展。我们发现 Notary 社区是一个活跃友好的社区,对变化持开放态度,例如我们增加了用于持久存储的 CouchDB 后端。”