為了強化Kubernetes引擎的安全性,Google引入了二進位授權,讓使用者可以確保只有受信任的工作負載才可以部署到Kubernetes引擎中。二進位授權是一個整合到Kubernetes引擎部署API的安全性功能,提供使用者策略性的控制手段,讓只有或完整簽章或是授權的映像檔在環境中運作。

Google提到,基於身分的部署控制仰賴人類的操作知識與信任,在容器微服務爆發的現在,特別是在企業自動化建置與發布的基礎架構,數十個團隊每天部署數百次的規模下,已經不敷使用。容器化的工作負載一般來說並不鼓勵直接修改正在運作的軟體,應該使用持續整合和持續部署(CI/CD),把改變應用到整個容器中,而這允許使用者定義精簡的測試與驗證,確保只部署受信任的程式碼。

但即使是這種基於身分的部署控制,內部人員仍可能繞過CI/CD的控制,惡意或是不小心部署了不受信任的程式碼,例如開發者可能意外地部署測試用程式到生產環境中,或是想要偷懶的員工,可能會繞過測試或整合驗證程序,另外,也很有可能惡意的在軟體建置過程中植入了挖礦程式。而Google新釋出的這個二進位授權可以填補以上的安全漏洞。

二進位授權是Google內部用來保護生產部署的技術,已經使用了將近十年。二進位授權僅運行受信任的程式碼來建立預防性安全狀態,從程式碼開發到生產,採用單一結構化路徑簡化治理,並使用開源軟體來維持CI/CD工具的可插拔性與互通性。

透過將企業部署要求整合到CI/CD各階段,映像檔通過這些階段時便會取得該階段簽章,當映像檔取得所有階段的簽章則獲得部署授權,否則二進位授權會阻擋不符合標準的映像檔。在Kubernetes引擎中,是使用ImagePolicy授權控制器來實做,並以容器分析API(Container Analysis API)來驗證這些映像檔上的簽章。二進位授權也與Cloud Audit Logging整合,紀錄Pod失敗創建供日後調閱。

除了基於簽章的驗證外,二進位授權也支援使用名稱模式的白名單映像檔,使用者可以透過路徑指定特定的程式碼儲存庫,或是一系列允許部署的映像檔。Google認為,這是另一個好選擇,企業不只可以快速開始限制生產部署,還能控制那些未遵循內部工作流程的第三方映像檔。

二進位授權使用標準加密PGP簽章,而這將允許使用者輕易的整合CI/CD工具鏈,包括建置、測試與漏洞搜尋等各階段。當然,除了使用者可以客製化整合外,二進位授權也提供了開箱即用的服務,用戶可以直接使用Google或是合作夥伴開發的CI/CD和安全工具。

Google提到,使用者也可以自行實作二進位授權,只要使用開源專案Grafeas自訂策略,並根據要求允許或是阻止Pod的創建。作為二進位授權測試版發布的一部分,Google更新了開源政策引擎Kritis,Kritis能使用授權控制器在任何Kubernetes部署中,強制遵循Pod創建政策。而Kritis與開源元資料伺服器Grafeas整合,就可以在Google Kubernetes引擎部署中,使用容器註冊表容器分析API和二進位授權,如此一來,使用者可以在自家機房中,使用開源軟體建立一致的控制流程。


Advertisement

更多 iThome相關內容