挑战
IBM Cloud 在其基于 OpenWhisk 的函数即服务 (FaaS) 产品、托管的 Kubernetes 和容器,到 Cloud Foundry 平台即服务 (PaaS) 等多样化的运行时环境中提供公共云、私有云和混合云功能。这些运行时与公司强大的企业技术相结合,例如 MQ 和 DB2,以及其现代人工智能 (AI) Watson 和数据分析服务。IBM Cloud 的用户可以利用其目录中 170 多种不同的云原生服务的功能,包括 IBM 的气象公司 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 使用户可以选择在其私有注册表命名空间中对镜像进行签名。”
IBM Cloud 容器注册表团队的软件开发人员 Michael Hough 说:“在向 CNCF 贡献 TUF 和 Notary 之后,我们认为它正在成为容器生态系统中镜像签名的实际标准”。
选择 Notary 的关键原因在于它已经与 IBM 的容器注册表正在使用的现有身份验证堆栈兼容。TUF 的设计也是如此,它不要求注册表团队进入密钥管理业务。这两者都是“吸引人的设计决策,证实了我们对 Notary 的选择,”他说。
在 IBM Cloud 中引入 Notary 来实现镜像签名功能,鼓励提高了 IBM 云平台的安全性,“我们希望它将包括对官方 IBM 镜像的签名以及对有安全意识的企业客户的预期使用,”Hough 说。“当与安全策略实施相结合时,我们希望在 CI/CD 管道中越来越多地使用部署策略,这些策略可以基于镜像签名者对服务部署进行细粒度控制。”
镜像签名的可用性“对于需要这种级别的镜像来源和安全性的有安全意识的客户来说是一个巨大的好处,”Hough 说。“通过我们的 IBM Cloud Kubernetes 即服务产品和我们提供的准入控制器,它允许 IBM 服务以及 IBM 公有云的客户使用安全策略来控制服务部署。”
现在,在 IBM 的公有云中,作为其现有 IBM Cloud 容器注册表的一个组成部分,实现了 Notary 的服务已普遍可用,它被部署为跨五个 IBM Cloud 区域的高度可用服务。这种高可用性部署在五个区域中的每个区域的两个区域中有三个实例,并具有负载均衡和故障转移支持。“我们还通过我们的后端 IBM Cloudant 持久性存储服务为其部署了端到端 TLS 支持,”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 后端。”