ref: https://blog.sigstore.dev/verify-oci-container-image-signatures-in-kubernetes-33663a9ec7d8
本篇文章要探討的也是跟 security 有關的一個概念,一樣也是基於 Software Supple Chain 這個概念去探討到底環境中用到的相關軟體是否都是安全且被信任的。
本文章分享的是一個基於 Kubernetes Admission Controller 實作的解決方案 Connaisseur,該解決方案的概念很簡單
1. 透過 Admission Controller 去監聽系統上所有 Container 的部署請求
2. 如果部署的 Container Image 是符合事先設定規則的,則允予通過
3. 如果不符合,該次部署就直接失敗
所謂的規則比較簡易的說法就是簽章,只有包含了可信賴簽章的 Container Image 才會被 Connaisseur 給允許通過
有了這個基本概念之後,下一個問題則是到底什麼是可信賴簽章?以及要如何讓想要使用的 Container Image 獲得一個可信賴的簽章?
文章內介紹了關於 Container Signatures 的一些演變,包含了 Docker Content Trust, Notary(V1) 以及 The Update Framework 早期的使用方式
到後來因為 OCI(Open Container Initiative) 的發展與調整,目前可以直接於 OCI Image Spec 一同夾帶該 Image 相關的簽章。
這意味者任何支援該 OCI 標準的 Container Registry 不但可以存放該 Container Image 同時也可以存放該 Image 的簽章。
這個使用方式的變更也促使了 Notary 這個開源專案(v2)的演進。
與此同時, Linux 基金會底下的 Sigstore 專案也再努力地針對開源專案的簽章方面努力著,期望能夠透過簽署與驗證功能來提升開源專案簽署方面的應用。
Sigstore 專案底下的 Cosign 小專案則是專門處理 OCI Image 相關的簽章事項,包含簽署,儲存以及驗證。
而本文所開頭所提及的 Connaisseur 專案則是可以基於 Cosign 所簽署的內容去進行驗證,透過兩者的配合可以用來確保部署到 Kubernetes 的所有 Image 都需要被 Cosign 給簽署過
作者特別強調,目前 Sigsotre 以及 Cosign 這些專案都還是屬於開發階段,所以 Connaisseur 本身對於這項功能的整合也是屬於一個開發實驗階段,很多東西都會不穩定
隨者資安意識以及相關事件 Solarwinds hack 等的出現,當各團隊基本的 DevOps, CI/CD 文化與流程都逐漸成型後, DevSecOps 的東西就會是下一個各團隊要開始煩惱的地方了
特別是所謂的 Software Supply Chain 上的各種潛在危險。
「ci/cd framework」的推薦目錄:
ci/cd framework 在 Kewang 的資訊進化論 Facebook 的最讚貼文
好文推一下。另外下面是小編自己的看法,也分享給大家。
1. 請別輕視:「才只多用了五分鐘而已」
非常同意啊!!!有些事情雖然會花你一點點的時間,但後續的效益可以說是無限大的,像版控、CI/CD、issue tracking 這些無論在哪個產業的公司都一定要做才行,就算一人公司也是一樣!
2. 首十年,工作最最重要的是:機會。
換過兩三個工作的朋友都知道,真的有些東西說的簡單做的難,有爛 code 就去修,如果找不出爛 code 的話,去 GitHub 上面找吧。
3. 面試時,請務必跟你未來主管見面。
現在來說,小編遇到的幾個主管都給小編很大的發揮空間,上面做的事真的會影響下面很大,所以你自己也是一位主管的話,記得將心比心。
4. 別當 content farmer
希望小編的文章不會讓大家這樣覺得,看不懂或離自己技能太偏的文章,小編也不敢評論。如果能評論一定是自己有試過或至少七八成理解才敢 po 出來 XD
5. 聽講座請不要盲目接受,吸收後才是自己的
另外小建議真的不錯,像小編現在都主攻 Java,後來學了 node.js 之後,看到 async 跟 promise 很好用,於是在 Android 的 map-controller 這個 library 就套用這種 pattern、看到 Rails 跟 expressjs 的 before/after hook 很厲害,就在 jersey 裡面也加上類似的 filter,所以多懂其他語言或 framework 是好事。
6. 救火時的心態
其實跟第 2 點有點類似,反正就是有機會時好好把握,別說一堆廢話,show me the code