iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Kubernetes

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

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

參賽天數 22 天 | 共 22 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day1:從「跑完建構」到「可信供應鏈」

一台 Windows 11 筆電,一個單節點的 CRC 叢集,對外網路斷掉。在這個條件下完整跑完一次 CI:建構、六道安全掃描、SBOM 產出、Cosign 簽...

2026-08-01 ‧ 由 lins04 分享
DAY 2

Day 2:在 Windows 11 建立單機類生產環境:CRC (OpenShift Local) 安裝與資源配置心法

結論先講:CRC 單機跑完整 CI/CD,disk-size 建議 160GB。60GB 會在你只是開幾個 debug pod 的時候就撞上 DiskPres...

2026-08-02 ‧ 由 lins04 分享
DAY 3

Day 3:你看到的狀態,不是系統正在做的事——CRC 上三個事後查不到的故障

今日目的:三個看起來毫不相干的故障,共同點不是原因,是它們都在事後查不到。 先備知識:本篇銜接 Day 2〈CRC 資源配置〉,讀過該篇即可上手。 事後...

2026-08-03 ‧ 由 lins04 分享
DAY 4

Day 4:建立全系列共用的自動化規範:PowerShell 5.1 的 JSON、編碼與物件流三大陷阱

這篇看起來跟 Kubernetes 無關,但在 Windows 工作站上驅動 CRC 加 Tekton 這整套流程,這一關過不了就沒有後面。 今日目的:建...

2026-08-04 ‧ 由 lins04 分享
DAY 5

Day 5:權限邊界劃分:Kubeadmin 與 Developer 權限切換與 OpenShift SCC 核心機制解密

今日目的:搞懂 kubeadmin 與 developer 的權限邊界、SCC 如何決定 Pod 能不能建立起來;並用實測檢驗兩個廣為流傳的說法——「Open...

2026-08-05 ‧ 由 lins04 分享
DAY 6

Day 6:Helm 在 OpenShift 上的生存法則:openshift.enabled 與 anyuid SCC 的手動授權

今日目的:掌握 Helm Chart 在 OpenShift 上真正能跑起來所需要的授權順序,Chart 內建的「OpenShift 相容開關」實際做了什麼,...

2026-08-06 ‧ 由 lins04 分享
DAY 7

Day 7:打造內部私有資產庫:部署 Nexus 3 並配置 Outbound Proxy

快樂路徑:從建帳號到 outbound proxy 落地 0. 前提 目的:確認 CRC 已啟動,且 $env:KUBECONFIG 為空。第 5 步的 oc...

2026-08-07 ‧ 由 lins04 分享
DAY 8

Day 8:Gitea部署到 git push

本文從一個空的 CRC 叢集開始,部署 Gitea,並在 Windows 本機完成一次 git push,終點是從 Gitea API 回讀的 commit S...

2026-08-08 ‧ 由 lins04 分享
DAY 9

Day 9 中繼驗證:Gitea webhook 送達叢集內的私有 ClusterIP

今日目的 Tekton 尚未部署,終點無法是「產生 PipelineRun」。本文的目的是在 Tekton 到位之前,先把 Gitea 側的投遞能力單獨驗過:...

2026-08-09 ‧ 由 lins04 分享
DAY 10

Day 10:把憑證擋在版控之外 —— Sealed Secrets 的加密、綁定與離線復原

今日目的:在 CRC 上部署 Sealed Secrets Controller,並以三項判定確認「密文可以進版控」這件事真的成立。先備知識:已能以 oc 連...

2026-08-10 ‧ 由 lins04 分享