挑戰
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 完全基於 雲端原生運算基金會 (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 Container Registry 團隊的軟體開發人員 Michael Hough 說。
選擇 Notary 的主要原因是它已經與 IBM 容器登錄正在使用的現有驗證堆疊相容。TUF 的設計也是如此,它不需要登錄團隊進入金鑰管理業務。這兩者都是「有吸引力的設計決策,證實了我們選擇 Notary」,他說。
在 IBM Cloud 中引入 Notary 以實作映像檔簽署功能,鼓勵提高了 IBM 雲端平台的安全性,「我們預期它將包括官方 IBM 映像檔的簽署以及注重安全性的企業客戶的預期使用」,Hough 說。「當與安全策略實作結合使用時,我們預期 CI/CD 管道中部署策略的使用會增加,這允許根據映像檔簽署者對服務部署進行細緻的控制。」
映像檔簽署的可用性「對於需要此層級映像檔出處和安全性的注重安全性的客戶來說,是一個巨大的好處」,Hough 說。「透過我們的 IBM Cloud Kubernetes 即服務產品和我們提供的准入控制器,它允許 IBM 服務以及 IBM 公有雲的客戶使用安全策略來控制服務部署。」
現在,以 Notary 實作的服務已在 IBM 的公有雲中普遍可用,作為其現有 IBM Cloud Container Registry 的組件,它已部署為跨五個 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 後端用於持久性儲存。」