iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Kubernetes

防範軟體供應鏈攻擊:從零打造具備硬性阻擋能力的雲原生 CI/CD 流水線 系列

本系列在一台 Windows 11 筆電、單節點 CRC(OpenShift Local)叢集上
,從零打造具備硬性阻擋能力的雲原生 CI/CD流水線
,且全程在對外網路受限條件下實測跑通。
內容涵蓋機密掃描、靜態分析、相依套件與映像檔漏洞掃描、測試覆蓋率、型別檢查六道防線
,未過即中斷流水線;建構完成後以 Cosign 簽章、產出 SBOM,更新 GitOps 由 ArgoCD 部署
,最終由 Kyverno 攔截未簽章映像。
30天依五階段推進:基礎設施、CI 引擎、安全防線、無特權建構與簽章、GitOps 准入封鎖
,延伸至 SLSA Level 3驗證。

鐵人鍊成 | 共 30 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21:第三道掃描 —— trivy fs 與五層過濾

每個開發最不喜聞樂見的朋友,套件CVE來啦~(PM:什麼時候可以修好?) 今日目的 今天做三件事: sca-scan —— 掃第三方套件的已知漏洞(SCA)...

2026-08-21 ‧ 由 lins04 分享
DAY 22

Day 22:把 unit-test 接進 Tekton DAG —— 測試全過,Task 還是紅燈

今日目的:把 unit-test 加進 Pipeline,並且讓它紅燈時你看得懂在講什麼。先備知識:銜接 Day 21〈Trivy fs〉。本篇所有數字、l...

2026-08-22 ‧ 由 lins04 分享
DAY 23

Day 23:typecheck、generate-sbom、upload-sbom、cleanup-workspace

一口氣多了不少TASK(汗) 環境:單節點 CRC 4.21.14 / Nx 23.1.1 / TypeScript 6.0.3 / Angular 22...

2026-08-23 ‧ 由 lins04 分享
DAY 24

Day 24:在 OpenShift 上用 rootless buildah 封裝映像

CI 已經把程式建好了,dist/ 就在 workspace 上。剩下的事聽起來很小:包成映像、推上去。 實際上花掉最多時間的不是 buildah 的設定——...

2026-08-24 ‧ 由 lins04 分享
DAY 25

Day 25:映像檔層面漏洞掃描 —— trivy-scan,並讀懂紅燈

trivy image 掃的是封裝完的成品映像:它會把映像拉下來、拆開每一層,列出裡面實際存在的套件(OS 的 apk/apt 和語言的 node_modu...

2026-08-25 ‧ 由 lins04 分享
DAY 26

Day 26:數位簽章硬化——在沒有 shell 的映像裡簽章

cosign 是 Sigstore 專案的容器映像簽章工具,用來對映像簽章與驗簽,證明它出自你的建置流程、之後也沒有被換掉。 cosign 的官方映像是...

2026-08-26 ‧ 由 lins04 分享
DAY 27

Day 27:cosign 金鑰產生——私鑰不落地,密碼也不落地

最常見的產金鑰方式是在自己的筆電上跑 cosign generate-key-pair,再 oc create secret 把它塞進叢集。 問題是私鑰在你的磁...

2026-08-27 ‧ 由 lins04 分享
DAY 28

Day 28:讓 CI 產出的 digest 真的部署出去

映像建好了、掃過了、簽了章。接下來要讓它真的跑起來——而這一步最容易出現一種特別難查的失敗:pipeline 全綠,部署的還是舊版本。 更新前:image: ....

2026-08-28 ‧ 由 lins04 分享
DAY 29

Day 29:在 OpenShift 上用 Kyverno 擋掉沒有簽章的映像

管道會簽章,不等於叢集會檢查簽章。只要有人 oc apply 一個自己 build 的映像,它照樣跑起來——簽章那一步等於白做。 這篇用 Kyverno 在 a...

2026-08-29 ‧ 由 lins04 分享
DAY 30

Day 30:用 Tekton Chains 產生 SLSA Provenance

映像簽章能證明「這個產物通過核准」,但回答不了「它是誰、用什麼、從哪個來源建出來的」。 補上這一塊的東西叫 Provenance Attestation——一份...

2026-08-30 ‧ 由 lins04 分享