挑战
IBM Cloud 提供跨越各种运行时的公共、私有和混合云功能,从其基于 OpenWhisk 的函数即服务 (FaaS) 产品、托管 Kubernetes 和容器,到 Cloud Foundry 平台即服务 (PaaS)。这些运行时与该公司强大的企业技术(如 MQ 和 DB2)、其现代人工智能 (AI) Watson 以及数据分析服务相结合。IBM Cloud 的用户可以利用其目录中 170 多种不同的云原生服务的功能,包括 IBM Weather Company API 和数据服务等功能。在 2017 年下半年,IBM Cloud 容器注册表团队希望构建一个镜像信任服务。
解决方案
这项新服务的开发工作最终在 2018 年 2 月在 IBM Cloud 中公开发布。据 IBM Cloud 容器注册表团队的软件开发人员 Michael Hough 称,该镜像信任服务名为 Portieris,完全基于 云原生计算基金会 (CNCF) 的开源项目 Notary。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 Cloud 容器注册表团队的软件开发人员 Michael Hough 说。
选择 Notary 的关键原因是它已经与 IBM 容器注册表使用的现有身份验证堆栈兼容。TUF 的设计也是如此,它不需要注册表团队进入密钥管理业务。他说,这两者都是“有吸引力的设计决策,证实了我们选择 Notary 是正确的”。
在 IBM Cloud 中引入 Notary 以实现镜像签名功能,鼓励提高 IBM 云平台的安全性,“我们预计它将包括对官方 IBM 镜像的签名,以及具有安全意识的企业客户的预期使用,”Hough 说。“当与安全策略实现相结合时,我们预计 CI/CD 管道中部署策略的使用会增加,这些策略允许根据镜像签名者对服务部署进行细粒度控制。”
镜像签名的可用性“对于需要这种级别的镜像来源和安全性的具有安全意识的客户来说是一个巨大的好处,”Hough 说。“凭借我们的 IBM Cloud Kubernetes 即服务产品和我们提供的准入控制器,它允许 IBM 服务以及 IBM 公共云的客户使用安全策略来控制服务部署。”
现在,Notary 实现的服务作为其现有 IBM Cloud 容器注册表的一个组件在 IBM 的公共云中普遍可用,它作为一项高可用性服务部署在五个 IBM Cloud 区域中。这种高可用性部署在五个区域中的每一个区域的两个可用区中都有三个实例,并通过故障转移支持进行负载均衡。“我们还通过端到端 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 后端作为持久存储。”