Kubernetes (K8s) 與 JFrog 的安全整合,構築 DevSecOps 流程與雲原生供應鏈安全
- Linktech

- 12月9日
- 讀畢需時 3 分鐘
|K8S × DevSecOps 時代的供應鏈挑戰
隨著企業導入 Kubernetes 作為容器編排核心,CI/CD 流水線與image儲存庫間的整合已成標準流程。然而,當開發者使用大量 Open Source 套件、容器基底映像(base image)、Helm Chart 與 IaC 模板時,供應鏈的風險也同樣倍增。
根據 JFrog Security Research 報告,超過 90% 的容器映像含有已知 CVE 漏洞,其中 45% 以上的漏洞可被公開利用(Exploitable)。因此,導入 JFrog 平台與 Kubernetes 整合的 DevSecOps 流程,已成為確保軟體生命週期安全的重要關鍵。
|架構設計:K8S 與 JFrog 的安全整合
下圖展示了 Kubernetes 集群與 JFrog 平台整合的典型架構:

元件 | 功能說明 |
JFrog Artifactory | 私有image儲存庫,存放 Base Image、Helm Charts、Artifacts |
JFrog Xray | 自動化漏洞與 License 掃描、生成 SBOM |
JFrog CLI / REST API | 供 CI/CD Pipeline 呼叫 API 進行掃描與策略驗證 |
Kubernetes Cluster | 佈署應用的運行環境,透過 Admission Controller 驗證映像 |
OPA / Kyverno / Kubesec | 強制政策層(Policy Enforcement),阻擋含高風險映像部署 |
|實作步驟:從掃描到部署防護
Step 1:建立 JFrog 與 K8S 之間的信任關係
1 | kubectl create secret docker-registry artifactory-cred \ --docker-server=artifactory.company.local \ --docker-username=devops_bot \ --docker-password=<API_TOKEN> \ --docker-email=devops@example.com |
TIP: 建議以 Kubernetes Secret 搭配 ServiceAccount 使用,避免直接在 Deployment YAML 中暴露憑證。
Step 2:在 CI/CD 中導入 Xray 掃描
1 | stage('Security Scan') { steps { script { def scanResult=sh(script: """ curl -u ${JFROG_USER}:${JFROG_TOKEN} -X POST \\ -H "Content-Type: application/json" \\ -d '{"repo_path":"docker-local/myapp:latest"}' \\ https://${JFROG_URL}/xray/api/v1/scanArtifact """, returnStdout: true) echo "Scan Result: ${scanResult}" } } } |
掃描結果可回傳 JSON,包括漏洞等級(Critical/High/Medium/Low)與 License Type。
Step 3:邏輯串接:從 CI 掃描到 K8S 部署
在 Step 2 中,CI/CD Pipeline 呼叫了 Xray API 並取得了 JSON 格式的掃描結果 。下一步的關鍵,是將此掃描結果傳遞給 Kubernetes。
CI/CD Pipeline 需負責解析該 JSON 回傳值,並將映像檔的安全狀態(例如:是否存在 "Critical" 漏洞)動態注入到 Kubernetes Deployment 或 Pod 的 YAML 檔案中,作為 metadata.annotations(中繼資料標註)。
例如,如果 Step 2 發現 "Critical" 漏洞,CI 應在 YAML 中加入:
1 | YAML |
1 | metadata: |
2 | annotations: |
3 | jfrog.com/xray-score: "Critical" |
4 |
如此一來,當 CI/CD 流程執行 kubectl apply 提交此 YAML 時,Step 3 的 Admission Controller 才能依據這個標註,成功攔截該部署請求。
Step 4:導入 Admission Controller 阻擋高風險映像
1 | apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: deny-critical-cves spec: validationFailureAction: enforce rules: - name: check-cve-score match: resources: kinds: - Pod validate: message: "映像含高風險漏洞,禁止部署" pattern: metadata: annotations: jfrog.com/xray-score: "!~ Critical" |
當映像標註含有 Critical 等級漏洞時,K8S 將拒絕部署。
|進階應用:SBOM 與持續監控
1️⃣ 自動生成 SBOM
1 | curl -u ${JFROG_USER}:${JFROG_TOKEN} \ -X GET "https://${JFROG_URL}/xray/api/v1/sbom/artifact?path=docker-local/myapp:latest" |
2️⃣ 實時風險監控
JFrog Security 可監測新 CVE 公告並自動更新影響範圍,當漏洞對應至現有映像或 Package 時,自動發出警報至 Slack 或 Jira。
|整合效益:從被動補救 → 主動預防
效益項目 | 說明 |
可視化 | SBOM 全景揭露供應鏈構成 |
合規性 | License Policy 自動驗證 |
即時防護 | Admission Controller 即時封鎖 |
風險治理 | 漏洞關聯至 CVE 資料庫與修補建議 |
自動化 | Pipeline 全流程無人工介入的安全門檻 |
|未來展望:AI 驅動的 DevSecOps 自動修補
隨著 JFrog Security AI 與 Atlassian Rovo Dev Agent 的出現,未來的 DevSecOps 不僅能「偵測漏洞」,更能「自動生成修補建議與 Pull Request」。結合 Kubernetes 的 GitOps 模式與 Policy-as-Code,企業將能實現「Self-Healing」的安全基礎架構。
Kubernetes 帶來了極高的可擴展性,但也暴露了供應鏈的複雜性與風險。透過整合 JFrog Artifactory + Xray + K8S Security Policy,不僅能強化企業映像治理與漏洞防禦,更能以 DevSecOps 為核心,實現從開發到部署的「持續安全 (Continuous Security)」。
如需瞭解更多 JFrog 內容或索取客製化解決方案建議,歡迎透過以下方式聯繫。Linktech 將協助您評估如何將 JFrog 嵌入您現有的開發流程,探討其可行性與導入效益。
Linktech 友環企業 團隊洽詢方式:
Tel: 02-7752-7658
email: sales@linktech.com.tw





留言